...
|
...
|
@@ -21,6 +21,7 @@ import org.xml.sax.SAXParseException; |
|
|
import javax.annotation.PostConstruct;
|
|
|
import java.io.File;
|
|
|
import java.io.FileNotFoundException;
|
|
|
import java.io.IOException;
|
|
|
import java.io.UnsupportedEncodingException;
|
|
|
import java.util.concurrent.CountDownLatch;
|
|
|
|
...
|
...
|
@@ -43,6 +44,10 @@ public class CustomXmlHandleThread implements Runnable{ |
|
|
@Value("${custom.errBakDir}")
|
|
|
private String errBakDir;
|
|
|
|
|
|
//匹配技术回执正则
|
|
|
@Value("${custom.delTechnologyReceptMatch}")
|
|
|
private String delTechnologyReceptMatch;
|
|
|
|
|
|
private File xmlfile;
|
|
|
|
|
|
private static CustomXmlHandleThread customXmlHandle;
|
...
|
...
|
@@ -87,30 +92,42 @@ public class CustomXmlHandleThread implements Runnable{ |
|
|
|
|
|
customXmlHandle.errBakDir = this.errBakDir;
|
|
|
|
|
|
customXmlHandle.delTechnologyReceptMatch = this.delTechnologyReceptMatch;
|
|
|
|
|
|
// 初使化时将已静态化的testService实例化
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
public void run() {
|
|
|
log.info("线程:{}开始",xmlfile.getName());
|
|
|
try{
|
|
|
int i =handelXmlDocument();
|
|
|
String today = DateUtil.getTodayBy_yyyyMMdd();
|
|
|
String backdireByDay = customXmlHandle.bakupDir + "/" + today;
|
|
|
//操作成功,则转移剪切解析文件到备份目录,否则转移到error目录备份
|
|
|
if(i>0){
|
|
|
File bakupDirectory = new File(backdireByDay);
|
|
|
//解析成功备份一份到备份目录
|
|
|
FileUtils.moveFileToDirectory(xmlfile,bakupDirectory,true);
|
|
|
}else {
|
|
|
String filename = xmlfile.getName();
|
|
|
log.info("线程:{}开始",filename);
|
|
|
if(filename.matches(customXmlHandle.delTechnologyReceptMatch)){
|
|
|
log.warn("{}报文为技术回执,剪切到错误备份目录,不解析",filename);
|
|
|
errBak(xmlfile);
|
|
|
log.info("{}报文为技术回执,剪切备份成功..开始解析下一文件,当前线程即将结束",filename);
|
|
|
}
|
|
|
else
|
|
|
{
|
|
|
try{
|
|
|
int i =handelXmlDocument();
|
|
|
String today = DateUtil.getTodayBy_yyyyMMdd();
|
|
|
String backdireByDay = customXmlHandle.bakupDir + "/" + today;
|
|
|
//操作成功,则转移剪切解析文件到备份目录,否则转移到error目录备份
|
|
|
if(i>0){
|
|
|
File bakupDirectory = new File(backdireByDay);
|
|
|
//解析成功备份一份到备份目录
|
|
|
FileUtils.moveFileToDirectory(xmlfile,bakupDirectory,true);
|
|
|
}else {
|
|
|
errBak(xmlfile);
|
|
|
}
|
|
|
}catch (FileExistsException e){
|
|
|
log.error("错误的解析文件剪切失败,目标目录已存在同名文件");
|
|
|
}catch (Exception e){
|
|
|
log.error("错误的解析文件剪切失败,目标目录已存在同名文件",e);
|
|
|
errBak(xmlfile);
|
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}catch (FileExistsException e){
|
|
|
log.error("错误的解析文件剪切失败,目标目录已存在同名文件");
|
|
|
}catch (Exception e){
|
|
|
log.error("错误的解析文件剪切失败,目标目录已存在同名文件",e);
|
|
|
errBak(xmlfile);
|
|
|
e.printStackTrace();
|
|
|
|
|
|
}
|
|
|
|
|
|
log.info("线程:{}结束",xmlfile.getName());
|
...
|
...
|
@@ -330,4 +347,5 @@ public class CustomXmlHandleThread implements Runnable{ |
|
|
e.printStackTrace();
|
|
|
}
|
|
|
}
|
|
|
|
|
|
} |
...
|
...
|
|