diff --git a/WebContent/Tenwa/Lease/App/Interface/Ebank/LCEbankList.jsp b/WebContent/Tenwa/Lease/App/Interface/Ebank/LCEbankList.jsp index 50e2574ef..36c9c589c 100644 --- a/WebContent/Tenwa/Lease/App/Interface/Ebank/LCEbankList.jsp +++ b/WebContent/Tenwa/Lease/App/Interface/Ebank/LCEbankList.jsp @@ -133,7 +133,6 @@ var sparam=JSON.stringify(importCondition).replace(/,/g,"@");//生成模板的参数据 AsDialog.PopView("/Tenwa/Core/OfficeTemplate/TemplateManager/BFTemplateTest/uploadExcel.jsp","importparam="+sparam, {width:"320px",height:"40px",title:"上传网银Excel"},function(){reloadSelf();}); - } function ebankDownload(){ var sId="2017060200000001"; @@ -158,6 +157,7 @@ function newRecord(){ var sUrl = "/Tenwa/Lease/App/Interface/Ebank/LCEbankInfo.jsp"; AsControl.OpenView(sUrl,'','_self',''); + var res=RunJavaMethodTrans("com.tenwa.lease.app.ebank.EbankUse","createEbankVoucher",""); } function viewAndEdit(){ var sUrl = "/Tenwa/Lease/App/Interface/Ebank/LCEbankInfo.jsp"; diff --git a/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml b/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml index f8368d08b..a2e829e08 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_voucher.xml @@ -182,7 +182,7 @@ - + @@ -192,6 +192,23 @@ + + + + + + + + + + + + + + + + + diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java index 32eae2f89..0ecfe9ecc 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherLoanDistributor.java @@ -209,7 +209,7 @@ public class CreateVoucherLoanDistributor { }else if("PZ2018071000000007".equals(VOUCHERNO)||"PZ2018080300000072".equals(VOUCHERNO)){// 收取客户手续费 param.put("CASHFLOW", "");// 现金流项目 param.put("BUSINESSTYPE", "0604"); - }else if("PZ2018070900000002".equals(VOUCHERNO)||"PZ2018072400000060".equals(VOUCHERNO)){// 购置融资租赁资产 + }else if("PZ2018070900000002".equals(VOUCHERNO)||"PZ2018072400000060".equals(VOUCHERNO) || "PZ2018073100000062".equals(VOUCHERNO)){// 购置融资租赁资产 if(cust_list != null) {// 集团内 param.put("CASHFLOW", "11212");// 现金流项目 }else {// 集团外 diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/ContractOnhireVoucher.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/ContractOnhireVoucher.java index 398f391a1..49ee4aa6f 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/ContractOnhireVoucher.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/ContractOnhireVoucher.java @@ -21,7 +21,7 @@ public class ContractOnhireVoucher extends BaseBussiness { cvld.CreateVoucher(FlowUnid, "PZ2018070900000002");// 购置融资租赁资产-回 - cvld.CreateVoucher(FlowUnid, "PZ2018073100000062");// 购置融资租赁资产-回--第一车贷 + // cvld.CreateVoucher(FlowUnid, "PZ2018073100000062");// 购置融资租赁资产-回--第一车贷 //cvld.CreateVoucher(FlowUnid, "PZ2018122000000010");// 购置融资租赁资产-回 //cvld.CreateVoucher(FlowUnid, "PZ2018072400000060");// 购置融资租赁资产-直 diff --git a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java index b92698324..e9fb659aa 100644 --- a/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java +++ b/src_core/com/tenwa/voucher/serviceImp/CreateVoucherServiceImpl.java @@ -401,6 +401,14 @@ public class CreateVoucherServiceImpl { } } + // 起租-第一车贷, 购置融资租赁资产带固定编码 + if("PZ2018073100000062".equals(VOUCHERNO)) { + if("3".equals(SORT_NUMBER)) { + subData.put("CUSTID","020132");//经销商id + subData.put("CUSTNAME","上海锋之行汽车金融信息服务有限公司");//经销商名称 + } + } + /* * 提前结清带虚拟客户名称编码 */ diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java index a308bbdb8..f40da6762 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforAssistContract.java @@ -16,6 +16,8 @@ import java.util.List; import java.util.Map; import java.util.UUID; +import javax.xml.parsers.DocumentBuilder; +import javax.xml.parsers.DocumentBuilderFactory; import javax.xml.transform.OutputKeys; import javax.xml.transform.Transformer; import javax.xml.transform.TransformerFactory; @@ -74,14 +76,14 @@ public class VoucherToNCforAssistContract implements Job{ // 生成xml头 Document document = DocumentHelper.createDocument(); // 生成每个xml的头 Element root = document.addElement("ufinterface"); - root.addAttribute("account","BQ1217"); - root.addAttribute("billtype","defdoc(自定义档案)"); + root.addAttribute("account","bq1217"); + root.addAttribute("billtype","defdoc"); root.addAttribute("businessunitcode",""); root.addAttribute("filename",""); root.addAttribute("groupcode","06"); root.addAttribute("isexchange","Y"); root.addAttribute("orgcode",""); - root.addAttribute("receiver","接收方业务单元编码"); + root.addAttribute("receiver","807001002001"); root.addAttribute("replace","Y"); root.addAttribute("roottag",""); root.addAttribute("sender","001"); @@ -103,7 +105,7 @@ public class VoucherToNCforAssistContract implements Job{ Element pk_group = billhead.addElement("pk_group");// 所属集团,最大长度为20,类型为:String pk_group.setText("06"); Element pk_org = billhead.addElement("pk_org");// 所属组织,最大长度为20,类型为:String - pk_org.setText("安鹏租赁业务单元编码"); + pk_org.setText("807001002001"); Element code = billhead.addElement("code");// 档案编码,最大长度为40,类型为:String code.setText(contract_number); Element name = billhead.addElement("name");// 档案名称,最大长度为200,类型为:String @@ -121,14 +123,14 @@ public class VoucherToNCforAssistContract implements Job{ Sqlca.executeSQL(insertSql); logger.info("辅助合同记录语句: " + insertSql); } - // String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_Defdoc_"+year_month_day+".xml"; - String URL="D:\\voucherXml_NC\\APleasing_Defdoc_"+year_month_day+".xml"; + String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_Defdoc_"+year_month_day+".xml"; + // String URL="D:\\voucherXml_NC\\APleasing_Defdoc_"+year_month_day+".xml"; file=new File(URL); writer = new XMLWriter(new FileOutputStream(file), OutputFormat.createPrettyPrint()); writer.setEscapeText(false);// 字符是否转义,默认true writer.write(document); writer.close(); - // InterActionToNC(Sqlca,URL,type,batch,rs.size()); + InterActionToNC(Sqlca,URL,type,batch,rs.size()); Sqlca.commit(); } QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforAssistContract", "success", "成功",curUserId); @@ -155,20 +157,20 @@ public class VoucherToNCforAssistContract implements Job{ /** * 像NC传输xml, 获取NC回执xml信息, 根据回执信息更改状态 */ - public static void InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) { - try { + public static String InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) throws Exception { String updateSql = ""; // 更新sql对象 String insertSql = ""; // 新增SQL对象 String deleteSql = ""; // 删除SQL对象 String resultcode= ""; // 单条返回结果 String bdocid = ""; // xml回执id String resultdescription=""; //错误信息 + String returns="true"; /** * 获取对方post连接 */ //String url = "http://47.93.227.86:8858/service/XChangeServlet?account=q0225&groupcode=001"; - String url = "http://172.16.0.88:9990/service/XChangeServlet?account=BQ1217&groupcode=06"; + String url = "http://172.16.0.88:9990/service/XChangeServlet?account=bq1217&groupcode=06"; URL realURL = new URL(url); HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true); @@ -180,30 +182,39 @@ public class VoucherToNCforAssistContract implements Job{ */ File file = new File(inputURL); BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream()); - BufferedInputStream input = new BufferedInputStream(new FileInputStream(file)); - int length; - byte[] buffer = new byte[1000]; - while ((length = input.read(buffer, 0, 1000)) != -1) { - out.write(buffer, 0, length); + BufferedReader reader = new BufferedReader (new InputStreamReader(new FileInputStream(file),"UTF-8")); + String xml=""; + String ss=null; + while((ss=reader.readLine()) != null) { + xml+=ss; + xml+="\r\n"; + out.write(ss.getBytes()); } - input.close(); + System.out.println(xml); + reader.close(); out.close(); /** * 获取NC回执信息 */ InputStream inputStream = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(inputStream); + InputStreamReader isr = new InputStreamReader(inputStream,"UTF-8"); BufferedReader bufreader = new BufferedReader(isr); String xmlString = ""; - int c; + String b=null; + while((b=bufreader.readLine()) !=null) { + xmlString+=b; + xmlString+="\r\n"; + } + System.out.println(xmlString); + bufreader.close(); +/* int c; while ((c = bufreader.read()) != -1) { System.out.print((char) c); xmlString += (char) c; - } - input.close(); + }*/ + //input.close(); System.out.println("--------------------------" + xmlString); - /** * 将获取到的回执信息生成本地xml */ @@ -211,7 +222,7 @@ public class VoucherToNCforAssistContract implements Job{ TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DocumentSource source = new DocumentSource(resDoc); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); //设置文档的换行与缩进 transformer.setOutputProperty(OutputKeys.INDENT, "YES"); @@ -221,13 +232,14 @@ public class VoucherToNCforAssistContract implements Job{ // File file2 = new File("D:\\VOUCHER_RECEIPT"); // if (!file2.exists()) {file2.mkdirs();}// 判断是否存在, 如果不存在就创建该文件夹 String resFile = "//data//files//apzl_leasing//tmp//WEN//APleasing_"+type+""+fmt.format(new Date())+".xml"; - // String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; + //String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; StreamResult result = new StreamResult(new File(resFile)); transformer.transform(source,result); /** * 解析xml, 根据回执信息更新状态 */ + SAXReader sr = new SAXReader(); Document doc = sr.read(resFile); Element root= doc.getRootElement(); @@ -235,14 +247,30 @@ public class VoucherToNCforAssistContract implements Job{ String resSuc = root.attributeValue("successful"); //后面对回执结果做判断,然后改变导入状态就行了 if(null != resSuc){ - if(resSuc.equals("N")){ + if("N".equals(resSuc)){ logger.info("导入失败"); // 导入失败, 将本次在明细表中存储的数据删除 deleteSql = "DELETE FROM NCXML_DETAIL_RECORDS WHERE BATCH='"+batch+"' AND XML_TYPE = '"+type+"'"; // 导入失败, 将失败数据记录入总记录表 - insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','0','"+count+"','"+formatter2.format(new Date())+"')"; + List list = root.elements(); + for (Element element : list) { + String names = element.getName(); + String value = element.getStringValue(); + List list2 = element.elements(); + for (Element el : list2) { + String s = el.getName(); + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); + } + } + insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; + } Sqlca.executeSQL(deleteSql); Sqlca.executeSQL(insertSql); + returns="false"; }else if(resSuc.equals("Y")){ logger.info("导入成功"); List list = root.elements(); @@ -250,33 +278,38 @@ public class VoucherToNCforAssistContract implements Job{ for (Element element : list) { List list2 = element.elements(); for (Element el : list2) { - logger.info("111111111111111111"); + String s = el.getName(); // 获取单条回执状态 - resultcode = el.element("resultcode").getStringValue(); - if(!"1".equals(resultcode)) { - logger.info("22222222222222"); - bdocid = el.element("bdocid").getStringValue(); // xml回执id - resultdescription = el.element("resultdescription").getStringValue(); // 错误信息 - - // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 - updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updateSql); - logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); - failed_count++; + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + // xml回执id + if("bdocid".equals(s)) { + bdocid = el.getStringValue(); + } + // 错误信息 + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); } } + + if(!"1".equals(resultcode)) { + // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; + Sqlca.executeSQL(updateSql); + logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); + failed_count++; + } } // 将本批次传输总量及 失败数量记录入记录总表 - String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+formatter2.format(new Date())+"')"; + String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); }else{ logger.info("出现未知错误"); } }else{ logger.info("未找到successful属性"); - } - } catch (Exception e) { - e.printStackTrace(); - } + } + return returns; } } diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java index d5e92d044..7d82e28f8 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforCustomer.java @@ -78,14 +78,14 @@ public class VoucherToNCforCustomer implements Job{ // 生成xml头 Document document= DocumentHelper.createDocument(); Element root = document.addElement("ufinterface"); - root.addAttribute("account", "BQ1217"); - root.addAttribute("billtype", "customer(客户)"); + root.addAttribute("account", "bq1217"); + root.addAttribute("billtype", "customer"); root.addAttribute("businessunitcode", "develop"); root.addAttribute("filename", ""); root.addAttribute("groupcode", "06"); root.addAttribute("isexchange", "Y"); root.addAttribute("orgcode", ""); - root.addAttribute("receiver", "接收方业务单元编码"); + root.addAttribute("receiver", "807001002001"); root.addAttribute("replace", "Y"); root.addAttribute("roottag", ""); root.addAttribute("sender", "kh01"); @@ -105,7 +105,7 @@ public class VoucherToNCforCustomer implements Job{ Element pk_group = billhead.addElement("pk_group"); // 所属集团,最大长度为20,类型为:String pk_group.setText("06"); Element pk_org = billhead.addElement("pk_org"); // 所属组织,最大长度为20,类型为:String - pk_org.setText("安鹏租赁业务单元编码"); + pk_org.setText("807001002001"); Element code = billhead.addElement("code"); // 客户编码,最大长度为40,类型为:String code.setText((customer_num==null)?"":customer_num); Element name = billhead.addElement("name"); // 客户名称,最大长度为200,类型为:String @@ -176,14 +176,14 @@ public class VoucherToNCforCustomer implements Job{ Sqlca.executeSQL(insertSql); logger.info("客户记录语句: "+insertSql); } - //String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_Customer_"+year_month_day+".xml"; - String URL="D:\\voucherXml_NC\\APleasing_Customer_"+year_month_day+".xml"; + String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_Customer_"+year_month_day+".xml"; + // String URL="D:\\voucherXml_NC\\APleasing_Customer_"+year_month_day+".xml"; file=new File(URL); writer = new XMLWriter(new FileOutputStream(file), OutputFormat.createPrettyPrint()); writer.setEscapeText(false);// 字符是否转义,默认true writer.write(document); writer.close(); - // InterActionToNC(Sqlca,URL,type,batch,rs.size()); + InterActionToNC(Sqlca,URL,type,batch,rs.size()); Sqlca.commit(); QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforCustomer", "success", "成功",curUserId); } @@ -210,20 +210,20 @@ public class VoucherToNCforCustomer implements Job{ /** * 像NC传输xml, 获取NC回执xml信息, 根据回执信息更改状态 */ - public static void InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) { - try { + public static String InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) throws Exception { String updateSql = ""; // 更新sql对象 String insertSql = ""; // 新增SQL对象 String deleteSql = ""; // 删除SQL对象 String resultcode= ""; // 单条返回结果 String bdocid = ""; // xml回执id String resultdescription=""; //错误信息 + String returns="true"; /** * 获取对方post连接 */ //String url = "http://47.93.227.86:8858/service/XChangeServlet?account=q0225&groupcode=001"; - String url = "http://172.16.0.88:9990/service/XChangeServlet?account=BQ1217&groupcode=06"; + String url = "http://172.16.0.88:9990/service/XChangeServlet?account=bq1217&groupcode=06"; URL realURL = new URL(url); HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true); @@ -235,30 +235,39 @@ public class VoucherToNCforCustomer implements Job{ */ File file = new File(inputURL); BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream()); - BufferedInputStream input = new BufferedInputStream(new FileInputStream(file)); - int length; - byte[] buffer = new byte[1000]; - while ((length = input.read(buffer, 0, 1000)) != -1) { - out.write(buffer, 0, length); + BufferedReader reader = new BufferedReader (new InputStreamReader(new FileInputStream(file),"UTF-8")); + String xml=""; + String ss=null; + while((ss=reader.readLine()) != null) { + xml+=ss; + xml+="\r\n"; + out.write(ss.getBytes()); } - input.close(); + System.out.println(xml); + reader.close(); out.close(); /** * 获取NC回执信息 */ InputStream inputStream = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(inputStream); + InputStreamReader isr = new InputStreamReader(inputStream,"UTF-8"); BufferedReader bufreader = new BufferedReader(isr); String xmlString = ""; - int c; + String b=null; + while((b=bufreader.readLine()) !=null) { + xmlString+=b; + xmlString+="\r\n"; + } + System.out.println(xmlString); + bufreader.close(); +/* int c; while ((c = bufreader.read()) != -1) { System.out.print((char) c); xmlString += (char) c; - } - input.close(); + }*/ + //input.close(); System.out.println("--------------------------" + xmlString); - /** * 将获取到的回执信息生成本地xml */ @@ -266,7 +275,7 @@ public class VoucherToNCforCustomer implements Job{ TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DocumentSource source = new DocumentSource(resDoc); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); //设置文档的换行与缩进 transformer.setOutputProperty(OutputKeys.INDENT, "YES"); @@ -276,13 +285,14 @@ public class VoucherToNCforCustomer implements Job{ // File file2 = new File("D:\\VOUCHER_RECEIPT"); // if (!file2.exists()) {file2.mkdirs();}// 判断是否存在, 如果不存在就创建该文件夹 String resFile = "//data//files//apzl_leasing//tmp//WEN//APleasing_"+type+""+fmt.format(new Date())+".xml"; - // String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; + //String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; StreamResult result = new StreamResult(new File(resFile)); transformer.transform(source,result); /** * 解析xml, 根据回执信息更新状态 */ + SAXReader sr = new SAXReader(); Document doc = sr.read(resFile); Element root= doc.getRootElement(); @@ -290,14 +300,30 @@ public class VoucherToNCforCustomer implements Job{ String resSuc = root.attributeValue("successful"); //后面对回执结果做判断,然后改变导入状态就行了 if(null != resSuc){ - if(resSuc.equals("N")){ + if("N".equals(resSuc)){ logger.info("导入失败"); // 导入失败, 将本次在明细表中存储的数据删除 deleteSql = "DELETE FROM NCXML_DETAIL_RECORDS WHERE BATCH='"+batch+"' AND XML_TYPE = '"+type+"'"; // 导入失败, 将失败数据记录入总记录表 - insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','0','"+count+"','"+formatter2.format(new Date())+"')"; + List list = root.elements(); + for (Element element : list) { + String names = element.getName(); + String value = element.getStringValue(); + List list2 = element.elements(); + for (Element el : list2) { + String s = el.getName(); + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); + } + } + insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; + } Sqlca.executeSQL(deleteSql); Sqlca.executeSQL(insertSql); + returns="false"; }else if(resSuc.equals("Y")){ logger.info("导入成功"); List list = root.elements(); @@ -305,34 +331,38 @@ public class VoucherToNCforCustomer implements Job{ for (Element element : list) { List list2 = element.elements(); for (Element el : list2) { - logger.info("111111111111111111"); + String s = el.getName(); // 获取单条回执状态 - resultcode = el.element("resultcode").getStringValue(); - if(!"1".equals(resultcode)) { - logger.info("22222222222222"); - bdocid = el.element("bdocid").getStringValue(); // xml回执id - resultdescription = el.element("resultdescription").getStringValue(); // 错误信息 - - // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 - updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updateSql); - logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); - failed_count++; + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + // xml回执id + if("bdocid".equals(s)) { + bdocid = el.getStringValue(); + } + // 错误信息 + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); } } + + if(!"1".equals(resultcode)) { + // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; + Sqlca.executeSQL(updateSql); + logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); + failed_count++; + } } // 将本批次传输总量及 失败数量记录入记录总表 - String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+formatter2.format(new Date())+"')"; + String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); }else{ logger.info("出现未知错误"); } }else{ logger.info("未找到successful属性"); - } - } catch (Exception e) { - e.printStackTrace(); - } + } + return returns; } - } \ No newline at end of file diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java index afe21d1fd..c430c0ed0 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforDistributor.java @@ -94,12 +94,12 @@ public class VoucherToNCforDistributor implements Job{ // 设置xml标签头 Document document = DocumentHelper.createDocument(); Element root = document.addElement("ufinterface"); - root.addAttribute("account", "BQ1217"); - root.addAttribute("billtype", "supplier(供应商)"); + root.addAttribute("account", "bq1217"); + root.addAttribute("billtype", "supplier"); root.addAttribute("filename", ""); root.addAttribute("groupcode", "06"); root.addAttribute("isexchange", "Y"); - root.addAttribute("receiver", "接收方业务单元编码"); + root.addAttribute("receiver", "807001002001"); root.addAttribute("replace", "Y"); root.addAttribute("roottag", ""); root.addAttribute("sender", "gys01"); @@ -135,7 +135,7 @@ public class VoucherToNCforDistributor implements Job{ Element pk_group = billhead.addElement("pk_group"); // 所属集团,最大长度为20,类型为:String pk_group.setText("06"); Element pk_org = billhead.addElement("pk_org"); // 所属组织,最大长度为20,类型为:String - pk_org.setText("安鹏租赁业务单元编码"); + pk_org.setText("807001002001"); Element code = billhead.addElement("code"); // 供应商编号,最大长度为40,类型为:String code.setText((DISTRIBUTOR_CODING==null)?"":DISTRIBUTOR_CODING); Element name = billhead.addElement("name"); // 供应商名称,最大长度为200,类型为:String @@ -264,14 +264,14 @@ public class VoucherToNCforDistributor implements Job{ Sqlca.executeSQL(insertSql); logger.info("经销商记录语句: "+ insertSql); } - String f="D:\\voucherXml_NC\\APleasing_Supplier_"+year_month_day+".xml"; - // String f="//data//files//apzl_leasing//tmp//XZW//APleasing_Supplier_"+year_month_day+".xml"; + // String f="D:\\voucherXml_NC\\APleasing_Supplier_"+year_month_day+".xml"; + String f="//data//files//apzl_leasing//tmp//XZW//APleasing_Supplier_"+year_month_day+".xml"; file=new File(f); writer = new XMLWriter(new FileOutputStream(file), OutputFormat.createPrettyPrint()); writer.setEscapeText(false);// 字符是否转义,默认true writer.write(document); writer.close(); - // InterActionToNC(Sqlca,f,type,batch,rs.size()); + InterActionToNC(Sqlca,f,type,batch,rs.size()); Sqlca.commit(); QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforDistributor", "success", "成功",curUserId); } @@ -299,20 +299,20 @@ public class VoucherToNCforDistributor implements Job{ /** * 像NC传输xml, 获取NC回执xml信息, 根据回执信息更改状态 */ - public static void InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) { - try { + public static String InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) throws Exception { String updateSql = ""; // 更新sql对象 String insertSql = ""; // 新增SQL对象 String deleteSql = ""; // 删除SQL对象 String resultcode= ""; // 单条返回结果 String bdocid = ""; // xml回执id String resultdescription=""; //错误信息 + String returns="true"; /** * 获取对方post连接 */ //String url = "http://47.93.227.86:8858/service/XChangeServlet?account=q0225&groupcode=001"; - String url = "http://172.16.0.88:9990/service/XChangeServlet?account=BQ1217&groupcode=06"; + String url = "http://172.16.0.88:9990/service/XChangeServlet?account=bq1217&groupcode=06"; URL realURL = new URL(url); HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true); @@ -324,30 +324,39 @@ public class VoucherToNCforDistributor implements Job{ */ File file = new File(inputURL); BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream()); - BufferedInputStream input = new BufferedInputStream(new FileInputStream(file)); - int length; - byte[] buffer = new byte[1000]; - while ((length = input.read(buffer, 0, 1000)) != -1) { - out.write(buffer, 0, length); + BufferedReader reader = new BufferedReader (new InputStreamReader(new FileInputStream(file),"UTF-8")); + String xml=""; + String ss=null; + while((ss=reader.readLine()) != null) { + xml+=ss; + xml+="\r\n"; + out.write(ss.getBytes()); } - input.close(); + System.out.println(xml); + reader.close(); out.close(); /** * 获取NC回执信息 */ InputStream inputStream = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(inputStream); + InputStreamReader isr = new InputStreamReader(inputStream,"UTF-8"); BufferedReader bufreader = new BufferedReader(isr); String xmlString = ""; - int c; + String b=null; + while((b=bufreader.readLine()) !=null) { + xmlString+=b; + xmlString+="\r\n"; + } + System.out.println(xmlString); + bufreader.close(); +/* int c; while ((c = bufreader.read()) != -1) { System.out.print((char) c); xmlString += (char) c; - } - input.close(); + }*/ + //input.close(); System.out.println("--------------------------" + xmlString); - /** * 将获取到的回执信息生成本地xml */ @@ -355,7 +364,7 @@ public class VoucherToNCforDistributor implements Job{ TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DocumentSource source = new DocumentSource(resDoc); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); //设置文档的换行与缩进 transformer.setOutputProperty(OutputKeys.INDENT, "YES"); @@ -365,13 +374,14 @@ public class VoucherToNCforDistributor implements Job{ // File file2 = new File("D:\\VOUCHER_RECEIPT"); // if (!file2.exists()) {file2.mkdirs();}// 判断是否存在, 如果不存在就创建该文件夹 String resFile = "//data//files//apzl_leasing//tmp//WEN//APleasing_"+type+""+fmt.format(new Date())+".xml"; - // String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; + //String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; StreamResult result = new StreamResult(new File(resFile)); transformer.transform(source,result); /** * 解析xml, 根据回执信息更新状态 */ + SAXReader sr = new SAXReader(); Document doc = sr.read(resFile); Element root= doc.getRootElement(); @@ -379,14 +389,30 @@ public class VoucherToNCforDistributor implements Job{ String resSuc = root.attributeValue("successful"); //后面对回执结果做判断,然后改变导入状态就行了 if(null != resSuc){ - if(resSuc.equals("N")){ + if("N".equals(resSuc)){ logger.info("导入失败"); // 导入失败, 将本次在明细表中存储的数据删除 deleteSql = "DELETE FROM NCXML_DETAIL_RECORDS WHERE BATCH='"+batch+"' AND XML_TYPE = '"+type+"'"; // 导入失败, 将失败数据记录入总记录表 - insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','0','"+count+"','"+formatter2.format(new Date())+"')"; + List list = root.elements(); + for (Element element : list) { + String names = element.getName(); + String value = element.getStringValue(); + List list2 = element.elements(); + for (Element el : list2) { + String s = el.getName(); + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); + } + } + insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; + } Sqlca.executeSQL(deleteSql); Sqlca.executeSQL(insertSql); + returns="false"; }else if(resSuc.equals("Y")){ logger.info("导入成功"); List list = root.elements(); @@ -394,33 +420,38 @@ public class VoucherToNCforDistributor implements Job{ for (Element element : list) { List list2 = element.elements(); for (Element el : list2) { - logger.info("111111111111111111"); + String s = el.getName(); // 获取单条回执状态 - resultcode = el.element("resultcode").getStringValue(); - if(!"1".equals(resultcode)) { - logger.info("22222222222222"); - bdocid = el.element("bdocid").getStringValue(); // xml回执id - resultdescription = el.element("resultdescription").getStringValue(); // 错误信息 - - // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 - updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updateSql); - logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); - failed_count++; + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + // xml回执id + if("bdocid".equals(s)) { + bdocid = el.getStringValue(); + } + // 错误信息 + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); } } + + if(!"1".equals(resultcode)) { + // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; + Sqlca.executeSQL(updateSql); + logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); + failed_count++; + } } // 将本批次传输总量及 失败数量记录入记录总表 - String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+formatter2.format(new Date())+"')"; + String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); }else{ logger.info("出现未知错误"); } }else{ logger.info("未找到successful属性"); - } - } catch (Exception e) { - e.printStackTrace(); - } + } + return returns; } } diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java index abf163cbd..25d3036c1 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherToNCforVoucherPZ.java @@ -38,31 +38,30 @@ import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.are.log.Log; import com.amarsoft.awe.util.Transaction; import com.base.util.QuartzUtil; +import com.itextpdf.text.log.SysoCounter; import com.tenwa.comm.util.date.DateAssistant; import com.tenwa.comm.util.jboutil.DataOperatorUtil; import com.tenwa.util.SerialNumberUtil; -import jbo.com.tenwa.entity.comm.own.OWN_INFO; import jbo.voucher.LV_STACTS_CONFIG; public class VoucherToNCforVoucherPZ implements Job{ private static Log logger=ARE.getLog(); - // 凭证信息传输 + // 鍑瘉淇℃伅浼犺緭 public void execute(JobExecutionContext arg0) throws JobExecutionException { String plan_date = DateAssistant.getToday(); Object userId = arg0.getTrigger().getJobDataMap().get("CurUserId"); String curUserId = userId == null? "system" : userId.toString(); String ss = DOM4JcreateToVoucher(); if("true".equals(ss)) { - QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforVoucherPZ", "success", "成功",curUserId); + QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforVoucherPZ", "success", "鎴愬姛",curUserId); }else { - QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforVoucherPZ", "error", "失败",curUserId); + QuartzUtil.insertLog(plan_date,"com.tenwa.voucher.serviceImp.VoucherToNCforVoucherPZ", "error", "澶辫触",curUserId); } - } /* - * 页面执行xml传输 + * 椤甸潰鎵цxml浼犺緭 * */ public String sendVoucherData(JBOTransaction tx) { String ss = DOM4JcreateToVoucher(); @@ -70,122 +69,125 @@ public class VoucherToNCforVoucherPZ implements Job{ } /** - * 凭证信息xml生成, 每1000条生成一个xml + * 鍑瘉淇℃伅xml鐢熸垚, 姣1000鏉$敓鎴愪竴涓獂ml * @throws Exception */ private static String DOM4JcreateToVoucher(){ - // 本地xml存放文件夹, 没有就创建 + // 鏈湴xml瀛樻斁鏂囦欢澶, 娌℃湁灏卞垱寤 // File file2 = new File("D:\\voucherXml_NC"); - // if (!file2.exists()) {file2.mkdirs();}// 判断是否存在, 如果不存在就创建该文件夹 - JBOTransaction tx=null; - Transaction Sqlca = null; - String returns="true"; + // if (!file2.exists()) {file2.mkdirs();}// 鍒ゆ柇鏄惁瀛樺湪, 濡傛灉涓嶅瓨鍦ㄥ氨鍒涘缓璇ユ枃浠跺す + JBOTransaction tx=null; + Transaction Sqlca = null; + String returns="true"; + String type="voucher"; // 璁板綍琛ㄧ被鍒 + String batch=""; + String deleteSql=""; try { - // 定义全局对象 + // 瀹氫箟鍏ㄥ眬瀵硅薄 tx= JBOFactory.createJBOTransaction(); Sqlca = Transaction.createTransaction(tx); Map map = new HashMap(); - Document document=null; // xml文件头 - File file=null; // 生成的xml文件路径 - XMLWriter writer=null; // 输出对象 - String uuid=""; // xml主键id - String SUBJECT_ID=null; // 获取科目id - String OWNED_COMPANY = null; // 所属公司 - String ACC_YEAR = null; // 会计期间/年 - String ACC_MONTH = null; // 会计期间/月 - String insertSql=""; // 定义新增语句对象 - String type="voucher"; // 记录表类别 - String timeAll = ""; // 制单日期 + Document document=null; // xml鏂囦欢澶 + File file=null; // 鐢熸垚鐨剎ml鏂囦欢璺緞 + XMLWriter writer=null; // 杈撳嚭瀵硅薄 + String uuid=""; // xml涓婚敭id + String SUBJECT_ID=null; // 鑾峰彇绉戠洰id + String OWNED_COMPANY = null; // 鎵灞炲叕鍙 + String ACC_YEAR = null; // 浼氳鏈熼棿/骞 + String ACC_MONTH = null; // 浼氳鏈熼棿/鏈 + String insertSql=""; // 瀹氫箟鏂板璇彞瀵硅薄 + String timeAll = ""; // 鍒跺崟鏃ユ湡 + String f5=""; // 鎽樿 String year_month_day = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); String year_month_days = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()); - // 查询凭证视图, 获取每条凭证 + // 鏌ヨ鍑瘉瑙嗗浘, 鑾峰彇姣忔潯鍑瘉 String sql = "SELECT F3,F60,ID,MODULE_NAME,DEPT_NAME,F1,F15,V8_STATUS,F5,GENERATE_DATE FROM VI_VOUCHER_V8 WHERE F3 NOT IN(SELECT TABLE_NUM FROM NCXML_DETAIL_RECORDS WHERE FLAG = '1' AND XML_TYPE='"+type+"')"; - List> list = DataOperatorUtil.getDataBySql(Sqlca, sql, null);// 将所有凭证号封装到list集合中 + List> list = DataOperatorUtil.getDataBySql(Sqlca, sql, null);// 灏嗘墍鏈夊嚟璇佸彿灏佽鍒發ist闆嗗悎涓 - int a = list.size(); // v8视图总数据量/ xml中生成的总条数 - int b=1000; // 设置当前xml生成的条数 - int c = (int)(a / b); // 获取生成xml文件的数量, 最大循环值=c+1 + int a = list.size(); // v8瑙嗗浘鎬绘暟鎹噺/ xml涓敓鎴愮殑鎬绘潯鏁 + int b=1000; // 璁剧疆褰撳墠xml鐢熸垚鐨勬潯鏁 + int c = (int)(a / b); // 鑾峰彇鐢熸垚xml鏂囦欢鐨勬暟閲, 鏈澶у惊鐜=c+1 for (int i = 0; i <=c && a>0; i++) { - int count=0; // 记录当前批次传输总量 + int count=0; // 璁板綍褰撳墠鎵规浼犺緭鎬婚噺 Sqlca = Transaction.createTransaction(tx); - document = DocumentHelper.createDocument(); // 创建Document对象 - Element root = document.addElement("ufinterface"); // 设置xml头 - root.addAttribute("account", "BQ1217"); // 设置xml头属性 - root.addAttribute("billtype", "vouchergl(凭证)"); + document = DocumentHelper.createDocument(); // 鍒涘缓Document瀵硅薄 + Element root = document.addElement("ufinterface"); // 璁剧疆xml澶 + root.addAttribute("account", "bq1217"); // 璁剧疆xml澶村睘鎬 + root.addAttribute("billtype", "vouchergl"); root.addAttribute("businessunitcode", "develop"); root.addAttribute("filename", ""); root.addAttribute("groupcode", "06"); root.addAttribute("isexchange", "Y"); root.addAttribute("orgcode", ""); - root.addAttribute("receiver", "接收方业务单元编码"); + root.addAttribute("receiver", "807001002001"); root.addAttribute("replace", "Y"); root.addAttribute("roottag", ""); root.addAttribute("sender", "GL"); - String batch = SerialNumberUtil.getVoucherPCNumber(Sqlca); - for (int x = i * b; x < (i + 1) * b && x < a; x++) { // 决定当前xml生成的数据量 - // 获取凭证编号 + batch = SerialNumberUtil.getVoucherPCNumber(Sqlca); + for (int x = i * b; x < (i + 1) * b && x < a; x++) { // 鍐冲畾褰撳墠xml鐢熸垚鐨勬暟鎹噺 + // 鑾峰彇鍑瘉缂栧彿 String F3=list.get(x).get("F3"); map.clear(); map.put("F3",F3); - // 获取v8表借方数据 + // 鑾峰彇v8琛ㄥ熸柟鏁版嵁 String sql1 = "SELECT f5,f6,f7,f15,f59,f60,f65,f73,f74,f75 FROM VOUCHER_V8 WHERE F3=:F3 AND ENTRYDC='1'"; List> v1 = DataOperatorUtil.getDataBySql(Sqlca,sql1,map); - // 获取v8表贷方数据 + // 鑾峰彇v8琛ㄨ捶鏂规暟鎹 String sql2 = "SELECT f5,f6,f8,f15,f51,f52,f59,f60,f65,f73,f74,f75 FROM VOUCHER_V8 WHERE F3=:F3 AND ENTRYDC='-1'"; List> v2 = DataOperatorUtil.getDataBySql(Sqlca,sql2,map); - // 获取v8表公共信息 + // 鑾峰彇v8琛ㄥ叕鍏变俊鎭 for (Map map2 : v2) { - //OWNED_COMPANY=map2.get("f49"); // 本方id - ACC_YEAR = map2.get("f51"); // 会计期间/年 - ACC_MONTH =map2.get("f52"); // 会计期间/月 - timeAll =map2.get("f15"); // 制单时间 + //OWNED_COMPANY=map2.get("f49"); // 鏈柟id + ACC_YEAR = map2.get("f51"); // 浼氳鏈熼棿/骞 + ACC_MONTH =map2.get("f52"); // 浼氳鏈熼棿/鏈 + timeAll =map2.get("f15"); // 鍒跺崟鏃堕棿 } - // 获取本方信息 + // 鑾峰彇鏈柟淇℃伅 //BizObject own = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME, "id=:OWNED_COMPANY").setParameter("OWNED_COMPANY", OWNED_COMPANY).getSingleResult(false); Element voucher = root.addElement("voucher"); Element voucherHead = voucher.addElement("voucher_head"); - Element pkVoucher = voucherHead.addElement("pk_voucher");// 凭证主键/非空 + Element pkVoucher = voucherHead.addElement("pk_voucher");// 鍑瘉涓婚敭/闈炵┖ uuid=UUID.randomUUID().toString().replace("-", ""); pkVoucher.setText(uuid); - Element pk_vouchertype = voucherHead.addElement("pk_vouchertype");// 凭证类别, 默认01/非空 - pk_vouchertype.setText("记账凭证");//---------------------------------------------------------------------- - Element year = voucherHead.addElement("year");// 会计年度/非空 + Element pk_vouchertype = voucherHead.addElement("pk_vouchertype");// 鍑瘉绫诲埆, 榛樿01/闈炵┖ + pk_vouchertype.setText("01");//---------------------------------------------------------------------- + Element year = voucherHead.addElement("year");// 浼氳骞村害/闈炵┖ year.setText((ACC_YEAR==null)?"":ACC_YEAR); - Element pk_system = voucherHead.addElement("pk_system");// 来源系统/非空 + Element pk_system = voucherHead.addElement("pk_system");// 鏉ユ簮绯荤粺/闈炵┖ //pk_system.setText((own.getAttribute("OWN_NAME")==null)? "":own.getAttribute("OWN_NAME").getString());//---------------------------------------- - pk_system.setText("安鹏租赁零售性融资业务系统");//---------------------------------------- - Element voucherkind = voucherHead.addElement("voucherkind");// 凭证类型值/非空 + pk_system.setText("GL");//---------------------------------------- + Element voucherkind = voucherHead.addElement("voucherkind");// 鍑瘉绫诲瀷鍊/闈炵┖ voucherkind.setText("0"); - Element pk_accountingbook = voucherHead.addElement("pk_accountingbook");// 核算核算账簿/非空 - pk_accountingbook.setText("安鹏租赁核算账簿编码"); - Element discardflag = voucherHead.addElement("discardflag");// 作废标志/可空 + Element pk_accountingbook = voucherHead.addElement("pk_accountingbook");// 鏍哥畻鏍哥畻璐︾翱/闈炵┖ + pk_accountingbook.setText("807001002001-0001"); + Element discardflag = voucherHead.addElement("discardflag");// 浣滃簾鏍囧織/鍙┖ discardflag.setText(""); - Element period = voucherHead.addElement("period");// 会计期间/非空 + Element period = voucherHead.addElement("period");// 浼氳鏈熼棿/闈炵┖ period.setText((ACC_MONTH==null)?"":ACC_MONTH);//-------------------------------------------------------------- - Element no = voucherHead.addElement("no");// 凭证号为空自动分配/非空 - no.setText(F3); - Element attachment = voucherHead.addElement("attachment");// 附单据数/可空 + Element no = voucherHead.addElement("no");// 鍑瘉鍙蜂负绌鸿嚜鍔ㄥ垎閰/闈炵┖ + no.setText(""); + Element attachment = voucherHead.addElement("attachment");// 闄勫崟鎹暟/鍙┖ attachment.setText(""); - Element prepareddate = voucherHead.addElement("prepareddate");// 制单日期/非空 + Element prepareddate = voucherHead.addElement("prepareddate");// 鍒跺崟鏃ユ湡/闈炵┖ prepareddate.setText(timeAll);//--------------------------------------------------- - Element pk_prepared = voucherHead.addElement("pk_prepared");// 制单人/非空 - pk_prepared.setText("807caoyuli");//------------------------------------------- - Element pk_casher = voucherHead.addElement("pk_casher");// 出纳 + Element pk_prepared = voucherHead.addElement("pk_prepared");// 鍒跺崟浜/闈炵┖ + pk_prepared.setText("pz");//------------------------------------------- + Element pk_casher = voucherHead.addElement("pk_casher");// 鍑虹撼 pk_casher.setText("");//------------------------------------------ - Element signflag = voucherHead.addElement("signflag");// 签字标志 + Element signflag = voucherHead.addElement("signflag");// 绛惧瓧鏍囧織 signflag.setText("");//----------------------------------------------------- - Element pk_checked = voucherHead.addElement("pk_checked");// 审核人 + Element pk_checked = voucherHead.addElement("pk_checked");// 瀹℃牳浜 pk_checked.setText("");//-------------------------------------------------- - Element tallydate = voucherHead.addElement("tallydate");// 记账日期 + Element tallydate = voucherHead.addElement("tallydate");// 璁拌处鏃ユ湡 tallydate.setText(timeAll);//-------------------------- - Element pk_manager = voucherHead.addElement("pk_manager");// 记账人 + Element pk_manager = voucherHead.addElement("pk_manager");// 璁拌处浜 pk_manager.setText(""); Element memo1 = voucherHead.addElement("memo1"); memo1.setText(""); @@ -197,218 +199,236 @@ public class VoucherToNCforVoucherPZ implements Job{ reserve2.setText(""); Element siscardflag = voucherHead.addElement("siscardflag"); siscardflag.setText("");//-------------------------------------------------------- - Element pk_org = voucherHead.addElement("pk_org");// 所属组织/非空 - pk_org.setText("安鹏租赁业务单元编码");//--------------------------------------------------------- - Element pk_org_v = voucherHead.addElement("pk_org_v");// 所属组织版本/可空 + Element pk_org = voucherHead.addElement("pk_org");// 鎵灞炵粍缁/闈炵┖ + pk_org.setText("807001002001");//--------------------------------------------------------- + Element pk_org_v = voucherHead.addElement("pk_org_v");// 鎵灞炵粍缁囩増鏈/鍙┖ pk_org_v.setText("");//------------------------------------------------------- - Element pk_group = voucherHead.addElement("pk_group");// 所属集团 如果不输集团取当前登陆集团 + Element pk_group = voucherHead.addElement("pk_group");// 鎵灞為泦鍥 濡傛灉涓嶈緭闆嗗洟鍙栧綋鍓嶇櫥闄嗛泦鍥 pk_group.setText("06"); Element details = voucherHead.addElement("details"); - // 循环借方集合, 按照v8表数据中生成相应的借方item + // 寰幆鍊熸柟闆嗗悎, 鎸夌収v8琛ㄦ暟鎹腑鐢熸垚鐩稿簲鐨勫熸柟item for (Map v8Lend : v1) { - // 根据科目id, 获取当前数据对应的科目信息 + // 鏍规嵁绉戠洰id, 鑾峰彇褰撳墠鏁版嵁瀵瑰簲鐨勭鐩俊鎭 SUBJECT_ID=v8Lend.get("f6"); + f5 = v8Lend.get("f5"); BizObject subject = JBOFactory.createBizObjectQuery(LV_STACTS_CONFIG.CLASS_NAME, "ID=:ID").setParameter("ID", SUBJECT_ID).getSingleResult(false); - Element item1 = details.addElement("item"); // 借方 - Element detailindex1 = item1.addElement("detailindex");// 分录号/非空 + Element item1 = details.addElement("item"); // 鍊熸柟 + Element detailindex1 = item1.addElement("detailindex");// 鍒嗗綍鍙/闈炵┖ detailindex1.setText((v8Lend.get("f59")==null)?"":v8Lend.get("f59"));//------------------------------------ - Element explanation1 = item1.addElement("explanation");// 摘要/非空 - explanation1.setText((v8Lend.get("f5")==null)?"":v8Lend.get("f5")); - Element verifydate1 = item1.addElement("verifydate");// 业务日期/可空 + Element explanation1 = item1.addElement("explanation");// 鎽樿/闈炵┖ + explanation1.setText(F3+"-"+f5); + Element verifydate1 = item1.addElement("verifydate");// 涓氬姟鏃ユ湡/鍙┖ verifydate1.setText(""); - Element price1 = item1.addElement("price");// 单价/可空 + Element price1 = item1.addElement("price");// 鍗曚环/鍙┖ price1.setText(""); - Element excrate21 = item1.addElement("excrate2");// 折本汇率/可空 + Element excrate21 = item1.addElement("excrate2");// 鎶樻湰姹囩巼/鍙┖ excrate21.setText("");//----------------------------- - Element debitquantity1 = item1.addElement("debitquantity");// 借方数量/可空 - debitquantity1.setText(v1.size()+""); - Element debitamount1 = item1.addElement("debitamount");// 原币借方金额/可空 + Element debitquantity1 = item1.addElement("debitquantity");// 鍊熸柟鏁伴噺/鍙┖ + //debitquantity1.setText(v1.size()+""); + debitquantity1.setText(""); + Element debitamount1 = item1.addElement("debitamount");// 鍘熷竵鍊熸柟閲戦/鍙┖ debitamount1.setText((v8Lend.get("f7")==null)?"":v8Lend.get("f7"));//-------------------------------------------------- - Element localdebitamount1 = item1.addElement("localdebitamount");// 本币借方金额/可空 - localdebitamount1.setText("");//------------------------------------------- - Element groupdebitamount1 = item1.addElement("groupdebitamount");// 集团本币借方金额/可空 + Element localdebitamount1 = item1.addElement("localdebitamount");// 鏈竵鍊熸柟閲戦/鍙┖ + localdebitamount1.setText((v8Lend.get("f7")==null)?"":v8Lend.get("f7"));//------------------------------------------- + Element groupdebitamount1 = item1.addElement("groupdebitamount");// 闆嗗洟鏈竵鍊熸柟閲戦/鍙┖ groupdebitamount1.setText("");//----------------------------------------- - Element globaldebitamount1 = item1.addElement("globaldebitamount");// 全局本币借方金额/可空 + Element globaldebitamount1 = item1.addElement("globaldebitamount");// 鍏ㄥ眬鏈竵鍊熸柟閲戦/鍙┖ globaldebitamount1.setText("");//------------------------------------------- - Element pk_currtype1 = item1.addElement("pk_currtype");// 币种/非空 + Element pk_currtype1 = item1.addElement("pk_currtype");// 甯佺/闈炵┖ pk_currtype1.setText("CNY");// - Element pk_accasoa1 = item1.addElement("pk_accasoa");// 科目/非空 - pk_accasoa1.setText((subject.getAttribute("SUBJECTS_NAME").getString()==null)?"":subject.getAttribute("SUBJECTS_NAME").getString()); - Element pk_unit1 = item1.addElement("pk_unit");// 所属二级核算单位/可空 + Element pk_accasoa1 = item1.addElement("pk_accasoa");// 绉戠洰/闈炵┖ + //pk_accasoa1.setText((subject.getAttribute("SUBJECTS_CODE").getString()==null)?"":subject.getAttribute("SUBJECTS_CODE").getString()); + pk_accasoa1.setText(""); + Element pk_unit1 = item1.addElement("pk_unit");// 鎵灞炰簩绾ф牳绠楀崟浣/鍙┖ pk_unit1.setText("");//--------------------------------------------------- - Element pk_unit_v1 = item1.addElement("pk_unit_v");// 所属二级核算单位/版本可空 + Element pk_unit_v1 = item1.addElement("pk_unit_v");// 鎵灞炰簩绾ф牳绠楀崟浣/鐗堟湰鍙┖ pk_unit_v1.setText("");//------------------------------------------------- - Element ass1 = item1.addElement("ass");// 金额必须有一方不为空 - /*// 客商辅助核算 - if(v8Lend.get("f65")!=null && !"".equals(v8Lend.get("f65"))) { + Element ass1 = item1.addElement("ass");// 閲戦蹇呴』鏈変竴鏂逛笉涓虹┖ + // 瀹㈠晢杈呭姪鏍哥畻 + /*if(v8Lend.get("f65")!=null && !"".equals(v8Lend.get("f65"))) { Element ass_item1 = ass1.addElement("item"); Element pk_Checktype1 = ass_item1.addElement("pk_Checktype"); - pk_Checktype1.setText("客商辅助核算"); + pk_Checktype1.setText("瀹㈠晢杈呭姪鏍哥畻"); Element pk_Checkvalue1 = ass_item1.addElement("pk_Checkvalue"); pk_Checkvalue1.setText((v8Lend.get("f65")==null)?"":v8Lend.get("f65")); } - // 合同号辅助核算 - if(v8Lend.get("f60")!=null && !"".equals(v8Lend.get("f60"))) {// 部门名称 + // 鍚堝悓鍙疯緟鍔╂牳绠 + if(v8Lend.get("f60")!=null && !"".equals(v8Lend.get("f60"))) {// 閮ㄩ棬鍚嶇О Element ass_item2 = ass1.addElement("item"); Element pk_Checktype2 = ass_item2.addElement("pk_Checktype"); - pk_Checktype2.setText("合同号辅助核算"); + pk_Checktype2.setText("鍚堝悓鍙疯緟鍔╂牳绠"); Element pk_Checkvalue2 = ass_item2.addElement("pk_Checkvalue"); pk_Checkvalue2.setText((v8Lend.get("f60")==null)?"":v8Lend.get("f60")); } - // 主营类型辅助核算 + // 涓昏惀绫诲瀷杈呭姪鏍哥畻 if(v8Lend.get("f73")!=null && !"".equals(v8Lend.get("f73"))) { Element ass_item3 = ass1.addElement("item"); Element pk_Checktype3 = ass_item3.addElement("pk_Checktype"); - pk_Checktype3.setText("融资租赁收益类型"); + pk_Checktype3.setText("涓昏惀绫诲瀷杈呭姪鏍哥畻"); Element pk_Checkvalue3 = ass_item3.addElement("pk_Checkvalue"); pk_Checkvalue3.setText((v8Lend.get("f73")==null)?"":v8Lend.get("f73")); } - //现金流量项目辅助核算 + //鐜伴噾娴侀噺椤圭洰杈呭姪鏍哥畻 if(v8Lend.get("f74")!=null && !"".equals(v8Lend.get("f74"))) { Element ass_item4 = ass1.addElement("item"); Element pk_Checktype4 = ass_item4.addElement("pk_Checktype"); - pk_Checktype4.setText("资金类型"); + pk_Checktype4.setText("鐜伴噾娴侀噺椤圭洰杈呭姪鏍哥畻"); Element pk_Checkvalue4 = ass_item4.addElement("pk_Checkvalue"); pk_Checkvalue4.setText((v8Lend.get("f74")==null)?"":v8Lend.get("f74")); } - //银行账户辅助核算 + //閾惰璐︽埛杈呭姪鏍哥畻 if(v8Lend.get("f75")!=null && !"".equals(v8Lend.get("f75"))) { Element ass_item5 = ass1.addElement("item"); Element pk_Checktype5 = ass_item5.addElement("pk_Checktype"); - pk_Checktype5.setText("主营类型"); + pk_Checktype5.setText("閾惰璐︽埛杈呭姪鏍哥畻"); Element pk_Checkvalue5 = ass_item5.addElement("pk_Checkvalue"); pk_Checkvalue5.setText((v8Lend.get("f75")==null)?"":v8Lend.get("f75")); }*/ Element cashFlow = item1.addElement("cashFlow"); Element cashFlow_item1 = cashFlow.addElement("item"); - Element m_pk_currtype1 = cashFlow_item1.addElement("m_pk_currtype");// 币种,最大长度为64,类型为:String + Element m_pk_currtype1 = cashFlow_item1.addElement("m_pk_currtype");// 甯佺,鏈澶ч暱搴︿负64,绫诲瀷涓:String m_pk_currtype1.setText("CNY"); - Element money1 = cashFlow_item1.addElement("money");// 原币,最大长度为64,类型为:Double + Element money1 = cashFlow_item1.addElement("money");// 鍘熷竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double money1.setText(""); - Element moneymoneyglobal1 = cashFlow_item1.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double + Element moneymoneyglobal1 = cashFlow_item1.addElement("moneyglobal");// 鍏ㄥ眬鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneymoneyglobal1.setText(""); - Element moneygroup1 = cashFlow_item1.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double + Element moneygroup1 = cashFlow_item1.addElement("moneygroup");// 闆嗗洟鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneygroup1.setText(""); - Element moneymain1 = cashFlow_item1.addElement("moneymain");// 本币,最大长度为64,类型为:Double + Element moneymain1 = cashFlow_item1.addElement("moneymain");// 鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneymain1.setText(""); - Element pk_cashflow1 = cashFlow_item1.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String + Element pk_cashflow1 = cashFlow_item1.addElement("pk_cashflow");// 鐜伴噾涓婚敭,鏈澶ч暱搴︿负64,绫诲瀷涓:String pk_cashflow1.setText(""); - Element pk_innercorp1 = cashFlow_item1.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String + Element pk_innercorp1 = cashFlow_item1.addElement("pk_innercorp");// 鍐呴儴鍗曚綅涓婚敭,鏈澶ч暱搴︿负64,绫诲瀷涓:String pk_innercorp1.setText(""); } - // 循环贷方集合, 按照v8表数据中生成相应的借方item + // 寰幆璐锋柟闆嗗悎, 鎸夌収v8琛ㄦ暟鎹腑鐢熸垚鐩稿簲鐨勫熸柟item for (Map v8loan : v2) { - // 根据科目id, 获取当前数据对应的科目信息 + // 鏍规嵁绉戠洰id, 鑾峰彇褰撳墠鏁版嵁瀵瑰簲鐨勭鐩俊鎭 SUBJECT_ID=v8loan.get("f6"); BizObject subject = JBOFactory.createBizObjectQuery(LV_STACTS_CONFIG.CLASS_NAME, "ID=:ID").setParameter("ID", SUBJECT_ID).getSingleResult(false); - Element item2 = details.addElement("item"); // 贷方金额 - Element creditquantity2 = item2.addElement("creditquantity");// 贷方数量 可空 + Element item2 = details.addElement("item"); // 璐锋柟閲戦 + Element creditquantity2 = item2.addElement("creditquantity");// 璐锋柟鏁伴噺 鍙┖ creditquantity2.setText(v2.size()+""); - Element creditamount2 = item2.addElement("creditamount"); // 原币贷方金额 可空 + Element creditamount2 = item2.addElement("creditamount"); // 鍘熷竵璐锋柟閲戦 鍙┖ creditamount2.setText((v8loan.get("f8")==null)?"":v8loan.get("f8")); - Element localcreditamount2 = item2.addElement("localcreditamount");// 本币贷方金额 可空 - localcreditamount2.setText(""); - Element groupcreditamount2 = item2.addElement("groupcreditamount");// 集团本币贷方金额 可空 + Element localcreditamount2 = item2.addElement("localcreditamount");// 鏈竵璐锋柟閲戦 鍙┖ + localcreditamount2.setText((v8loan.get("f8")==null)?"":v8loan.get("f8")); + Element groupcreditamount2 = item2.addElement("groupcreditamount");// 闆嗗洟鏈竵璐锋柟閲戦 鍙┖ groupcreditamount2.setText(""); - Element globalcreditamount2 = item2.addElement("globalcreditamount");// 全局本币贷方金额 可空 + Element globalcreditamount2 = item2.addElement("globalcreditamount");// 鍏ㄥ眬鏈竵璐锋柟閲戦 鍙┖ globalcreditamount2.setText(""); - Element detailindex2 = item2.addElement("detailindex");// 分录号 非空 + Element detailindex2 = item2.addElement("detailindex");// 鍒嗗綍鍙 闈炵┖ detailindex2.setText((v8loan.get("f59")==null)?"":v8loan.get("f59"));//------------------------------------- - Element explanation2 = item2.addElement("explanation");// 摘要 非空 + Element explanation2 = item2.addElement("explanation");// 鎽樿 闈炵┖ explanation2.setText((v8loan.get("f5")==null)?"":v8loan.get("f5")); - Element verifydate2 = item2.addElement("verifydate");// 业务日期 可空 + Element verifydate2 = item2.addElement("verifydate");// 涓氬姟鏃ユ湡 鍙┖ verifydate2.setText(timeAll); - Element price2 = item2.addElement("price");// 单价 可空 + Element price2 = item2.addElement("price");// 鍗曚环 鍙┖ price2.setText(""); - Element excrate22 = item2.addElement("excrate2");// 折本汇率 可空 + Element excrate22 = item2.addElement("excrate2");// 鎶樻湰姹囩巼 鍙┖ excrate22.setText("");//------------------------------------------- - Element pk_currtype2 = item2.addElement("pk_currtype");// 币种 非空 + Element pk_currtype2 = item2.addElement("pk_currtype");// 甯佺 闈炵┖ pk_currtype2.setText("CNY"); - Element pk_accasoa2 = item2.addElement("pk_accasoa");// 科目 非空 - pk_accasoa2.setText((subject.getAttribute("SUBJECTS_NAME").getString()==null)?"":subject.getAttribute("SUBJECTS_NAME").getString()); - Element pk_unit2 = item2.addElement("pk_unit");// 所属二级核算单位 可空 (组织) + Element pk_accasoa2 = item2.addElement("pk_accasoa");// 绉戠洰 闈炵┖ + //pk_accasoa2.setText((subject.getAttribute("SUBJECTS_CODE").getString()==null)?"":subject.getAttribute("SUBJECTS_CODE").getString()); + pk_accasoa2.setText(""); + Element pk_unit2 = item2.addElement("pk_unit");// 鎵灞炰簩绾ф牳绠楀崟浣 鍙┖ 锛堢粍缁囷級 pk_unit2.setText("");//------------------------------------------ - Element pk_unit_v2 = item2.addElement("pk_unit_v");// 所属二级核算单位 版本可空 (组织) + Element pk_unit_v2 = item2.addElement("pk_unit_v");// 鎵灞炰簩绾ф牳绠楀崟浣 鐗堟湰鍙┖ 锛堢粍缁囷級 pk_unit_v2.setText("");//----------------------------------------------- Element ass2 = item2.addElement("ass");// - /*// 客商辅助核算 - if(v8loan.get("f65")!=null && !"".equals(v8loan.get("f65"))) { + // 瀹㈠晢杈呭姪鏍哥畻 + /*if(v8loan.get("f65")!=null && !"".equals(v8loan.get("f65"))) { Element ass_item1 = ass2.addElement("item"); Element pk_Checktype1 = ass_item1.addElement("pk_Checktype"); - pk_Checktype1.setText("客商辅助核算"); + pk_Checktype1.setText("瀹㈠晢杈呭姪鏍哥畻"); Element pk_Checkvalue1 = ass_item1.addElement("pk_Checkvalue"); pk_Checkvalue1.setText((v8loan.get("f65")==null)?"":v8loan.get("f65")); } - // 合同号辅助核算 - if(v8loan.get("f60")!=null && !"".equals(v8loan.get("f60"))) {// 部门名称 + // 鍚堝悓鍙疯緟鍔╂牳绠 + if(v8loan.get("f60")!=null && !"".equals(v8loan.get("f60"))) {// 閮ㄩ棬鍚嶇О Element ass_item2 = ass2.addElement("item"); Element pk_Checktype2 = ass_item2.addElement("pk_Checktype"); - pk_Checktype2.setText("合同号辅助核算"); + pk_Checktype2.setText("鍚堝悓鍙疯緟鍔╂牳绠"); Element pk_Checkvalue2 = ass_item2.addElement("pk_Checkvalue"); pk_Checkvalue2.setText((v8loan.get("f60")==null)?"":v8loan.get("f60")); } - // 主营类型辅助核算 + // 涓昏惀绫诲瀷杈呭姪鏍哥畻 if(v8loan.get("f73")!=null && !"".equals(v8loan.get("f73"))) { Element ass_item3 = ass2.addElement("item"); Element pk_Checktype3 = ass_item3.addElement("pk_Checktype"); - pk_Checktype3.setText("融资租赁收益类型"); + pk_Checktype3.setText("涓昏惀绫诲瀷杈呭姪鏍哥畻"); Element pk_Checkvalue3 = ass_item3.addElement("pk_Checkvalue"); pk_Checkvalue3.setText((v8loan.get("f73")==null)?"":v8loan.get("f73")); } - //现金流量项目辅助核算 + //鐜伴噾娴侀噺椤圭洰杈呭姪鏍哥畻 if(v8loan.get("f74")!=null && !"".equals(v8loan.get("f74"))) { Element ass_item4 = ass2.addElement("item"); Element pk_Checktype4 = ass_item4.addElement("pk_Checktype"); - pk_Checktype4.setText("资金类型"); + pk_Checktype4.setText("鐜伴噾娴侀噺椤圭洰杈呭姪鏍哥畻"); Element pk_Checkvalue4 = ass_item4.addElement("pk_Checkvalue"); pk_Checkvalue4.setText((v8loan.get("f74")==null)?"":v8loan.get("f74")); } - //银行账户辅助核算 + //閾惰璐︽埛杈呭姪鏍哥畻 if(v8loan.get("f75")!=null && !"".equals(v8loan.get("f75"))) { Element ass_item5 = ass2.addElement("item"); Element pk_Checktype5 = ass_item5.addElement("pk_Checktype"); - pk_Checktype5.setText("主营类型"); + pk_Checktype5.setText("閾惰璐︽埛杈呭姪鏍哥畻"); Element pk_Checkvalue5 = ass_item5.addElement("pk_Checkvalue"); pk_Checkvalue5.setText((v8loan.get("f75")==null)?"":v8loan.get("f75")); }*/ Element item2_cashFlow = item2.addElement("cashFlow"); Element cashflowitem2 = item2_cashFlow.addElement("item"); - Element m_pk_currtype2 = cashflowitem2.addElement("m_pk_currtype");// 币种,最大长度为64,类型为:String + Element m_pk_currtype2 = cashflowitem2.addElement("m_pk_currtype");// 甯佺,鏈澶ч暱搴︿负64,绫诲瀷涓:String m_pk_currtype2.setText("CNY"); - Element money2 = cashflowitem2.addElement("money");// 原币,最大长度为64,类型为:Double + Element money2 = cashflowitem2.addElement("money");// 鍘熷竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double money2.setText(""); - Element moneyglobal2 = cashflowitem2.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double + Element moneyglobal2 = cashflowitem2.addElement("moneyglobal");// 鍏ㄥ眬鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneyglobal2.setText(""); - Element moneygroup2 = cashflowitem2.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double + Element moneygroup2 = cashflowitem2.addElement("moneygroup");// 闆嗗洟鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneygroup2.setText(""); - Element moneymain2 = cashflowitem2.addElement("moneymain");// 本币,最大长度为64,类型为:Double + Element moneymain2 = cashflowitem2.addElement("moneymain");// 鏈竵,鏈澶ч暱搴︿负64,绫诲瀷涓:Double moneymain2.setText(""); - Element pk_cashflow2 = cashflowitem2.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String + Element pk_cashflow2 = cashflowitem2.addElement("pk_cashflow");// 鐜伴噾涓婚敭,鏈澶ч暱搴︿负64,绫诲瀷涓:String pk_cashflow2.setText(""); - Element pk_innercorp2 = cashflowitem2.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String + Element pk_innercorp2 = cashflowitem2.addElement("pk_innercorp");// 鍐呴儴鍗曚綅涓婚敭,鏈澶ч暱搴︿负64,绫诲瀷涓:String pk_innercorp2.setText(""); } - // 新增当条凭证信息入记录字表 + // 鏂板褰撴潯鍑瘉淇℃伅鍏ヨ褰曞瓧琛 //insertSql="INSERT INTO VOUCHER_LOG(BILLID,F3,FLAG,CREATE_TIME,BATCH) VALUES('"+str+"','"+F3+"','1','"+year_month_days+"','"+batch+"')"; insertSql="INSERT INTO NCXML_DETAIL_RECORDS(BILLID,XML_TYPE,TABLE_NUM,FLAG,CREATE_TIME,BATCH) VALUES('"+uuid+"','"+type+"','"+F3+"','1','"+year_month_days+"','"+batch+"')"; //sqlObject = new SqlObject(insertSql); //Sqlca.executeSQL(sqlObject); Sqlca.executeSQL(insertSql); - logger.info("凭证记录表插入语句: "+insertSql); + logger.info("鍑瘉璁板綍琛ㄦ彃鍏ヨ鍙: "+insertSql); count++; } - String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_VOUCHER_"+year_month_day+".xml"; - // String URL="D:\\voucherXml_NC\\APleasing_VOUCHER_"+year_month_day+".xml"; + //String URL="//data//files//apzl_leasing//tmp//XZW//APleasing_VOUCHER_"+year_month_day+".xml"; + String URL="D:\\voucherXml_NC\\APleasing_VOUCHER_"+year_month_day+".xml"; file=new File(URL); writer = new XMLWriter(new FileOutputStream(file), OutputFormat.createPrettyPrint()); - writer.setEscapeText(false);// 字符是否转义,默认true + writer.setEscapeText(false);// 瀛楃鏄惁杞箟,榛樿true writer.write(document); writer.close(); - InterActionToNC(Sqlca,URL,type,batch,count); + String ss = InterActionToNC(Sqlca,URL,type,batch,count); Sqlca.commit(); + returns=ss; } } catch (Exception e) { + deleteSql = "DELETE FROM NCXML_DETAIL_RECORDS WHERE BATCH='"+batch+"' AND XML_TYPE = '"+type+"'"; + try { + Sqlca.executeSQL(deleteSql); + Sqlca.commit(); + } catch (Exception e2) { + try { + Sqlca.rollback(); + } catch (JBOException e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + e2.printStackTrace(); + } returns="false"; try { Sqlca.rollback(); @@ -430,22 +450,22 @@ public class VoucherToNCforVoucherPZ implements Job{ /** - * 像NC传输xml, 获取NC回执xml信息, 根据回执信息更改状态 + * 鍍廚C浼犺緭xml, 鑾峰彇NC鍥炴墽xml淇℃伅, 鏍规嵁鍥炴墽淇℃伅鏇存敼鐘舵 */ - public static void InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) { - try { - String updateSql = ""; // 更新sql对象 - String insertSql = ""; // 新增SQL对象 - String deleteSql = ""; // 删除SQL对象 - String resultcode= ""; // 单条返回结果 - String bdocid = ""; // xml回执id - String resultdescription=""; //错误信息 + public static String InterActionToNC(Transaction Sqlca,String inputURL,String type,String batch,int count) throws Exception { + String updateSql = ""; // 鏇存柊sql瀵硅薄 + String insertSql = ""; // 鏂板SQL瀵硅薄 + String deleteSql = ""; // 鍒犻櫎SQL瀵硅薄 + String resultcode= ""; // 鍗曟潯杩斿洖缁撴灉 + String bdocid = ""; // xml鍥炴墽id + String resultdescription=""; //閿欒淇℃伅 + String returns="true"; /** - * 获取对方post连接 + * 鑾峰彇瀵规柟post杩炴帴 */ //String url = "http://47.93.227.86:8858/service/XChangeServlet?account=q0225&groupcode=001"; - String url = "http://172.16.0.88:9990/service/XChangeServlet?account=BQ1217&groupcode=06"; + String url = "http://172.16.0.88:9990/service/XChangeServlet?account=bq1217&groupcode=06"; URL realURL = new URL(url); HttpURLConnection connection = (HttpURLConnection)realURL.openConnection(); connection.setDoOutput(true); @@ -453,7 +473,7 @@ public class VoucherToNCforVoucherPZ implements Job{ connection.setRequestMethod("POST"); /** - * 读取本方生成的xml, 传输到NC + * 璇诲彇鏈柟鐢熸垚鐨剎ml, 浼犺緭鍒癗C */ File file = new File(inputURL); BufferedOutputStream out = new BufferedOutputStream(connection.getOutputStream()); @@ -465,96 +485,135 @@ public class VoucherToNCforVoucherPZ implements Job{ } input.close(); out.close(); + + /*BufferedReader reader = new BufferedReader (new InputStreamReader(new FileInputStream(file),"UTF-8")); + String xml=""; + String ss=null; + while((ss=reader.readLine()) != null) { + xml+=ss; + xml+="\r\n"; + out.write(ss.getBytes()); + } + System.out.println(xml); + reader.close(); + out.close();*/ /** - * 获取NC回执信息 + * 鑾峰彇NC鍥炴墽淇℃伅 */ InputStream inputStream = connection.getInputStream(); - InputStreamReader isr = new InputStreamReader(inputStream); + InputStreamReader isr = new InputStreamReader(inputStream,"UTF-8"); BufferedReader bufreader = new BufferedReader(isr); String xmlString = ""; - int c; + String b=null; + while((b=bufreader.readLine()) !=null) { + xmlString+=b; + xmlString+="\r\n"; + } + System.out.println(xmlString); + bufreader.close(); +/* int c; while ((c = bufreader.read()) != -1) { System.out.print((char) c); xmlString += (char) c; - } - input.close(); + }*/ + //input.close(); System.out.println("--------------------------" + xmlString); - /** - * 将获取到的回执信息生成本地xml + * 灏嗚幏鍙栧埌鐨勫洖鎵т俊鎭敓鎴愭湰鍦皒ml */ Document resDoc = DocumentHelper.parseText(xmlString); TransformerFactory tFactory = TransformerFactory.newInstance(); Transformer transformer = tFactory.newTransformer(); DocumentSource source = new DocumentSource(resDoc); - transformer.setOutputProperty(OutputKeys.ENCODING, "UTF-8"); - //设置文档的换行与缩进 + transformer.setOutputProperty(OutputKeys.ENCODING, "utf-8"); + //璁剧疆鏂囨。鐨勬崲琛屼笌缂╄繘 transformer.setOutputProperty(OutputKeys.INDENT, "YES"); - // 将回执信息输出到本地 + // 灏嗗洖鎵т俊鎭緭鍑哄埌鏈湴 SimpleDateFormat fmt = new SimpleDateFormat("yyyyMMddHHmmss"); - SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 年月日时分秒 + SimpleDateFormat formatter2 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");// 骞存湀鏃ユ椂鍒嗙 // File file2 = new File("D:\\VOUCHER_RECEIPT"); - // if (!file2.exists()) {file2.mkdirs();}// 判断是否存在, 如果不存在就创建该文件夹 - String resFile = "//data//files//apzl_leasing//tmp//WEN//APleasing_"+type+""+fmt.format(new Date())+".xml"; - // String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; + // if (!file2.exists()) {file2.mkdirs();}// 鍒ゆ柇鏄惁瀛樺湪, 濡傛灉涓嶅瓨鍦ㄥ氨鍒涘缓璇ユ枃浠跺す + //String resFile = "//data//files//apzl_leasing//tmp//WEN//APleasing_"+type+""+fmt.format(new Date())+".xml"; + String resFile = "D:\\VOUCHER_RECEIPT\\APleasing_"+type+""+fmt.format(new Date())+".xml"; StreamResult result = new StreamResult(new File(resFile)); transformer.transform(source,result); /** - * 解析xml, 根据回执信息更新状态 + * 瑙f瀽xml, 鏍规嵁鍥炴墽淇℃伅鏇存柊鐘舵 */ + SAXReader sr = new SAXReader(); Document doc = sr.read(resFile); Element root= doc.getRootElement(); - //获取根元素,得到导入用友是否成功successful的值,值为Y:成功 N:失败 + //鑾峰彇鏍瑰厓绱,寰楀埌瀵煎叆鐢ㄥ弸鏄惁鎴愬姛successful鐨勫,鍊间负Y:鎴愬姛 N:澶辫触 String resSuc = root.attributeValue("successful"); - //后面对回执结果做判断,然后改变导入状态就行了 + //鍚庨潰瀵瑰洖鎵х粨鏋滃仛鍒ゆ柇,鐒跺悗鏀瑰彉瀵煎叆鐘舵佸氨琛屼簡 if(null != resSuc){ - if(resSuc.equals("N")){ - logger.info("导入失败"); - // 导入失败, 将本次在明细表中存储的数据删除 + if("N".equals(resSuc)){ + logger.info("瀵煎叆澶辫触"); + // 瀵煎叆澶辫触, 灏嗘湰娆″湪鏄庣粏琛ㄤ腑瀛樺偍鐨勬暟鎹垹闄 deleteSql = "DELETE FROM NCXML_DETAIL_RECORDS WHERE BATCH='"+batch+"' AND XML_TYPE = '"+type+"'"; - // 导入失败, 将失败数据记录入总记录表 - insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','0','"+count+"','"+formatter2.format(new Date())+"')"; + // 瀵煎叆澶辫触, 灏嗗け璐ユ暟鎹褰曞叆鎬昏褰曡〃 + List list = root.elements(); + for (Element element : list) { + String names = element.getName(); + String value = element.getStringValue(); + List list2 = element.elements(); + for (Element el : list2) { + String s = el.getName(); + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); + } + } + insertSql = "INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; + } Sqlca.executeSQL(deleteSql); Sqlca.executeSQL(insertSql); + returns="false"; }else if(resSuc.equals("Y")){ - logger.info("导入成功"); + logger.info("瀵煎叆鎴愬姛"); List list = root.elements(); - int failed_count=0; // 失败记录数 + int failed_count=0; // 澶辫触璁板綍鏁 for (Element element : list) { List list2 = element.elements(); for (Element el : list2) { - logger.info("111111111111111111"); - // 获取单条回执状态 - resultcode = el.element("resultcode").getStringValue(); - if(!"1".equals(resultcode)) { - logger.info("22222222222222"); - bdocid = el.element("bdocid").getStringValue(); // xml回执id - resultdescription = el.element("resultdescription").getStringValue(); // 错误信息 - - // 如果回执状态不等于1, 说明有误, 更新到记录字表并记录错误信息 - updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; - Sqlca.executeSQL(updateSql); - logger.info("根据回执信息, 修改传输失败状态, 记录错误信息"+updateSql); - failed_count++; + String s = el.getName(); + // 鑾峰彇鍗曟潯鍥炴墽鐘舵 + if("resultcode".equals(s)) { + resultcode = el.getStringValue(); + } + // xml鍥炴墽id + if("bdocid".equals(s)) { + bdocid = el.getStringValue(); + } + // 閿欒淇℃伅 + if("resultdescription".equals(s)) { + resultdescription = el.getStringValue(); } } + + if(!"1".equals(resultcode)) { + // 濡傛灉鍥炴墽鐘舵佷笉绛変簬1, 璇存槑鏈夎, 鏇存柊鍒拌褰曞瓧琛ㄥ苟璁板綍閿欒淇℃伅 + updateSql=" UPDATE NCXML_DETAIL_RECORDS SET FLAG='"+resultcode+"',ERR_DESCRIBE='"+resultdescription+"' WHERE BUILLID='"+bdocid+"' AND XML_TYPE= '"+type+"'"; + Sqlca.executeSQL(updateSql); + logger.info("鏍规嵁鍥炴墽淇℃伅, 淇敼浼犺緭澶辫触鐘舵, 璁板綍閿欒淇℃伅"+updateSql); + failed_count++; + } } - // 将本批次传输总量及 失败数量记录入记录总表 - String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+formatter2.format(new Date())+"')"; + // 灏嗘湰鎵规浼犺緭鎬婚噺鍙 澶辫触鏁伴噺璁板綍鍏ヨ褰曟昏〃 + String insertSql1="INSERT INTO NCXML_TOTAL_RECORDS(ID,BATCH,XML_TYPE,FLAG_,COUNT_,FAILED_COUNT,ERR_DESCRIBE,CREATETIME) VALUES('"+UUID.randomUUID().toString().replace("-", "")+"','"+batch+"','"+type+"','"+resSuc+"','"+count+"','"+failed_count+"','"+resultdescription+"','"+formatter2.format(new Date())+"')"; Sqlca.executeSQL(insertSql1); }else{ - logger.info("出现未知错误"); + logger.info("鍑虹幇鏈煡閿欒"); } }else{ - logger.info("未找到successful属性"); - } - } catch (Exception e) { - e.printStackTrace(); - } + logger.info("鏈壘鍒皊uccessful灞炴"); + } + return returns; } - }