private void executeTransaction(String file) throws Exception {
String filePath=file.replace("/","\\");
BusinessObjectManager bom = null;
BusinessObject loan=null;
String source = null;
String applyId;
try {
bom = BatchBusinessObjectManager.createBusinessObjectManager(this.connection);
File f = new File(filePath);
System.out.println("文件路径"+f);
FileInputStream in = new FileInputStream(f);
// 一次性读取
int size = in.available();
byte[] buffer = new byte[size];
in.read(buffer);
in.close();
source = new String(buffer, "utf-8");
JSONArray jsonarray = JSONArray.parseArray(source);
for (int i = 0; i<jsonarray.size(); i++) {
JSONObject tmp = jsonarray.getJSONObject(i); // 获取数组中的对象
String debit = tmp.getString("debit");
JSONObject jsonobject = JSONObject.parseObject(debit); // 获取对象中的对象
loan=BusinessObject.createBusinessObject(BUSINESSOBJECT_CONSTANTS.repurchase_loan); //不行
loan.generateKey(false);
applyId=jsonobject.getString("applyId");
loan.setAttributeValue("APPLYID",applyId);
loan.setAttributeValue("PROJECTID",jsonobject.getString("projectId"));
loan.setAttributeValue("PAYBANKCODE",jsonobject.getString("payBankCode"));
//外面数据 one
loan.setAttributeValue("PROJECTSTATUS",jsonarray.getJSONObject(i).getString("status"));
loan.setAttributeValue("AGREEMENTCODE",jsonarray.getJSONObject(i).getString("agreementCode"));
bom.updateBusinessObject(loan);
bom.updateDB();
bom.commit();
// 读取fees里面的数据 many 交易数据
String fees = jsonarray.getJSONObject(i).getString("fees");
JSONArray paymentArray = JSONArray.parseArray(fees);
for (int k = 0; k < paymentArray.size(); k++) {
BusinessObject payment=BusinessObject.createBusinessObject(BUSINESSOBJECT_CONSTANTS.repurchase_payment);
payment.setAttributeValue("SERIALNO",paymentArray.getJSONObject(k).getString("id"));
payment.setAttributeValue("APPLYID",paymentArray.getJSONObject(k).getString("debitId"));
//入库
bom.updateBusinessObject(payment);
bom.updateDB();
bom.commit();
}
}
bom.clear();
} catch (Exception e) {
bom.rollback();
bom.clear();
logger.error("======入库执行失败!请检查!========"+e.getMessage(),e);
} finally {
System.out.println("执行完成");
}
}