Commit d3fe43d5 authored by 陈宏杰's avatar 陈宏杰

数据校验

parent 2f56577b
......@@ -215,4 +215,14 @@ public class ManualToolController {
}
}
@RequestMapping("/fileDataCheckCopy")
public String fileDataCheckCopy(String sourceFileName,String targetFileName,String checkFieldNames){
try {
fileReportService.fileDataCheckCopy(sourceFileName,targetFileName,checkFieldNames);
return "SUCCESS";
}catch (Exception e){
return e.getMessage();
}
}
}
package cn.quantgroup.report.service.baihang;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.io.IoUtil;
import cn.quantgroup.report.domain.baihang.*;
import cn.quantgroup.report.error.QGException;
import cn.quantgroup.report.mapper.baihang.ApplyLoanInfoMapper;
......@@ -34,7 +35,10 @@ import org.springframework.scheduling.annotation.Async;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.lang.reflect.Field;
import java.util.*;
import java.util.concurrent.TimeUnit;
......@@ -908,4 +912,48 @@ public class BaiHangFileReportService {
log.info("{}文件数据校验结束",singleFileName);
}
@Async
public void fileDataCheckCopy(String sourceFileName,String targetFileName,String checkFieldNames) throws Exception{
log.info("sourceFileName:{} , targetFileName:{} 文件数据校验拷贝开始...",sourceFileName,targetFileName);
List<String> checkFieldNameList = Arrays.asList(checkFieldNames.split(","));
BufferedReader bis = null;
FileWriter bos = null;
String dataStr = null;
try {
bis = new BufferedReader(new FileReader(HOST_PATH + sourceFileName));
bos = new FileWriter(HOST_PATH + targetFileName);
while(null != (dataStr = bis.readLine())) {
Boolean noError = Boolean.TRUE;
ApplyLoanInfoZhuDai applyLoanInfoZhuDai = JSONObject.parseObject(dataStr, ApplyLoanInfoZhuDai.class);
for (String fieldName : checkFieldNameList) {
Field declaredField = ApplyLoanInfoZhuDai.class.getDeclaredField(fieldName);
Object property = BeanUtil.getProperty(applyLoanInfoZhuDai, fieldName);
if (Objects.isNull(property) || Objects.isNull(declaredField)) {
noError = Boolean.FALSE;
break;
}
if (Objects.nonNull(declaredField) && declaredField.getType().equals(String.class)) {
if (StringUtils.isBlank(property.toString())) {
noError = Boolean.FALSE;
break;
}
}
}
if (noError) {
bos.write(dataStr + System.getProperty("line.separator"));
} else {
log.error("文件数据校验异常信息:{}",dataStr);
}
}
} catch (Exception e) {
log.error("sourceFileName:{} , targetFileName:{} 文件数据校验拷贝异常",sourceFileName,targetFileName,e);
} finally {
IoUtil.close(bos);
IoUtil.close(bis);
dataStr = null;
}
log.info("sourceFileName:{} , targetFileName:{} 文件数据校验拷贝结束",sourceFileName,targetFileName);
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment