| 
														
															@@ -573,7 +573,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params); 
														 | 
														
														 | 
														
															                     List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息 
														 | 
														
														 | 
														
															                     if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         //使用客户已存在的等级计算优惠 
														 | 
														
														 | 
														
															                         //使用客户已存在的等级计算优惠 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
														
														 | 
														
															                         if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
														
														 | 
														
															                             discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                             discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -592,7 +595,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         //如果存在 
														 | 
														
														 | 
														
															                         //如果存在 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if(customerGradeList !=null && customerGradeList.size() >0){ 
														 | 
														
														 | 
														
															                         if(customerGradeList !=null && customerGradeList.size() >0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             //用户第一次购买 取等级最低初始会员的优惠条件计算 
														 | 
														
														 | 
														
															                             //用户第一次购买 取等级最低初始会员的优惠条件计算 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
														
														 | 
														
															                             if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
														
														 | 
														
															                                 discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -631,7 +637,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);  //优惠金额 
														 | 
														
														 | 
														
															                             discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_HALF_UP).multiply(gasoilDiscountAmt_b);  //优惠金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                             discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             amt = receivableAmt_b.subtract(discountAmt);   //实收金额 
														 | 
														
														 | 
														
															                             amt = receivableAmt_b.subtract(discountAmt);   //实收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                             discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             switch (vipDiscountyPlus){ 
														 | 
														
														 | 
														
															                             switch (vipDiscountyPlus){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 case "1": 
														 | 
														
														 | 
														
															                                 case "1": 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -666,7 +675,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 case "2": 
														 | 
														
														 | 
														
															                                 case "2": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                                     resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                                     resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                                     resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                                     resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     break; 
														 | 
														
														 | 
														
															                                     break; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -694,7 +706,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_2.get(0).get("gasoilDiscountAmt").toString());   //满多少优惠多少的金额 
														 | 
														
														 | 
														
															                             BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_2.get(0).get("gasoilDiscountAmt").toString());   //满多少优惠多少的金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountAmt = gasoilDiscountAmt_b;  //优惠金额 
														 | 
														
														 | 
														
															                             discountAmt = gasoilDiscountAmt_b;  //优惠金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             amt = receivableAmt_b.subtract(gasoilDiscountAmt_b);   //实收金额 
														 | 
														
														 | 
														
															                             amt = receivableAmt_b.subtract(gasoilDiscountAmt_b);   //实收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_UP); 
														 | 
														
														 | 
														
															                             discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             switch (vipDiscountyPlus){ 
														 | 
														
														 | 
														
															                             switch (vipDiscountyPlus){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 case "1": 
														 | 
														
														 | 
														
															                                 case "1": 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -732,7 +747,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 case "2": 
														 | 
														
														 | 
														
															                                 case "2": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                                     resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                                     resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                    } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                                     resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                                     resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     break; 
														 | 
														
														 | 
														
															                                     break; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -756,7 +774,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         String vipDiscountyPlus_4 = customerMarkertPlanList_3.get(0).get("vipDiscountyPlus").toString(); 
														 | 
														
														 | 
														
															                         String vipDiscountyPlus_4 = customerMarkertPlanList_3.get(0).get("vipDiscountyPlus").toString(); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         BigDecimal discountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("discountAmt").toString());   //条件金额 
														 | 
														
														 | 
														
															                         BigDecimal discountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("discountAmt").toString());   //条件金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("gasoilDiscountAmt").toString()); 
														 | 
														
														 | 
														
															                         BigDecimal gasoilDiscountAmt_b = new BigDecimal(customerMarkertPlanList_3.get(0).get("gasoilDiscountAmt").toString()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         if(customerMarkertPlanList_3.get(0).get("discountTerm").toString().equals("1")){   //按升数优惠 
														 | 
														
														 | 
														
															                         if(customerMarkertPlanList_3.get(0).get("discountTerm").toString().equals("1")){   //按升数优惠 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                             if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){ 
														 | 
														
														 | 
														
															                             if(oilLiters.compareTo(discountAmt_b) ==1 || oilLiters.compareTo(discountAmt_b) ==0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                 //计算 
														 | 
														
														 | 
														
															                                 //计算 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -794,7 +815,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     case "2": 
														 | 
														
														 | 
														
															                                     case "2": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                                         resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                                         resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         break; 
														 | 
														
														 | 
														
															                                         break; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -835,7 +859,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                     case "2": 
														 | 
														
														 | 
														
															                                     case "2": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                                         resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                                        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                                         resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                                         break; 
														 | 
														
														 | 
														
															                                         break; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -872,7 +899,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params); 
														 | 
														
														 | 
														
															         List<Map<String, Object>> customerGradeInfo = customerGradeServices.getCustomerGradeInfo(params); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															         if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息 
														 | 
														
														 | 
														
															         if(customerGradeInfo != null && customerGradeInfo.size() >0){   //已存在客户等级信息 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //使用客户已存在的等级计算优惠 
														 | 
														
														 | 
														
															             //使用客户已存在的等级计算优惠 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+            } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
														
														 | 
														
															             if(customerGradeInfo.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
														
														 | 
														
															                 discountAmt = oilLiters.multiply(new BigDecimal(customerGradeInfo.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -892,7 +922,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             //如果存在 
														 | 
														
														 | 
														
															             //如果存在 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             if(customerGradeList !=null && customerGradeList.size() >0){ 
														 | 
														
														 | 
														
															             if(customerGradeList !=null && customerGradeList.size() >0){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //用户第一次购买 取等级最低初始会员的优惠条件计算 
														 | 
														
														 | 
														
															                 //用户第一次购买 取等级最低初始会员的优惠条件计算 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
														
														 | 
														
															                 if(customerGradeList.get(0).get("gasoilDiscountLitre") !=null){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
														
														 | 
														
															                     discountAmt = oilLiters.multiply(new BigDecimal(customerGradeList.get(0).get("gasoilDiscountLitre").toString())); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                     discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -910,7 +943,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 //不存在 
														 | 
														
														 | 
														
															                 //不存在 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                 resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                 resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                oilLiters = new BigDecimal(receivableAmt).divide(new BigDecimal(oilPrice), 2, BigDecimal.ROUND_UP); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                 resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                 resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															             } 
														 | 
														
														 | 
														
															             } 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -942,7 +978,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_UP).multiply(gasoilDiscountAmt_b);  //优惠金额 
														 | 
														
														 | 
														
															                 discountAmt = receivableAmt_b.divide(discountAmt_b, 2, BigDecimal.ROUND_UP).multiply(gasoilDiscountAmt_b);  //优惠金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                 discountAmt = discountAmt.setScale(2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 amt = receivableAmt_b.subtract(discountAmt);   //实收金额 
														 | 
														
														 | 
														
															                 amt = receivableAmt_b.subtract(discountAmt);   //实收金额 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                    oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); 
														 | 
														
														 | 
														
															                 discountPrice = oilLiters.equals(new BigDecimal("0.00")) ? new BigDecimal(oilPrice) : amt.divide(oilLiters, 2, BigDecimal.ROUND_HALF_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                 switch (vipDiscountyPlus){ 
														 | 
														
														 | 
														
															                 switch (vipDiscountyPlus){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     case "1": 
														 | 
														
														 | 
														
															                     case "1": 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -977,7 +1016,10 @@ public class PayOrderController { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                     case "2": 
														 | 
														
														 | 
														
															                     case "2": 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resultMap.put("discountAmt", 0); 
														 | 
														
														 | 
														
															                         resultMap.put("discountAmt", 0); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
														
														 | 
														
															                         resultMap.put("amt", receivableAmt.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP);   //加油升数 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_HALF_UP);   //加油升数 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        if(!oilLiters.toString().substring(oilLiters.toString().indexOf(".") + 1).equals("00")){ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                            oilLiters = receivableAmt_b.divide(new BigDecimal(oilPrice),2, BigDecimal.ROUND_UP); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+                        } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
														
														 | 
														
															                         resultMap.put("oilLiters", oilLiters.doubleValue()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         resultMap.put("discountPrice", oilPrice); 
														 | 
														
														 | 
														
															                         resultMap.put("discountPrice", oilPrice); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															                         break; 
														 | 
														
														 | 
														
															                         break; 
														 |