import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
@Service
public class AmcCollectionDetailStatementServiceImpl implements AmcCollectionDetailStatementService {
public static final String fieldLimitChar = ",";
public static final int fieldAllCount = 8;
private int count;
private final static org.slf4j.Logger logger = LoggerFactory.getLogger(AmcCollectionDetailStatementService.class);
@Autowired
private AmcCollectionDetailStatementMapper amcCollectionDetailStatementMapper;
//项目编码
private String itemNo;
//合同号/借款编号
private String contractNo;
//本期期数
private int term;
//风险保证金/服务费金额
private Long serviceCharge;
//收款账户 : AMC支付宝账号
private String collectionNo;
//三方支付流水/银行流水
private String bankNo;
//风险保证金收款时间
private String serviceTime;
//账单日期
private String billDate;
@Override
public void parseRecord(String address) throws Exception {
String encoding = "UTF-8";
File file = new File(address);
if (file.isFile() && file.exists()) { //判断文件是否存在
InputStreamReader read = new InputStreamReader(new FileInputStream(file), encoding);//考虑到编码格式
BufferedReader bufferedReader = new BufferedReader(read);
String lineTxt = null;
while ((lineTxt = bufferedReader.readLine()) != null) {
System.out.println(lineTxt);
//拆分记录
String[] fields = lineTxt.split(fieldLimitChar);
if(fields.length<2*fieldAllCount){
logger.error("文件内容为空");
}
for (int i=1; i<fields.length/fieldAllCount; i++) {
if (tranStr(fields[fieldAllCount * i]).length() == 0 || fields[fieldAllCount*i] == null) {
return;
}
itemNo = tranStr(fields[0+(fieldAllCount*i)]);
if(i==1){
itemNo = itemNo.substring(1, itemNo.length());
}
contractNo = tranStr(fields[1+(fieldAllCount*i)]);
term = Integer.parseInt(tranStr(fields[2+(fieldAllCount*i)]));
serviceCharge = Long.valueOf(tranStr(fields[3+(fieldAllCount*i)]));
collectionNo = tranStr(fields[4+(fieldAllCount*i)]);
bankNo = tranStr(fields[5+(fieldAllCount*i)]);
serviceTime = tranStr(fields[6+(fieldAllCount*i)]);
billDate = tranStr(fields[7+(fieldAllCount*i)]);
System.out.println(itemNo + " " + contractNo + " " + term + " " + serviceCharge + " " + collectionNo + " " + bankNo + " " + serviceTime + " " + billDate);
AmcCollectionDetailStatement amcCollectionDetailStatement = new AmcCollectionDetailStatement();
amcCollectionDetailStatement.setItemNo(itemNo);
amcCollectionDetailStatement.setContractNo(contractNo);
amcCollectionDetailStatement.setTerm(term);
amcCollectionDetailStatement.setServiceCharge(serviceCharge);
amcCollectionDetailStatement.setCollectionNo(collectionNo);
amcCollectionDetailStatement.setBankNo(bankNo);
amcCollectionDetailStatement.setServiceTime(serviceTime);
amcCollectionDetailStatement.setBillDate(billDate);
amcCollectionDetailStatementMapper.insert(amcCollectionDetailStatement);
}
}
read.close();
} else {
logger.error("系统找不到指定的文件");
}
}
private String tranStr(String oldstr) {
String newstr = "";
try {
newstr = new String(oldstr.getBytes("ISO-8859-1"), "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return newstr;
}
}
网友评论