| 
					
				 | 
			
			
				@@ -712,115 +712,48 @@ public class PayController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         BigDecimal orderLiters = new BigDecimal(infoMap.get("orderLiters").toString());    //本次加油升数 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         //循环规则明细 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         for(IntegralRuleDetail integralRuleDetail : integralRuleDetailList){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            //规则类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            String ruleType = integralRuleDetail.getRuleType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            if(ruleType !=null && ruleType =="1" && realAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                //以实收金额为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = realAmt.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            //如果当前时间在改日期比例时间内 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            if(integralRuleDetail.getOilType().equals("1")){    //油品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                //规则类型 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                String ruleType = integralRuleDetail.getRuleType(); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                if(ruleType !=null && ruleType =="1" && realAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    //以实收金额为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = realAmt.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                }else if(ruleType !=null && ruleType =="2" && receivableAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    //应收金额为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (receivableAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (receivableAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            }else if(ruleType !=null && ruleType =="2" && receivableAmt.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                //应收金额为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = receivableAmt.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = receivableAmt.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() != null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				  
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                            }else if(ruleType !=null && ruleType =="3" && orderLiters.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                //加油升数为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = orderLiters.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    BigDecimal integral = orderLiters.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            if (str.contains(currentTime) && rule.get(0).getIntegralProportion() !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                }else if(ruleType !=null && ruleType =="3" && orderLiters.compareTo(integralRuleDetail.getRuleTerms()) ==1){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    //加油升数为准时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    if(discountPlanType == "1" && integralRuleDetail.getGread() !=null && customerManage.getGrade().equals(integralRuleDetail.getGread())){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (orderLiters, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                    }else { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        countIntegral (orderLiters, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                        break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				-                                                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                                 } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                            }else if(integralRuleDetail.getOilType().equals("2")){ //非油品 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                //计算积分并取整 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                countIntegral (realAmt, integralRuleDetail, datePicker, currentTime,  rule, customerPoints, customerPointsRecord, customerPointsInfo); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                                break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                             } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				                                     } 
			 | 
		
	
	
		
			
				| 
					
				 | 
			
			
				@@ -1012,4 +945,24 @@ public class PayController { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				             req.put("msg","失败"); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				         } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				     } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    //计算积分并赋值 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    public void  countIntegral (BigDecimal b1, IntegralRuleDetail integralRuleDetail, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                String[] datePicker, String currentTime, List<IntegralRule> rule, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                                CustomerPoints customerPoints, CustomerPointsRecord customerPointsRecord, CustomerPoints customerPointsInfo){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        BigDecimal integral = b1.divide(integralRuleDetail.getSaleAmt(), 0).multiply(integralRuleDetail.getIntegral()).setScale(0, BigDecimal.ROUND_DOWN); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        //设置积分多倍时间时 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        if(datePicker !=null){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            for(String str: datePicker){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                if (str.contains(currentTime) && rule.get(0).getIntegralProportion() !=null ){ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    integral=integral.multiply(new BigDecimal(rule.get(0).getIntegralProportion())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                    break; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+                } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+            } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        customerPoints.setPoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        customerPoints.setAccumulatePoints(customerPointsInfo.getPoints() + Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        customerPointsRecord.setIntegral(Integer.valueOf(integral.toString())); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				 } 
			 |