TaskAnalysis.java 2.1 KB
package com.tianbo.analysis.task;

import com.tianbo.util.Date.DateUtil;
import com.tianbo.util.IO.FileTool;
import com.tianbo.analysis.handle.CustomXmlHandle;
import org.apache.commons.io.FileUtils;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;

import java.io.File;
import java.util.Iterator;
import java.util.List;

/**
 * 回执解析定时任务
 */
@Component
public class TaskAnalysis {

    private String today = DateUtil.getTodayBy_yyyyMMdd();

    //回执读取目录
    @Value("${custom.receptDirectory}")
    private  String receptDir;

    //备份目录
    @Value("${custom.receptBakDir}")
    private String bakupDir;

    //解析出错转移目录
    @Value("${custom.errBakDir}")
    private String errBakDir;



//    @Scheduled(fixedDelay = 5000)
    public void startTask(){
        String readDir = receptDir + "/" + today;
        String backdireByDay =  bakupDir + "/" + today;

        List<File> files = FileTool.readDirectoryFiles(new File(readDir));
        Iterator<File> it = files.iterator();
        while(it.hasNext()){
            File file = it.next();
            try {
                //解析
                int i = new CustomXmlHandle().handelXmlDocument(file);
                //操作成功,则转移剪切解析文件到备份目录,否则转移到error目录备份
                if(i>0){
                    File bakupDirectory = new File(backdireByDay);
                    FileUtils.moveFileToDirectory(file,bakupDirectory,true);
                }else {
                    errBak(file);
                }
            }catch (Exception e){
                e.printStackTrace();
                errBak(file);
            }
        }
    }

    public void errBak(File file){
        try {
            String errDirByDay = errBakDir + "/" + today;
            File berrDirectory = new File(errDirByDay);
            FileUtils.moveFileToDirectory(file,berrDirectory,true);
        }catch (Exception e){
            e.printStackTrace();
        }
    }
}