Index: src/main/java/com/novaone/common/CommonInfo.java
===================================================================
--- src/main/java/com/novaone/common/CommonInfo.java	(revision 31354)
+++ src/main/java/com/novaone/common/CommonInfo.java	(revision 31355)
@@ -311,8 +311,15 @@
   	// drl，正式文件名称
   	public static final String drlFormalFileName = "taxPayment.drl";
   	
+  	// drt文件名称
+  	public static final String drtFormalFileName = "give-reward-rule-template.drt";
+  	
   	// drl文件头
   	public static final String drlFileHeader = "package com.novaone;\n" + 
 			"import com.novaone.entity.RuleDTO;\n" + 
 			"global java.util.HashMap map;\n";
+  	
+  	//付税种类的两个值
+  	public static final String drlRuleFszl = "Y";
+  	public static final String drlRuleFszlNot = "N";
 }
Index: src/main/java/com/novaone/control/ApiControl.java
===================================================================
--- src/main/java/com/novaone/control/ApiControl.java	(revision 31354)
+++ src/main/java/com/novaone/control/ApiControl.java	(revision 31355)
@@ -335,13 +335,10 @@
         JsonModel j = new JsonModel();
         try {
         	String ywbh = request.getParameter("ywbh");
-        	List<String> ywbhs = new ArrayList<String>();
-        	if(ywbh.contains(",")) {
-        		ywbhs = Arrays.asList(ywbh.split(","));
-        	}else {
-        		ywbhs.add(ywbh);
+        	if(ywbh.substring(ywbh.length()-1).contains(",")) {
+        		ywbh = ywbh.substring(0,ywbh.length()-1);
         	}
-            grabPayService.updTaxStatus(ywbhs);
+            grabPayService.updTaxStatus(Arrays.asList(ywbh.split(",")));
             j.setCode(CommonInfo.ERRCODE_SUCCESS);
             j.setDes(CommonInfo.RESTFUL_API_SUCCESS);
         } catch (Exception e) {
@@ -373,44 +370,21 @@
         historyService.insertOrUpdate(rdv.getHistories());
         return rdv;
     }
-    
-    @RequestMapping("/api/getRule")
-    public JsonModel getRule(HttpServletRequest request) {
-        log.info("begin------/api/getRule--------");
-        JsonModel j = new JsonModel();
-        try {
-        	String ywbh = request.getParameter("ywbh");
-            List<String> ywbhs = new ArrayList<String>();
-        	if(ywbh.contains(",")) {
-        		ywbhs = Arrays.asList(ywbh.split(","));
-        	}else {
-        		ywbhs.add(ywbh);
-        	}
-            grabPayService.doCheckRuleNotBgsj(ywbhs);
-            j.setCode(CommonInfo.ERRCODE_SUCCESS);
-            j.setDes(CommonInfo.RESTFUL_API_SUCCESS);
-        } catch (Exception e) {
-            log.info("/api/getRule 异常信息", e);
-            j.setCode(CommonInfo.ERRCODE_NOTDATA);
-            j.setDes("更新失败");
-        }
-        log.info("end------/api/getRule--------");
-        return j;
-    }
+    /**
+     * 刷新缴税规则文件内容
+     */
     @Resource
     private RuleService ruleService;
     @RequestMapping("/api/doRuleGenerator")
     public JsonModel doRuleGenerator() {
     	JsonModel j = new JsonModel();
-    	j.setCode(CommonInfo.ERRCODE_NOTDATA);
-        j.setDes(CommonInfo.RESTFUL_API_FALSE);
         try {
-        	boolean f = ruleService.generateRules();
-        	if(f){
-        		j.setCode(CommonInfo.ERRCODE_SUCCESS);
-                j.setDes(CommonInfo.RESTFUL_API_SUCCESS);
-        	}
+        	ruleService.generateRules();
+    		j.setCode(CommonInfo.ERRCODE_SUCCESS);
+            j.setDes(CommonInfo.RESTFUL_API_SUCCESS);
         } catch (Exception e) {
+        	j.setCode(CommonInfo.ERRCODE_NOTDATA);
+            j.setDes(CommonInfo.RESTFUL_API_FALSE);
             log.info("/api/getRule 异常信息", e);
         }
     	return j;
Index: src/main/java/com/novaone/control/Cron.java
===================================================================
--- src/main/java/com/novaone/control/Cron.java	(revision 31354)
+++ src/main/java/com/novaone/control/Cron.java	(revision 31355)
@@ -1,11 +1,8 @@
 package com.novaone.control;
 
 import java.text.SimpleDateFormat;
-import java.util.ArrayList;
 import java.util.Date;
-import java.util.HashMap;
 import java.util.List;
-import java.util.Map;
 import java.util.Set;
 import java.util.UUID;
 import java.util.concurrent.TimeUnit;
@@ -16,7 +13,6 @@
 import com.novaone.service.RequisitionSendHistoryService;
 import org.apache.commons.lang.time.DateUtils;
 import org.springframework.beans.factory.annotation.Value;
-import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Component;
 
@@ -27,7 +23,6 @@
 import com.novaone.service.RequisitionService;
 import com.novaone.util.CommonUtils;
 import com.novaone.util.HttpUtil;
-import com.novaone.util.OkHttpUtil;
 
 import lombok.extern.slf4j.Slf4j;
 import net.sf.json.JSONObject;
@@ -390,60 +385,4 @@
             historyService.updateBatch(rdv.getHistories());
         }
     }
-    /**
-     * 
-     * @Title: test
-     * @Description: 测试方法，只能链接测试库（zjnb_rpa）使用！！！！
-     * 1、更新报关表测试数据zdjsbz为1
-     * 2、执行本方法，将不符合规则的数据zdjsbz更新为0
-     * @param:    
-     * @return: void
-     * @author gubj  
-     * @date 2021年12月28日 下午2:10:03
-     */
-//    @Scheduled(cron = "0 10 12 * * ?")
-//    public void test() {
-//    	log.info("开始================");
-//    	List<String> notAutoPay = new ArrayList<String>();
-//    	//查询所有的数据
-//    	List<String> listYwbh = grabPayService.getAll();
-//    	for(String s : listYwbh) {
-//    		try {
-//    			Map<String,String> resultMap = grabPayService.callRuleEngine(s);
-//    			if(resultMap.isEmpty()) {
-//    				//规则不通过
-//    				notAutoPay.add(s);
-//    			}
-//			} catch (Exception e) {
-//				log.info("批量更新自动缴税标志出现规则匹配异常：",e);
-//			}
-//    	}
-//    	//2000一组更新
-//    	List<List<String>> subList = getSubList(notAutoPay);
-//    	//
-//    	for(List<String> sub : subList) {
-//    		grabPayService.updateAll(sub);
-//    	}
-//    }
-    private List<List<String>> getSubList(List<String> list) {
-    	//计算集合中可以分几个组
-    	int count = list.size()/2000;
-    	int yu = list.size() % 2000;
-    	if (yu > 0) {
-    	    count = count + 1;
-    	}
-    	List<List<String>> resSubList = new ArrayList<List<String>>();
-    	for (int i = 0; i < count; i++) {
-    	    List<String> subList = new ArrayList<String>();
-    	    if (i == count-1) {
-    	        subList = list.subList(i * 2000, list.size());
-    	    } else {
-    	        subList = list.subList(i * 2000, 2000 * (i + 1));
-    	    }
-    	    resSubList.add(subList);
-    	}
-    	System.out.println(resSubList);
-    	return resSubList;
-	}
-
 }
Index: src/main/java/com/novaone/entity/RuleDTO.java
===================================================================
--- src/main/java/com/novaone/entity/RuleDTO.java	(revision 31354)
+++ src/main/java/com/novaone/entity/RuleDTO.java	(revision 31355)
@@ -4,15 +4,17 @@
 
 @Data
 public class RuleDTO {
-	private int id;
-	private String khbm;
-	private String jdrbm;
-	private String bm;
-	private String spdl;
-	private String sdttbm;
-	private String jydwbm;
-	private String ywxz;
-	private String ysfs;
+	/*****/
+	//如有新增规则字段加入到公共属性中
+	public String khbm;
+	public String jdrbm;
+	public String bm;
+	public String spdl;
+	public String sdttbm;
+	public String jydwbm;
+	public String ywxz;
+	public String ysfs;
+	/*****/
 	private String fszl;
 	private String crtTime;
 	private String priority;
@@ -20,4 +22,5 @@
 	private String remark;
 	private String beginTime;
 	private String endTime;
+	private int id;
 }


Index: src/main/java/com/novaone/service/GrabPayService.java
===================================================================
--- src/main/java/com/novaone/service/GrabPayService.java	(revision 31354)
+++ src/main/java/com/novaone/service/GrabPayService.java	(revision 31355)
@@ -96,8 +96,6 @@
     
     List<PayDetail> getDyckSjzfzt();
     
-    void getDyckSjzfzt(List<PayDetail> listDyckSjzfzt);
-    
     String getPayStatus(String bgdh);
     
     List<String> getAll();
Index: src/main/java/com/novaone/service/RuleService.java
===================================================================
--- src/main/java/com/novaone/service/RuleService.java	(revision 31354)
+++ src/main/java/com/novaone/service/RuleService.java	(revision 31355)
@@ -14,5 +14,5 @@
 
 	List<RuleDTO> getActivityRuleList();
 	
-	boolean generateRules() throws Exception;
+	void generateRules() throws Exception;
 }
Index: src/main/java/com/novaone/service/impl/GrabPayServiceImpl.java
===================================================================
--- src/main/java/com/novaone/service/impl/GrabPayServiceImpl.java	(revision 31354)
+++ src/main/java/com/novaone/service/impl/GrabPayServiceImpl.java	(revision 31355)
@@ -164,7 +164,7 @@
 			// notPayDateStatus等于0的时候，启动洋山海关判断
 			if((CommonInfo.STATUS_BEGIN).equals(notPayDateStatus)) {
 				// 税单生成时间在11月1号-11月30号的汇总纳税单，先查申报地海关是否是洋山海关（港区），如果是，同步修改税单暂不支付字段为1
-				if(getNotPayDateSection(pd.getSdscsj()) && (CommonInfo.PAY_ZFFS_HZNS).equals(pd.getZffs())) {
+				if(CommonUtils.getNotPayDateSection(pd.getSdscsj(),startNotPayDate, endNotPayDate) && (CommonInfo.PAY_ZFFS_HZNS).equals(pd.getZffs())) {
 					//查询申报地海关
 					String sbdhg = hddzMapper.getSbdhg(pd.getBgdh());
 					if("洋山海关（港区）".equals(sbdhg)) {
@@ -180,31 +180,11 @@
 	}
 	//获取之前匹配上规则，但是支付时不符合规则的数据
 	@Override
+	@Transactional(propagation = Propagation.NOT_SUPPORTED)
 	public List<String> getBeforMatch(List<String> setStr) {
 		return hddzMapper.getBeforMatch(setStr);
 	}
-	/**
-	 * 判断传入日期是否在startNotPayDate与endNotPayDate之间
-	 * @Title: getNotPayDateSection
-	 * @Description: 
-	 * @param: @param compareDate
-	 * @param: @return   
-	 * @return: boolean
-	 * @author gubj  
-	 * @date 2021年11月18日 上午11:14:40
-	 */
-	public boolean getNotPayDateSection(String compareDate) {
-		boolean res = false;
-		try {
-			Date date = new SimpleDateFormat("yyyy-MM-dd").parse(compareDate);
-			Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(startNotPayDate);
-			Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(endNotPayDate);
-			res = CommonUtils.isEffectiveDate(date, date1, date2);
-		} catch (Exception e) {
-			log.info("getNotPayDateSection异常", e);
-		}
-		return res;
-	}
+	
 	//获取报关表提前支付的数据
 	@Transactional
 	@Override
@@ -463,38 +443,8 @@
 			}
 		}
 	}
+
 	/**
-	 * 发送c7指令--更新单一窗口实际的支付状态（抢付的和支付失败的）
-	 */
-	@Override
-	public void getDyckSjzfzt(List<PayDetail> listDyckSjzfzt) {
-		for(PayDetail pd : listDyckSjzfzt) {
-			try {
-				Map<String, String> _param = new HashMap<String, String>(); 
-				_param.put("bgdh", pd.getBgdh());
-				Map<String, String> _res = CommonInfo.getParameterMap(pd.getSbdw());
-				if(_res.isEmpty()) {
-//					grabPayService.insertErrorData(pd.getBgdh(), CommonInfo.GRAB_STATUS_INSSEND_ERROR, "c7指令未匹配到执行程序");
-					log.info("报关单号：" + pd.getBgdh() + "c7指令未匹配到相关执行程序");
-					continue;
-				}
-				// 发送指令
-				String res = OkHttpUtil.doSendOrder("http://127.0.0.1:9005" + CommonInfo.API_URL_ACTUAL_PAYDIRECTLYSTATUS, CommonUtils.getOrderParam(_param));
-				log.info("报关单号：" + pd.getBgdh() + "指令返回：："+ res);
-				//解析返回数据
-				String result = analysisHttpData(res);
-				if(CommonUtils.isEmpty(result) || "{}".equals(result)) {
-//					grabPayService.insertErrorData(pd.getBgdh(), CommonInfo.GRAB_STATUS_INSSEND_ERROR, "c7指令未查询到网站数据");
-					continue;
-				}
-				log.info("result===="+result);
-				doDyckSjzfztHddz(result, pd.getBgdh());
-			} catch (Exception e) {
-				log.info("c7指令异常",e);
-			}
-		}
-	}
-	/**
 	 * 
 	 * @Title: doDyckSjzfztHddz
 	 * @Description: 抓取实际单一窗口支付状态后，反写水果通
@@ -702,6 +652,7 @@
 				// 3、如果是申报单位不是我司且收发货单位是我司，直接放到pay_sfh_main
 				// 4、校验规则时单独判断是否强制支付，如果强制支付，则与通过规则同级
 				
+				// 筛选待抓取数据中，处理匹配到规则的数据
 				if(!resultMap.isEmpty()) {
 					if("Y".equals(resultMap.get("fszl"))) {
 						//获取银行账号
@@ -725,28 +676,55 @@
 							detail_t.add(payDetail);
 						}
 					}else {
-						// 明确规则不垫付
+						// 有规则明确不垫付
 						detail_t_not_clear.add(payDetail.getBgdh());
 					}
 				}else {
-					//没有匹配上规则
 					//将之前匹配上的，现在匹配不上的数据，预警出来，并且刷新水果通的自动缴税状态
 					detail_t_not.add(payDetail.getBgdh());
 				}
 			}
 		}
-    	
-    	if(!detail_t_not.isEmpty()) {
-    		//看是不是有之前匹配上的数据
-    		List<String> l = grabPayService.getBeforMatch(detail_t_not);
+    	//如果是数据原因
+    	detailTnot(detail_t_not);
+    	//如果是规则原因
+    	detailTnotClear(detail_t_not_clear);
+    	return detail_t;
+    }
+	/**
+	 * 
+	 * @Title: detailTnot
+	 * @Description:  筛选待抓取数据中，处理未匹配到规则的数据
+	 * @param: @param detail_t_not   
+	 * @return: void
+	 * @author gubj  
+	 * @date 2022年6月16日 上午11:08:18
+	 */
+	@Transactional
+	public void detailTnot(List<String> detail_t_not) {
+		if(!detail_t_not.isEmpty()) {
+			//看是不是有之前匹配上的数据
+			List<String> l = grabPayService.getBeforMatch(detail_t_not);
 			if(l != null && !l.isEmpty()) {
 				log.info("由于数据原因，已不符合支付规则::"+JSON.toJSONString(l));
 				//更新水果通状态并预警 
 				hddzMapper.updateNotZdjs(l);
 				grabPayService.insertErrorData(detail_t_not.get(0), CommonInfo.GRAB_STATUS_DATACHANGE_NOTRULEENGINE, "由于数据原因，已不符合支付规则");
 			}
-    	}
-    	if(!detail_t_not_clear.isEmpty()) {
+		}
+	}
+	/**
+	 * 
+	 * @Title: detailTnot
+	 * @Description:  筛选待抓取数据中，处理不垫付数据
+	 * @param: @param detail_t_not   
+	 * @return: void
+	 * @author gubj  
+	 * @date 2022年6月16日 上午11:08:18
+	 */
+	@Transactional
+	public void detailTnotClear(List<String> detail_t_not_clear) {
+		if(!detail_t_not_clear.isEmpty()) {
     		//看是不是有之前匹配上的数据
     		List<String> l = grabPayService.getBeforMatch(detail_t_not_clear);
     		if(l != null && !l.isEmpty()) {
@@ -756,8 +734,7 @@
     			grabPayService.insertErrorData(detail_t_not_clear.get(0), CommonInfo.GRAB_STATUS_DATACHANGE_NOTRULEENGINE, "由于规则原因，该数据由垫付转为不垫付");
     		}
     	}
-    	return detail_t;
-    }
+	}
 	/**
 	 * 筛选待抓取数据--删除掉主表不符合规则引擎的数据
 	 */
Index: src/main/java/com/novaone/service/impl/RuleServiceIml.java
===================================================================
--- src/main/java/com/novaone/service/impl/RuleServiceIml.java	(revision 31354)
+++ src/main/java/com/novaone/service/impl/RuleServiceIml.java	(revision 31355)
@@ -2,13 +2,13 @@
 
 import java.io.BufferedWriter;
 import java.io.File;
-import java.io.FileInputStream;
-import java.io.FileOutputStream;
 import java.io.FileWriter;
 import java.io.IOException;
+import java.lang.reflect.Field;
 import java.lang.reflect.Method;
 import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
+import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.Date;
 import java.util.HashMap;
@@ -18,6 +18,7 @@
 
 import javax.annotation.Resource;
 
+import org.apache.commons.io.FileUtils;
 import org.drools.template.ObjectDataCompiler;
 import org.kie.api.KieServices;
 import org.kie.api.builder.KieBuilder;
@@ -66,8 +67,7 @@
 	 * 生成规则
 	 */
 	@Override
-	public boolean generateRules() throws Exception{
-		boolean flag = false;
+	public void generateRules() throws Exception{
 		// 拿数据
 		List<RuleDTO> ruleDTOs = ruleService.getActivityRuleList();
 		if(null == ruleDTOs || ruleDTOs.isEmpty()) {
@@ -85,7 +85,6 @@
 		        });
 		        //规则的加载
 		        createOrRefreshDrl(ruleDrls);
-		        flag = !flag;
 		        log.info("结束时间：：："+LocalDateTime.now());
 			} catch (Exception e) {
 				log.info("生成规则出现异常",e);
@@ -95,7 +94,6 @@
 				throw e;
 			}
 		}
-		return flag;
 	}
     /**
      * 
@@ -114,7 +112,7 @@
         ObjectDataCompiler objectDataCompiler = new ObjectDataCompiler();
         // 模板文件生成drl String
         return objectDataCompiler.compile(Arrays.asList(data), 
-        		Thread.currentThread().getContextClassLoader().getResourceAsStream("give-reward-rule-template.drt"));
+        		Thread.currentThread().getContextClassLoader().getResourceAsStream(CommonInfo.drtFormalFileName));
     }
     /**
      * 
@@ -127,12 +125,12 @@
      * @author gubj  
      * @date 2022年5月25日 上午10:21:11
      */
-    protected Map<String, Object> prepareData(RuleDTO ruleDTO) throws Exception{
+    private Map<String, Object> prepareData(RuleDTO ruleDTO) throws Exception{
         Map<String, Object> data = new HashMap<>();
         RuleDTO rule = ruleDTO;
         data.put("ruleCode", rule.getId());//id
         data.put("beginTime", CommonUtils.stringToStringFormat(ruleDTO.getBeginTime(), "dd-MMM-yyyy"));//开始时间（一定不为空）
-        if(ruleDTO.getEndTime() == null) {
+        if(CommonUtils.isEmpty(ruleDTO.getEndTime())) {
         	data.put("endTime", null);//结束时间
         }else {
         	data.put("endTime", CommonUtils.stringToStringFormat(ruleDTO.getEndTime(), "dd-MMM-yyyy"));//结束时间
@@ -155,16 +153,28 @@
      * @date 2022年5月24日 下午6:04:13
      */
     private String getRules(RuleDTO rule) throws Exception{
-    	String stringRule = "RuleDTO(";
-    	String[] filedArr = {"khbm","jdrbm","bm","spdl","sdttbm","jydwbm","ywxz","ysfs"};
-		for(String s : filedArr) {
-			if(!CommonUtils.isEmpty(getGetMethodInvoke(rule, s))) {
-             	stringRule += getGetMethodName(rule, s) + "==\""+getGetMethodInvoke(rule, s)+"\" && ";
+    	String stringRule = rule.getClass().getSimpleName() + "(";
+		for(String s : getFieldName(rule)) {
+			if(!CommonUtils.isEmpty(getMethodInvoke(rule, s))) {
+             	stringRule += getMethodName(rule, s) + "==\""+getMethodInvoke(rule, s)+"\" && ";
 			}
 		}
     	return stringRule.substring(0,stringRule.length()-3) + ")";
     }
     /**
+     * 获取对象的规则字段名
+     *
+     * @param object
+     * @return
+     */
+    private static List<String> getFieldName(Object object) {
+    	List<String> marr = new ArrayList<String>();
+    	for(Field field : object.getClass().getFields()){
+    		marr.add(field.getName());
+		}
+        return marr;
+    }
+    /**
      * 
      * @Title: getGetMethodInvoke
      * @Description: 根据字段名字拿到get方法值
@@ -176,7 +186,7 @@
      * @author gubj  
      * @date 2022年5月19日 下午5:11:14
      */
-	public static Object getGetMethodInvoke(Object ob , String name)throws Exception{
+	private static Object getMethodInvoke(Object ob , String name)throws Exception{
 		Method[] m = ob.getClass().getMethods();
 		for(int i = 0;i < m.length;i++){
 			if(("get"+name).toLowerCase().equals(m[i].getName().toLowerCase())){
@@ -197,7 +207,7 @@
 	 * @author gubj  
 	 * @date 2022年5月20日 上午10:33:21
 	 */
-	public static Object getGetMethodName(Object ob , String name)throws Exception{
+	private static Object getMethodName(Object ob , String name)throws Exception{
 		Method[] m = ob.getClass().getMethods();
 		for(int i = 0;i < m.length;i++){
 			if(("get"+name).toLowerCase().equals(m[i].getName().toLowerCase())){
@@ -217,29 +227,20 @@
      * @throws Exception 
      * @date 2022年5月25日 上午10:21:51
      */
-    private void createOrRefreshDrl(List<String> rules) throws Exception {
-    	System.err.println(rules.size());
+	private void createOrRefreshDrl(List<String> rules) throws Exception {
+    	log.info("createOrRefreshDrl数量：：："+rules.size());
         try {
         	// 1、先备份之前的规则
-        	copyFileToFolder(CommonInfo.drlFormalFileName, CommonInfo.drlPrefixStr + "drlbackup");
-        	// 2、清空temp规则文件
-        	writeFileNull(CommonInfo.drlPrefixStr + CommonInfo.drlTempFileName);
+        	copyFileToFolder(CommonInfo.drlFormalFileName, CommonInfo.drlPrefixStr + "drlbackup/");
         	// 3、将规则写入temp文件
-	        bufferedWriterTest(CommonInfo.drlPrefixStr + CommonInfo.drlTempFileName, CommonInfo.drlFileHeader);
-	        for (String str : rules) {
-				bufferedWriterTest(CommonInfo.drlPrefixStr + CommonInfo.drlTempFileName,  str);
-	        }
+        	writerRule(rules, CommonInfo.drlPrefixStr + CommonInfo.drlTempFileName);
 	        // 4、校验temp文件
 	        if(testTempRule() == -1) {
 	        	// 出现异常，给出预警
 	        	grabPayService.insertErrorData("", CommonInfo.DRL_RULE_GENERATE_ERROR, "程序生成drl校验文件异常");
 	        }else {
 	        	// 5、将temp文件内容替换到正式文件
-	        	writeFileNull(CommonInfo.drlPrefixStr + CommonInfo.drlFormalFileName);
-	        	bufferedWriterTest(CommonInfo.drlPrefixStr + CommonInfo.drlFormalFileName, CommonInfo.drlFileHeader);
-	        	for (String str : rules) {
-					bufferedWriterTest(CommonInfo.drlPrefixStr + CommonInfo.drlFormalFileName,  str);
-		        }
+	        	writerRule(rules, CommonInfo.drlPrefixStr + CommonInfo.drlFormalFileName);
 	        }
         } catch (Exception e) {
         	grabPayService.insertErrorData("", CommonInfo.DRL_RULE_GENERATE_ERROR, "程序生成drl文件异常");
@@ -248,7 +249,17 @@
 			throw e;
 		}
     }
-
+	
+    //写入规则
+    private void writerRule(List<String> rules, String fileName) throws Exception {
+    	// 2、清空规则文件
+    	writeFileNull(fileName);
+    	// 写入
+    	bufferedWriterTest(fileName, CommonInfo.drlFileHeader);
+        for (String str : rules) {
+			bufferedWriterTest(fileName,  str);
+        }
+    }
     /**
      * 
      * @Title: bufferedWriterTest
@@ -268,7 +279,7 @@
     /**
      * 
      * @Title: copyFileToFolder
-     * @Description: 复制文件至指定目录
+     * @Description: 复制文件至指定目录并重命名
      * @param: @param srcFileName
      * @param: @param destDir   
      * @return: void
@@ -276,26 +287,13 @@
      * @throws Exception 
      * @date 2022年5月25日 上午11:14:49
      */
-    public static void copyFileToFolder(String srcFileName, String destDir) throws Exception {
-        //组装成一个目录文件
-        String dirFile = destDir + "/" + srcFileName + "-" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
-        int index;
-        byte[] bytes = new byte[1024];
-        try {
-        	File file = new File(CommonInfo.drlPrefixStr + CommonInfo.drlFormalFileName);
-            FileInputStream input = new FileInputStream(file);
-        	
-            FileOutputStream outputStream = new FileOutputStream(dirFile);
-            while ((index = input.read(bytes)) != -1) {
-                outputStream.write(bytes, 0, index);
-                outputStream.flush();
-            }
-            outputStream.close();
-            input.close();
-        } catch (Exception e) {
-            System.err.println("备份规则文件时异常 " + e.getMessage());
-            throw e;
-        }
+    private static void copyFileToFolder(String srcFileName, String dirDirectory) throws Exception {
+    	//组装成一个目标文件
+    	String dirFile = dirDirectory + srcFileName + "-" + new SimpleDateFormat("yyyyMMddHHmmss").format(new Date());
+        //备份文件
+        FileUtils.copyFileToDirectory(new File(CommonInfo.drlPrefixStr + srcFileName), new File(dirDirectory));
+        //重命名
+        new File(dirDirectory + srcFileName).renameTo(new File(dirFile));
     }
     /**
      * 
@@ -307,12 +305,9 @@
      * @author gubj  
      * @date 2022年5月25日 下午3:05:54
      */
-    public static void writeFileNull(String srcFileName) throws Exception{
-    	File f = new File (srcFileName);
-    	FileWriter fw = new FileWriter (f);
-    	fw.write("");
-    	fw.flush();
-    	fw.close();
+    @SuppressWarnings("deprecation")
+    private static void writeFileNull(String srcFileName) throws Exception{
+    	FileUtils.writeStringToFile(new File (srcFileName), "");
     }
     /**
      * 
@@ -324,7 +319,7 @@
      * @date 2022年5月25日 下午3:05:38
      */
     @SuppressWarnings("unchecked")
-	public static int testTempRule() {
+    private static int testTempRule() {
 	    // 构建KieSession, 这部分写法是固定的
 	    KieServices kieServices = KieServices.Factory.get();
 	    KieFileSystem kieFileSystem = kieServices.newKieFileSystem();
Index: src/main/java/com/novaone/util/CommonUtils.java
===================================================================
--- src/main/java/com/novaone/util/CommonUtils.java	(revision 31354)
+++ src/main/java/com/novaone/util/CommonUtils.java	(revision 31355)
@@ -168,6 +168,28 @@
 
     }
     /**
+	 * 判断传入日期是否在startNotPayDate与endNotPayDate之间
+	 * @Title: getNotPayDateSection
+	 * @Description: 
+	 * @param: @param compareDate
+	 * @param: @return   
+	 * @return: boolean
+	 * @author gubj  
+	 * @date 2021年11月18日 上午11:14:40
+	 */
+	public static boolean getNotPayDateSection(String compareDate, String startNotPayDate, String endNotPayDate) {
+		boolean res = false;
+		try {
+			Date date = new SimpleDateFormat("yyyy-MM-dd").parse(compareDate);
+			Date date1 = new SimpleDateFormat("yyyy-MM-dd").parse(startNotPayDate);
+			Date date2 = new SimpleDateFormat("yyyy-MM-dd").parse(endNotPayDate);
+			res = CommonUtils.isEffectiveDate(date, date1, date2);
+		} catch (Exception e) {
+			log.info("getNotPayDateSection异常", e);
+		}
+		return res;
+	}
+    /**
      * 将map转成控制指令参数
      * @Title: getOrderParam
      * @param: @param map
