From 197e6759ec1a413458c700bba81d0bf825c29716 Mon Sep 17 00:00:00 2001 From: xiezhiwen Date: Thu, 30 Aug 2018 17:11:44 +0800 Subject: [PATCH] =?UTF-8?q?=E5=87=AD=E8=AF=81=E7=9B=B8=E5=85=B3-=E4=BF=9D?= =?UTF-8?q?=E8=AF=81=E9=87=91=E6=8A=B5=E6=89=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../CreateVoucherDepositDeductionToMoney.java | 121 +++++ .../CreateVoucherDepositDeduction.java | 23 + .../InsertVoucherRentIncome.java | 1 - .../VoucherSysJointNCServiceImpl.java | 466 ++++++++++-------- 4 files changed, 404 insertions(+), 207 deletions(-) create mode 100644 src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java create mode 100644 src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/CreateVoucherDepositDeduction.java diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java new file mode 100644 index 000000000..0f3b0edb3 --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherDepositDeductionToMoney.java @@ -0,0 +1,121 @@ +package com.tenwa.voucher.CreateVoucherProcess; + +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +import jbo.voucher.LV_VOUCHER_CONFIG; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.awe.util.Transaction; +import com.amarsoft.dict.als.cache.CacheLoaderFactory; +import com.tenwa.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.flow.baseBussion.BaseBussiness; +import com.tenwa.voucher.serviceImp.CreateVoucherServiceImpl; + +public class CreateVoucherDepositDeductionToMoney extends BaseBussiness { + + public String CreateVoucher(String FlowUnid, String VOUCHERNO) throws Exception { + + Transaction Sqlca = null; + Map map = new HashMap(); + Map param = new HashMap(); + Sqlca = Transaction.createTransaction(CacheLoaderFactory.getDataSource()); + + String MONEY = null; + String MONEYNOTAX = null; + String MONEYTAX = null; + String ACCOUNT_DATE = null; + String FACT_DATE = null; + String CONTRACT_ID = null; + String CONTRACT_NUMBER = null; + String PROJECT_NAME = null; + String leas_form = null; + String DISTRIBUTOR_ID = null; + String DISTRIBUTOR_NAME = null; + String CUSTID = null; + String CUSTNAME = null; + String CUSTOMERTYPE = null; + String BUSINESSTYPE = null; + String ACC_NUM = null; + String sql = ""; + param.clear(); + map.put("FlowUnid", FlowUnid); + sql = "SELECT LFIT.FACT_MONEY AS MONEY,ROUND(LFIT.FACT_MONEY / CASE WHEN LCI.LEAS_FORM = '02' THEN 1.06 ELSE 1.16 END,2) AS MONEYNOTAX,(LFIT.FACT_MONEY - ROUND(LFIT.FACT_MONEY / CASE WHEN LCI.LEAS_FORM = '02' THEN 1.06 ELSE 1.16 END,2)) AS MONEYTAX,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS ACCOUNT_DATE,DATE_FORMAT(SYSDATE(), '%Y/%m/%d') AS FACT_DATE,LFIT.CONTRACT_ID,LCI.CONTRACT_NUMBER,LCI.PROJECT_NAME,LCI.LEAS_FORM,DI.DISTRIBUTOR_CODING DISTRIBUTOR_ID,DI.DISTRIBUTOR_NAME,LEC.ID AS CARID,LEC.MODEL,CIF.CUSTOMER_NUM AS CUSTOMERID,CIF.CUSTOMERNAME,CIF.CUSTOMERTYPE,LPI.BUSINESSTYPE,LFIT.ACC_NUMBER FROM LC_FUND_INCOME_TEMP LFIT LEFT JOIN LB_CONTRACT_INFO LCI ON LFIT.CONTRACT_ID = LCI.ID LEFT JOIN DISTRIBUTOR_INFO DI ON DI.DISTRIBUTOR_NO = LCI.DISTRIBUTOR_ID LEFT JOIN LB_EQUIPMENT_CAR LEC ON LEC.CONTRACT_ID = LCI.ID LEFT JOIN lb_union_lessee lul ON lul.contract_id = lci.id LEFT JOIN customer_info cif ON cif.customerid = lul.customer_id LEFT JOIN LB_PROJECT_INFO LPI ON LPI.ID = LUL.PROJECT_ID LEFT JOIN LC_CALC_CONDITION LCCT ON LCCT.CONTRACT_ID = LCI.ID WHERE LFIT.FEE_TYPE = 'feetype16' AND LFIT.SETTLE_METHOD='settlemethod7' AND LFIT.FLOWUNID = :FLOWUNID "; + // 查询sql, 将结果集封装到list集合中 + List> dataList = DataOperatorUtil.getDataBySql(Sqlca, sql, map); + CreateVoucherServiceImpl vs = new CreateVoucherServiceImpl(); + String VOUCHER_TYPE = "1";// 凭证分类 金蝶 + String userid = "admin"; + //遍历获取结果集, 将结果写入map中 + for (int i = 0; i < dataList.size(); i++) { + MONEY = dataList.get(i).get("MONEY").toString(); + if ("".equals(MONEY)||MONEY == null)MONEY = "0.00"; + double mon = Double.parseDouble(MONEY); + // 判断有金额, 封装值到map中 + if (Math.abs(mon) > 0) { + MONEYNOTAX = dataList.get(i).get("MONEYNOTAX").toString(); + MONEYTAX = dataList.get(i).get("MONEYTAX").toString(); + ACCOUNT_DATE = dataList.get(i).get("ACCOUNT_DATE").toString(); + FACT_DATE = dataList.get(i).get("FACT_DATE").toString(); + CONTRACT_ID = dataList.get(i).get("CONTRACT_ID").toString(); + CONTRACT_NUMBER = dataList.get(i).get("CONTRACT_NUMBER").toString(); + PROJECT_NAME = dataList.get(i).get("PROJECT_NAME").toString(); + leas_form = dataList.get(i).get("LEAS_FORM").toString(); + DISTRIBUTOR_ID = dataList.get(i).get("DISTRIBUTOR_ID"); + DISTRIBUTOR_NAME = dataList.get(i).get("DISTRIBUTOR_NAME"); + CUSTID = dataList.get(i).get("CUSTOMERID"); + CUSTNAME = dataList.get(i).get("CUSTOMERNAME"); + CUSTOMERTYPE = dataList.get(i).get("CUSTOMERTYPE"); + BUSINESSTYPE = dataList.get(i).get("BUSINESSTYPE"); + ACC_NUM = dataList.get(i).get("ACC_NUMBER"); + + param.put("FACT_MONEY", MONEY); + param.put("INTERESTNOTAX", MONEYNOTAX); + param.put("TAX", MONEYTAX); + param.put("ACCOUNT_DATE", ACCOUNT_DATE); + param.put("FACT_DATE", FACT_DATE); + param.put("CONTRACT_ID", CONTRACT_ID); + param.put("CONTRACT_NUMBER", CONTRACT_NUMBER); + param.put("PROJECT_NAME", PROJECT_NAME); + param.put("LEAS_FORM", leas_form); + param.put("DISTRIBUTOR_ID", DISTRIBUTOR_ID); + param.put("DISTRIBUTOR_NAME", DISTRIBUTOR_NAME); + param.put("CUSTID", CUSTID); + param.put("CUSTNAME", CUSTNAME); + param.put("CUSTOMERTYPE", CUSTOMERTYPE); + param.put("BUSINESSTYPE", BUSINESSTYPE); + param.put("ACC_NUMBER", ACC_NUM); + + if ("1".equals(BUSINESSTYPE)) { + param.put("LEASFORMASSET", "04"); // 融资租赁资产 + param.put("DEPT", "02"); // 部门 + if ("03".equals(CUSTOMERTYPE)) { // 如果是个人业务 + param.put("LEASINCOMEFORM", "02"); // C端 + } else if ("01".equals(CUSTOMERTYPE)) { + param.put("LEASINCOMEFORM", "01"); // B端 + } + } + param.put("BUSINESSTYPE", "06"); + param.put("FlowUnid", FlowUnid); + map.clear(); + map.put("PROJ_TYPE", leas_form); + map.put("VOUCHER_NO", VOUCHERNO); + // 根据map中的参数, 查询LV_VOUCHER_CONFIG表数据 + BizObject vouch = DataOperatorUtil.getSingleJBO(LV_VOUCHER_CONFIG.CLASS_NAME, map, Sqlca); + // 如果结果不为空, + if (vouch != null) { + //将创建凭证的参数传入在下一层 + vs.createVoucher(vouch.getAttribute("MODULAR_NUMBER").getString(),vouch.getAttribute("OWNED_COMPANY").getString(), leas_form, VOUCHER_TYPE, userid, param,Sqlca); + } + } + } + + if (Sqlca != null) { + Sqlca.commit(); + } + + String sMessage = "true"; + return sMessage; + } +} diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/CreateVoucherDepositDeduction.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/CreateVoucherDepositDeduction.java new file mode 100644 index 000000000..7ca474fde --- /dev/null +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/CreateVoucherMethodSettle/CreateVoucherDepositDeduction.java @@ -0,0 +1,23 @@ +package com.tenwa.voucher.CreateVoucherProcess.CreateVoucherMethodSettle; + +import com.amarsoft.awe.util.Transaction; +import com.tenwa.flow.baseBussion.BaseBussiness; +import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherCustCautionMoneyIncome; +import com.tenwa.voucher.CreateVoucherProcess.CreateVoucherDepositDeductionToMoney; +/** + * 保证金抵扣流成结束后生成 + * @author xiezhiwen + */ +public class CreateVoucherDepositDeduction extends BaseBussiness { + + @Override + public Object run(Transaction Sqlca) throws Exception { + this.initBussinessParam(Sqlca); + String FlowUnid=this.getAttribute("FlowUnid").toString(); + CreateVoucherDepositDeductionToMoney cvdd=new CreateVoucherDepositDeductionToMoney(); + cvdd.CreateVoucher(FlowUnid, "PZ2018083000000153");//收到客户保证金 --回租 + cvdd.CreateVoucher(FlowUnid, "PZ2018083000000154");//收到客户保证金 --回租 + return "true"; + } + +} diff --git a/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java b/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java index fa3b800b2..9a4d5bf9a 100644 --- a/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java +++ b/src_core/com/tenwa/voucher/CreateVoucherProcess/InsertVoucherRentIncome.java @@ -71,7 +71,6 @@ public class InsertVoucherRentIncome { SqlObject asql = new SqlObject(sql_where); Sqlca.executeSQL(asql); Sqlca.commit(); - }}catch(Exception e){ Sqlca.rollback(); e.printStackTrace(); diff --git a/src_core/com/tenwa/voucher/serviceImp/VoucherSysJointNCServiceImpl.java b/src_core/com/tenwa/voucher/serviceImp/VoucherSysJointNCServiceImpl.java index 74dcf506b..71a2829da 100644 --- a/src_core/com/tenwa/voucher/serviceImp/VoucherSysJointNCServiceImpl.java +++ b/src_core/com/tenwa/voucher/serviceImp/VoucherSysJointNCServiceImpl.java @@ -3,7 +3,6 @@ package com.tenwa.voucher.serviceImp; import java.io.File; import java.io.FileOutputStream; import java.text.SimpleDateFormat; -import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; @@ -13,51 +12,48 @@ import org.dom4j.DocumentHelper; import org.dom4j.Element; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; -import org.junit.Test; import com.amarsoft.are.jbo.BizObject; import com.amarsoft.are.jbo.JBOFactory; import com.amarsoft.are.jbo.JBOTransaction; import com.amarsoft.awe.util.Transaction; -import com.amarsoft.dict.als.cache.CacheLoaderFactory; import com.tenwa.comm.util.jboutil.DataOperatorUtil; import com.tenwa.voucher.service.VoucherSysJointNCService; - -import jbo.app.VOUCHER_V8; import jbo.com.tenwa.entity.comm.own.OWN_INFO; -import jbo.voucher.LV_VOUCHER_LOAN; -import jxl.write.DateFormat; +import jbo.voucher.LV_STACTS_CONFIG; public class VoucherSysJointNCServiceImpl implements VoucherSysJointNCService { public void sendVoucherData(JBOTransaction tx) throws Exception { - DOM4JcreateToVoucher(); + DOM4JcreateToVoucher(tx); //DOM4JcreateToCustomer(); } /** * 获取数据库凭证信息表所有的待传F3凭证编号 + * @param tx * @return * @throws Exception */ - private static List getDataList() throws Exception { - JBOTransaction tx=JBOFactory.createJBOTransaction();// 获取事物 - List f3list = new ArrayList(); - String sql = "select F3 from vi_voucher_v8 where v8_flag='0' or v8_flag='-1'";// 查询所有待传输的数据 + private static List> getDataList(JBOTransaction tx) throws Exception { + // 查询所有待传输的数据 + String sql = "SELECT F3,F60,ID,MODULE_NAME,DEPT_NAME,F1,F15,V8_STATUS,F5,GENERATE_DATE,F6 FROM VI_VOUCHER_V8 WHERE V8_FLAG='0' OR V8_FLAG='-1'"; List> dataList = DataOperatorUtil.getDataBySql(tx, sql, null);// 将所有凭证号封装到list集合中 - for(int i=0;i list= getDataList(); // 获取所有凭证编号 + List> list= getDataList(tx); // 获取所有凭证编号 int a = list.size(); // 获取凭证编号的长度 int b=1000; // 设置当前xml生成的条数 int c = (int)(a / b); // 获取循环次数, 最大循环值=c+1 @@ -86,225 +82,283 @@ public class VoucherSysJointNCServiceImpl implements VoucherSysJointNCService { root.addAttribute("roottag", ""); root.addAttribute("sender", "001"); for (int x = i * b; x < (i + 1) * b && x < a; x++) {// 决定当前xml生成的数据量 - map.put("F3", list.get(x));// 获取单条凭证编号 - BizObject v =DataOperatorUtil.getSingleJBO(VOUCHER_V8.CLASS_NAME, map, Sqlca);// 根据凭证编号获取v8表当条数据 - String OWNED_COMPANY = v.getAttribute("F49").getString(); - // 根据凭证表中的本方编号获取本方信息 + // 获取凭证编号 + String F3=list.get(x).get("F3"); + map.put("F3",F3); + + // 获取v8表借方数据 + String sql1 = "SELECT f6,f5,f15,f63,f64,f73,f74,f75,f76 FROM VOUCHER_V8 WHERE F3=:F3 AND ENTRYDC='1'"; + List> v1 = DataOperatorUtil.getDataBySql(Sqlca,sql1,map); + + // 获取v8表贷方数据 + String sql2 = "SELECT f6,f5,f15,f63,f64,f73,f74,f75,f76,f49,f51,f52,f12 FROM VOUCHER_V8 WHERE F3=:F3 AND ENTRYDC='-1'"; + List> v2 = DataOperatorUtil.getDataBySql(Sqlca,sql2,map); + + // 获取v8表公共信息 + for (Map map2 : v2) { + OWNED_COMPANY=map2.get("f49");//本方id + ACC_YEAR = map2.get("f51");// 会计期间/年 + ACC_MONTH =map2.get("f52");// 会计期间/月 + VOUCHING_PERSON =map2.get("f12");// 制单人 + } BizObject own = JBOFactory.createBizObjectQuery(OWN_INFO.CLASS_NAME, "id=:OWNED_COMPANY").setParameter("OWNED_COMPANY", OWNED_COMPANY).getSingleResult(false); - map.clear(); - map.put("VOUCHER_ID",list.get(x)); - String sql=""; - DataOperatorUtil.getDataBySql(tx, sql, null); Element voucher = root.addElement("voucher"); Element voucherHead = voucher.addElement("voucher_head"); Element pkVoucher = voucherHead.addElement("pk_voucher");// 凭证主键/非空 - pkVoucher.setText(v.getAttribute("id").getString()); + //pkVoucher.setText(list.get(x).get("ID").toString()); + pkVoucher.setText("接收展示"); Element pk_vouchertype = voucherHead.addElement("pk_vouchertype");// 凭证类别, 默认01/非空 - pk_vouchertype.setText("1"); + pk_vouchertype.setText("1");//---------------------------------------------------------------------- Element year = voucherHead.addElement("year");// 会计年度/非空 - year.setText(v.getAttribute("f51").getString()); + year.setText(ACC_YEAR); Element pk_system = voucherHead.addElement("pk_system");// 来源系统/非空 - pk_system.setText(own.getAttribute("OWN_NAME").getString()); + pk_system.setText(own.getAttribute("OWN_NAME").getString());//---------------------------------------- Element voucherkind = voucherHead.addElement("voucherkind");// 凭证类型值/非空 - voucherkind.setText(v.getAttribute("v8_flag").getString()); -Element pk_accountingbook = voucherHead.addElement("pk_accountingbook");// 核算核算账簿/非空 - pk_accountingbook.setText("待问/非空"); -Element discardflag = voucherHead.addElement("discardflag");// 作废标志/可空 - discardflag.setText("待问/可空"); -Element period = voucherHead.addElement("period");// 会计期间/非空 - period.setText(v.getAttribute("F52").getString()); + voucherkind.setText("0"); + Element pk_accountingbook = voucherHead.addElement("pk_accountingbook");// 核算核算账簿/非空 + pk_accountingbook.setText("待问/非空"); + Element discardflag = voucherHead.addElement("discardflag");// 作废标志/可空 + discardflag.setText("待问/可空"); + Element period = voucherHead.addElement("period");// 会计期间/非空 + period.setText(ACC_MONTH);//-------------------------------------------------------------- Element no = voucherHead.addElement("no");// 凭证号为空自动分配/非空 - no.setText(v.getAttribute("F3").getString()); -Element attachment = voucherHead.addElement("attachment");// 附单据数/可空 - attachment.setText("待问/可空"); + no.setText(F3); + Element attachment = voucherHead.addElement("attachment");// 附单据数/可空 + attachment.setText("待问/可空"); Element prepareddate = voucherHead.addElement("prepareddate");// 制单日期/非空 - prepareddate.setText(s2); + prepareddate.setText(s2);//--------------------------------------------------- Element pk_prepared = voucherHead.addElement("pk_prepared");// 制单人/非空 - pk_prepared.setText(v.getAttribute("F12").getString()); -Element pk_casher = voucherHead.addElement("pk_casher");// 出纳 - pk_casher.setText("待问"); -Element signflag = voucherHead.addElement("signflag");// 签字标志 - signflag.setText("待问"); -Element pk_checked = voucherHead.addElement("pk_checked");// 审核人 - pk_checked.setText("待问"); -Element tallydate = voucherHead.addElement("tallydate");// 记账日期 - tallydate.setText(v.getAttribute("F1").getString()); -Element pk_manager = voucherHead.addElement("pk_manager");// 记账人 - pk_manager.setText("待问"); -Element memo1 = voucherHead.addElement("memo1"); - memo1.setText("待问"); -Element memo2 = voucherHead.addElement("memo2"); - memo2.setText("待问"); -Element reserve1 = voucherHead.addElement("reserve1"); - reserve1.setText("待问"); -Element reserve2 = voucherHead.addElement("reserve2"); - 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");// 所属组织版本/可空 - pk_org_v.setText("待问/可空"); + pk_prepared.setText(VOUCHING_PERSON);//------------------------------------------- + Element pk_casher = voucherHead.addElement("pk_casher");// 出纳 + pk_casher.setText("待问");//------------------------------------------ + Element signflag = voucherHead.addElement("signflag");// 签字标志 + signflag.setText("待问");//----------------------------------------------------- + Element pk_checked = voucherHead.addElement("pk_checked");// 审核人 + pk_checked.setText("待问");//-------------------------------------------------- + Element tallydate = voucherHead.addElement("tallydate");// 记账日期 + tallydate.setText(list.get(x).get("F1").toString());//-------------------------- + Element pk_manager = voucherHead.addElement("pk_manager");// 记账人 + pk_manager.setText("待问");// ------------------------------------------------------- + Element memo1 = voucherHead.addElement("memo1"); + memo1.setText("待问");//----------------------------------------------------------- + Element memo2 = voucherHead.addElement("memo2"); + memo2.setText("待问");//------------------------------------------------------------ + Element reserve1 = voucherHead.addElement("reserve1"); + reserve1.setText("待问");//--------------------------------------------------------- + Element reserve2 = voucherHead.addElement("reserve2"); + 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");// 所属组织版本/可空 + pk_org_v.setText("待问/可空");//------------------------------------------------------- Element pk_group = voucherHead.addElement("pk_group");// 所属集团 如果不输集团取当前登陆集团 pk_group.setText("001"); Element details = voucherHead.addElement("details"); - - Element item1 = details.addElement("item"); // 借方 - Element detailindex1 = item1.addElement("detailindex");// 分录号/非空 - detailindex1.setText(v.getAttribute("F62").getString()); + // 循环借方集合, 按照v8表数据中生成相应的借方item + for (Map v8Lend : v1) { + // 根据科目id, 获取当前数据对应的科目信息 + SUBJECT_ID=v8Lend.get("f6"); + 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");// 分录号/非空 + detailindex1.setText("待问/非空");//------------------------------------ Element explanation1 = item1.addElement("explanation");// 摘要/非空 - explanation1.setText(v.getAttribute("F5").getString()); + explanation1.setText(v8Lend.get("f5").toString()); Element verifydate1 = item1.addElement("verifydate");// 业务日期/可空 - verifydate1.setText(v.getAttribute("F15").getString()); + verifydate1.setText(v8Lend.get("f15").toString()); Element price1 = item1.addElement("price");// 单价/可空 - price1.setText(v.getAttribute("F7").getString()); - Element excrate21 = item1.addElement("excrate2");// 折本汇率/可空 - excrate21.setText("待问/可空"); - Element debitquantity1 = item1.addElement("debitquantity");// 借方数量/可空 - debitquantity1.setText("待问/可空"); - Element debitamount1 = item1.addElement("debitamount");// 原币借方金额/可空 - debitamount1.setText("待问/可空"); - Element localdebitamount1 = item1.addElement("localdebitamount");// 本币借方金额/可空 - localdebitamount1.setText("待问/可空"); - Element groupdebitamount1 = item1.addElement("groupdebitamount");// 集团本币借方金额/可空 - groupdebitamount1.setText("待问/可空"); - Element globaldebitamount1 = item1.addElement("globaldebitamount");// 全局本币借方金额/可空 - globaldebitamount1.setText("待问/可空"); + price1.setText(""); + Element excrate21 = item1.addElement("excrate2");// 折本汇率/可空 + excrate21.setText("待问/可空");//----------------------------- + Element debitquantity1 = item1.addElement("debitquantity");// 借方数量/可空 + debitquantity1.setText(v1.size()+""); + Element debitamount1 = item1.addElement("debitamount");// 原币借方金额/可空 + debitamount1.setText("待问/可空");//-------------------------------------------------- + Element localdebitamount1 = item1.addElement("localdebitamount");// 本币借方金额/可空 + localdebitamount1.setText("待问/可空");//------------------------------------------- + Element groupdebitamount1 = item1.addElement("groupdebitamount");// 集团本币借方金额/可空 + groupdebitamount1.setText("待问/可空");//----------------------------------------- + Element globaldebitamount1 = item1.addElement("globaldebitamount");// 全局本币借方金额/可空 + globaldebitamount1.setText("待问/可空");//------------------------------------------- Element pk_currtype1 = item1.addElement("pk_currtype");// 币种/非空 - pk_currtype1.setText("CNY"); - Element pk_accasoa1 = item1.addElement("pk_accasoa");// 科目/非空 - pk_accasoa1.setText("待问/非空"); - Element pk_unit1 = item1.addElement("pk_unit");// 所属二级核算单位/可空 - pk_unit1.setText("待问/可空"); - Element pk_unit_v1 = item1.addElement("pk_unit_v");// 所属二级核算单位/版本可空 - pk_unit_v1.setText("待问/可空"); + pk_currtype1.setText("CNY");// + Element pk_accasoa1 = item1.addElement("pk_accasoa");// 科目/非空 + pk_accasoa1.setText(subject.getAttribute("SUBJECTS_NAME").getString()); + Element pk_unit1 = item1.addElement("pk_unit");// 所属二级核算单位/可空 + pk_unit1.setText("待问/可空");//--------------------------------------------------- + Element pk_unit_v1 = item1.addElement("pk_unit_v");// 所属二级核算单位/版本可空 + pk_unit_v1.setText("待问/可空");//------------------------------------------------- Element ass1 = item1.addElement("ass");// 金额必须有一方不为空 - Element ass_item1 = ass1.addElement("item");// 融资租赁资产 - Element pk_Checktype1 = ass_item1.addElement("pk_Checktype");// key - pk_Checktype1.setText("融资租赁资产"); - Element pk_Checkvalue1 = ass_item1.addElement("pk_Checkvalue");// value - pk_Checkvalue1.setText(v.getAttribute("F64").getString()); - Element ass_item2 = ass1.addElement("item");// 部门名称 - Element pk_Checktype2 = ass_item2.addElement("pk_Checktype");// key - pk_Checktype2.setText("部门名称"); - Element pk_Checkvalue2 = ass_item2.addElement("pk_Checkvalue");// value - pk_Checkvalue2.setText(v.getAttribute("F63").getString()); - Element ass_item3 = ass1.addElement("item");// 融资租赁收益类型 - Element pk_Checktype3 = ass_item3.addElement("pk_Checktype");// key - pk_Checktype3.setText("融资租赁收益类型"); - Element pk_Checkvalue3 = ass_item3.addElement("pk_Checkvalue");// value - pk_Checkvalue3.setText(v.getAttribute("F73").getString()); - Element ass_item4 = ass1.addElement("item");// 资金类型 - Element pk_Checktype4 = ass_item4.addElement("pk_Checktype");// key - pk_Checktype4.setText("资金类型"); - Element pk_Checkvalue4 = ass_item4.addElement("pk_Checkvalue");// value - pk_Checkvalue4.setText(v.getAttribute("F74").getString()); - Element ass_item5 = ass1.addElement("item");// 主营类型 - Element pk_Checktype5 = ass_item5.addElement("pk_Checktype");// key - pk_Checktype5.setText("主营类型"); - Element pk_Checkvalue5 = ass_item5.addElement("pk_Checkvalue");// value - pk_Checkvalue5.setText(v.getAttribute("F75").getString()); - Element ass_item6 = ass1.addElement("item");// 银行账号 - Element pk_Checktype6 = ass_item6.addElement("pk_Checktype");// key - pk_Checktype6.setText("银行账号"); - Element pk_Checkvalue6 = ass_item6.addElement("pk_Checkvalue");// value - pk_Checkvalue6.setText(v.getAttribute("F76").getString()); + // 融资租赁资产 + if(v8Lend.get("f64")!=null && !"".equals(v8Lend.get("f64"))) { + Element ass_item1 = ass1.addElement("item"); + Element pk_Checktype1 = ass_item1.addElement("pk_Checktype"); + pk_Checktype1.setText("融资租赁资产"); + Element pk_Checkvalue1 = ass_item1.addElement("pk_Checkvalue"); + pk_Checkvalue1.setText(v8Lend.get("f64")); + } + // 部门名称 + if(v8Lend.get("f63")!=null && !"".equals(v8Lend.get("f63"))) {// 部门名称 + Element ass_item2 = ass1.addElement("item"); + Element pk_Checktype2 = ass_item2.addElement("pk_Checktype"); + pk_Checktype2.setText("部门名称"); + Element pk_Checkvalue2 = ass_item2.addElement("pk_Checkvalue"); + pk_Checkvalue2.setText(v8Lend.get("f63")); + } + // 融资租赁收益类型 + 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("融资租赁收益类型"); + Element pk_Checkvalue3 = ass_item3.addElement("pk_Checkvalue"); + pk_Checkvalue3.setText(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("资金类型"); + Element pk_Checkvalue4 = ass_item4.addElement("pk_Checkvalue"); + pk_Checkvalue4.setText(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("主营类型"); + Element pk_Checkvalue5 = ass_item5.addElement("pk_Checkvalue"); + pk_Checkvalue5.setText(v8Lend.get("f75")); + } + // 银行账号 + if(v8Lend.get("f76")!=null && !"".equals(v8Lend.get("f76"))) { + Element ass_item6 = ass1.addElement("item"); + Element pk_Checktype6 = ass_item6.addElement("pk_Checktype"); + pk_Checktype6.setText("银行账号"); + Element pk_Checkvalue6 = ass_item6.addElement("pk_Checkvalue"); + pk_Checkvalue6.setText(v8Lend.get("f76")); + } Element cashFlow = item1.addElement("cashFlow"); Element cashFlow_item1 = cashFlow.addElement("item"); 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 - money1.setText("待问"); - Element moneymoneyglobal1 = cashFlow_item1.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double - moneymoneyglobal1.setText("待问"); - Element moneygroup1 = cashFlow_item1.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double - moneygroup1.setText("待问"); - Element moneymain1 = cashFlow_item1.addElement("moneymain");// 本币,最大长度为64,类型为:Double - moneymain1.setText("待问"); - Element pk_cashflow1 = cashFlow_item1.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String - pk_cashflow1.setText("待问"); - Element pk_innercorp1 = cashFlow_item1.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String - pk_innercorp1.setText("待问"); - - Element item2 = details.addElement("item"); // 贷方金额 - Element creditquantity2 = item2.addElement("creditquantity");// 贷方数量 可空 - creditquantity2.setText("待问/可空"); - Element creditamount2 = item2.addElement("creditamount"); // 原币贷方金额 可空 - creditamount2.setText("待问/可空"); - Element localcreditamount2 = item2.addElement("localcreditamount");// 本币贷方金额 可空 - localcreditamount2.setText("待问/可空"); - Element groupcreditamount2 = item2.addElement("groupcreditamount");// 集团本币贷方金额 可空 - groupcreditamount2.setText("待问/可空"); - Element globalcreditamount2 = item2.addElement("globalcreditamount");// 全局本币贷方金额 可空 - globalcreditamount2.setText("待问/可空"); - Element detailindex2 = item2.addElement("detailindex");// 分录号 非空 - detailindex2.setText("待问/非空"); + Element money1 = cashFlow_item1.addElement("money");// 原币,最大长度为64,类型为:Double + money1.setText("待问"); + Element moneymoneyglobal1 = cashFlow_item1.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double + moneymoneyglobal1.setText("待问"); + Element moneygroup1 = cashFlow_item1.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double + moneygroup1.setText("待问"); + Element moneymain1 = cashFlow_item1.addElement("moneymain");// 本币,最大长度为64,类型为:Double + moneymain1.setText("待问"); + Element pk_cashflow1 = cashFlow_item1.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String + pk_cashflow1.setText("待问"); + Element pk_innercorp1 = cashFlow_item1.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String + pk_innercorp1.setText("待问"); + } + // 循环贷方集合, 按照v8表数据中生成相应的借方item + for (Map v8loan : v2) { + // 根据科目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");// 贷方数量 可空 + creditquantity2.setText(v2.size()+""); + Element creditamount2 = item2.addElement("creditamount"); // 原币贷方金额 可空 + creditamount2.setText("待问/可空"); + Element localcreditamount2 = item2.addElement("localcreditamount");// 本币贷方金额 可空 + localcreditamount2.setText("待问/可空"); + Element groupcreditamount2 = item2.addElement("groupcreditamount");// 集团本币贷方金额 可空 + groupcreditamount2.setText("待问/可空"); + Element globalcreditamount2 = item2.addElement("globalcreditamount");// 全局本币贷方金额 可空 + globalcreditamount2.setText("待问/可空"); + Element detailindex2 = item2.addElement("detailindex");// 分录号 非空 + detailindex2.setText("待问/非空");//------------------------------------- Element explanation2 = item2.addElement("explanation");// 摘要 非空 - explanation2.setText(v.getAttribute("F5").getString()); + explanation2.setText(v8loan.get("f5")); Element verifydate2 = item2.addElement("verifydate");// 业务日期 可空 - verifydate2.setText(v.getAttribute("F15").getString()); + verifydate2.setText(v8loan.get("f15")); Element price2 = item2.addElement("price");// 单价 可空 - price2.setText(v.getAttribute("F8").getString()); - Element excrate22 = item2.addElement("excrate2");// 折本汇率 可空 - excrate22.setText("待问/可空"); + price2.setText(""); + Element excrate22 = item2.addElement("excrate2");// 折本汇率 可空 + excrate22.setText("待问/可空");//------------------------------------------- Element pk_currtype2 = item2.addElement("pk_currtype");// 币种 非空 pk_currtype2.setText("CNY"); - Element pk_accasoa2 = item2.addElement("pk_accasoa");// 科目 非空 - pk_accasoa2.setText("待问/非空"); - Element pk_unit2 = item2.addElement("pk_unit");// 所属二级核算单位 可空 (组织) - pk_unit2.setText("待问/可空"); - Element pk_unit_v2 = item2.addElement("pk_unit_v");// 所属二级核算单位 版本可空 (组织) - pk_unit_v2.setText("待问/可空"); + Element pk_accasoa2 = item2.addElement("pk_accasoa");// 科目 非空 + pk_accasoa2.setText(subject.getAttribute("SUBJECTS_NAME").getString()); + Element pk_unit2 = item2.addElement("pk_unit");// 所属二级核算单位 可空 (组织) + pk_unit2.setText("待问/可空");//------------------------------------------ + Element pk_unit_v2 = item2.addElement("pk_unit_v");// 所属二级核算单位 版本可空 (组织) + pk_unit_v2.setText("待问/可空");//----------------------------------------------- Element ass2 = item2.addElement("ass");// - Element ass2_item1 = ass2.addElement("item"); - Element checktypename21 = ass2_item1.addElement("checktypename"); - checktypename21.setText("融资租赁资产"); - Element checkvaluecode21 = ass2_item1.addElement("checkvaluecode"); - checkvaluecode21.setText(v.getAttribute("F64").getString()); - Element ass2_item2 = ass2.addElement("item"); - Element checktypename22 = ass2_item2.addElement("checktypename"); - checktypename22.setText("部门名称"); - Element checkvaluecode22 = ass2_item2.addElement("checkvaluecode"); - checkvaluecode22.setText(v.getAttribute("F63").getString()); - Element ass2_item3 = ass2.addElement("item"); - Element checktypename23 = ass2_item3.addElement("checktypename"); - checktypename23.setText("融资租赁收益类型"); - Element checkvaluecode23 = ass2_item3.addElement("checkvaluecode"); - checkvaluecode23.setText(v.getAttribute("F73").getString()); - Element ass2_item4 = ass2.addElement("item"); - Element checktypename24 = ass2_item4.addElement("checktypename"); - checktypename24.setText("资金类型"); - Element checkvaluecode24 = ass2_item4.addElement("checkvaluecode"); - checkvaluecode24.setText(v.getAttribute("F74").getString()); - Element ass2_item5 = ass2.addElement("item"); - Element checktypename25 = ass2_item5.addElement("checktypename"); - checktypename25.setText("主营类型"); - Element checkvaluecode25 = ass2_item5.addElement("checkvaluecode"); - checkvaluecode25.setText(v.getAttribute("F75").getString()); - Element ass2_item6 = ass2.addElement("item"); - Element checktypename26 = ass2_item6.addElement("checktypename"); - checktypename26.setText("银行账号"); - Element checkvaluecode26 = ass2_item6.addElement("checkvaluecode"); - checkvaluecode26.setText(v.getAttribute("F76").getString()); + // 融资租赁资产 + if(v8loan.get("f64")!=null && !"".equals(v8loan.get("f64"))) { + Element ass2_item1 = ass2.addElement("item"); + Element checktypename21 = ass2_item1.addElement("checktypename"); + checktypename21.setText("融资租赁资产"); + Element checkvaluecode21 = ass2_item1.addElement("checkvaluecode"); + checkvaluecode21.setText(v8loan.get("f64")); + } + // 部门名称 + if(v8loan.get("f63")!=null && !"".equals(v8loan.get("f63"))) {// 部门名称 + Element ass2_item2 = ass2.addElement("item"); + Element checktypename22 = ass2_item2.addElement("checktypename"); + checktypename22.setText("部门名称"); + Element checkvaluecode22 = ass2_item2.addElement("checkvaluecode"); + checkvaluecode22.setText(v8loan.get("f63")); + } + // 融资租赁收益类型 + if(v8loan.get("f73")!=null && !"".equals(v8loan.get("f73"))) { + Element ass2_item3 = ass2.addElement("item"); + Element checktypename23 = ass2_item3.addElement("checktypename"); + checktypename23.setText("融资租赁收益类型"); + Element checkvaluecode23 = ass2_item3.addElement("checkvaluecode"); + checkvaluecode23.setText(v8loan.get("f73")); + } + // 资金类型 + if(v8loan.get("f74")!=null && !"".equals(v8loan.get("f74"))) { + Element ass2_item4 = ass2.addElement("item"); + Element checktypename24 = ass2_item4.addElement("checktypename"); + checktypename24.setText("资金类型"); + Element checkvaluecode24 = ass2_item4.addElement("checkvaluecode"); + checkvaluecode24.setText(v8loan.get("f74")); + } + // 主营类型 + if(v8loan.get("f75")!=null && !"".equals(v8loan.get("f75"))) { + Element ass2_item5 = ass2.addElement("item"); + Element checktypename25 = ass2_item5.addElement("checktypename"); + checktypename25.setText("主营类型"); + Element checkvaluecode25 = ass2_item5.addElement("checkvaluecode"); + checkvaluecode25.setText(v8loan.get("f75")); + } + // 银行账号 + if(v8loan.get("f76")!=null && !"".equals(v8loan.get("f76"))) { + Element ass2_item6 = ass2.addElement("item"); + Element checktypename26 = ass2_item6.addElement("checktypename"); + checktypename26.setText("银行账号"); + Element checkvaluecode26 = ass2_item6.addElement("checkvaluecode"); + checkvaluecode26.setText(v8loan.get("f76")); + } Element item2_cashFlow = item2.addElement("cashFlow"); Element cashflowitem2 = item2_cashFlow.addElement("item"); - Element m_pk_currtype2 = cashflowitem2.addElement("m_pk_currtype");// 币种,最大长度为64,类型为:String - m_pk_currtype2.setText("CNY"); - Element money2 = cashflowitem2.addElement("money");// 原币,最大长度为64,类型为:Double - money2.setText("待问"); - Element moneyglobal2 = cashflowitem2.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double - moneyglobal2.setText("待问"); - Element moneygroup2 = cashflowitem2.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double - moneygroup2.setText("待问"); - Element moneymain2 = cashflowitem2.addElement("moneymain");// 本币,最大长度为64,类型为:Double - moneymain2.setText("待问"); - Element pk_cashflow2 = cashflowitem2.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String - pk_cashflow2.setText("待问"); - Element pk_innercorp2 = cashflowitem2.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String - pk_innercorp2.setText("待问"); - + Element m_pk_currtype2 = cashflowitem2.addElement("m_pk_currtype");// 币种,最大长度为64,类型为:String + m_pk_currtype2.setText("CNY"); + Element money2 = cashflowitem2.addElement("money");// 原币,最大长度为64,类型为:Double + money2.setText("待问"); + Element moneyglobal2 = cashflowitem2.addElement("moneyglobal");// 全局本币,最大长度为64,类型为:Double + moneyglobal2.setText("待问"); + Element moneygroup2 = cashflowitem2.addElement("moneygroup");// 集团本币,最大长度为64,类型为:Double + moneygroup2.setText("待问"); + Element moneymain2 = cashflowitem2.addElement("moneymain");// 本币,最大长度为64,类型为:Double + moneymain2.setText("待问"); + Element pk_cashflow2 = cashflowitem2.addElement("pk_cashflow");// 现金主键,最大长度为64,类型为:String + pk_cashflow2.setText("待问"); + Element pk_innercorp2 = cashflowitem2.addElement("pk_innercorp");// 内部单位主键,最大长度为64,类型为:String + pk_innercorp2.setText("待问"); + + } } - String ss="C:\\Users\\xiezhiwen\\Desktop\\"+"APleasing_"+(i+1)+"_"+"VOUCHER"+s+".xml"; + String ss="C:\\Users\\xiezhiwen\\Desktop\\"+"APleasing_"+(i+1)+"_VOUCHER_"+s+".xml"; file=new File(ss); writer = new XMLWriter(new FileOutputStream(file), OutputFormat.createPrettyPrint()); writer.setEscapeText(false);// 字符是否转义,默认true