From 3e95164443ced13c0ecd22d36714b9f2c2f94768 Mon Sep 17 00:00:00 2001 From: liuzhao Date: Wed, 12 Sep 2018 16:12:18 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../Apzl/InvoiceManager/InvoiceRentDirect.jsp | 67 ++ .../InvoiceConfirmDetailList.jsp | 4 + .../ConfirmInvoice/InvoiceConfirmList.jsp | 5 +- WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 2 +- WebContent/WEB-INF/etc/jbo/jbo_comm.xml | 3 +- .../rentPlanInvoiceDirectManager.java | 713 ++++++++++++++++++ 6 files changed, 790 insertions(+), 4 deletions(-) create mode 100644 WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentDirect.jsp create mode 100644 src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java diff --git a/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentDirect.jsp b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentDirect.jsp new file mode 100644 index 000000000..5bf3e3381 --- /dev/null +++ b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentDirect.jsp @@ -0,0 +1,67 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-09-11 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceRentDirect"); + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.MultiSelect = true; //多选 + dwTemp.ReadOnly = "1"; //只读模式 + dwTemp.setPageSize(10); + dwTemp.genHTMLObjectWindow(""); + + //0、是否展示 1、 权限控制 2、 展示类型 3、按钮显示名称 4、按钮解释文字 5、按钮触发事件代码 6、 7、 8、 9、图标,CSS层叠样式 10、风格 + String sButtons[][] = { + //{"true","All","Button","新增","新增","newRecord()","","","","btn_icon_add",""}, + //{"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, + //{"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(0))')","","","","btn_icon_delete",""}, + {"true","","Button","申请开票","申请开票","ApplyRentInvoice()","","","","btn_icon_add",""}, + }; +%><%@include file="/Frame/resources/include/ui/include_list.jspf"%> + +<%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmDetailList.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmDetailList.jsp index 4dac26739..bc7e52b71 100644 --- a/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmDetailList.jsp +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmDetailList.jsp @@ -17,6 +17,7 @@ //{"true","All","Button","新增","新增","newRecord()","","","","btn_icon_add",""}, {"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, //{"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(0))')","","","","btn_icon_delete",""}, + {"true","","Button","返回","返回","returnList()","","","","btn_icon_return",""}, }; %><%@include file="/Frame/resources/include/ui/include_list.jspf"%> <%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmList.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmList.jsp index 5b232a2c1..1dd3f2e47 100644 --- a/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmList.jsp +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmList.jsp @@ -16,8 +16,8 @@ String sButtons[][] = { //{"true","All","Button","新增","新增","newRecord()","","","","btn_icon_add",""}, {"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, - {"true","","Button","查询","查询","selectInvoice()","","","","",""} - //{"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(0))')","","","","btn_icon_delete",""}, + {"true","","Button","查询","查询","selectInvoice()","","","","",""}, + {"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0)","","","","btn_icon_delete",""}, }; %><%@include file="/Frame/resources/include/ui/include_list.jspf"%> <%@ include file="/Frame/resources/include/include_end.jspf"%> \ No newline at end of file diff --git a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml index 23762601e..bbf7d51e0 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -3501,7 +3501,7 @@ - + diff --git a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml index b5d2d7eeb..08f9fa9c3 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_comm.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_comm.xml @@ -773,7 +773,8 @@ - + + diff --git a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java new file mode 100644 index 000000000..df1b6ac1d --- /dev/null +++ b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java @@ -0,0 +1,713 @@ +package com.tenwa.apzl.invoicemanager.rentplaninvoice; + +import java.io.File; +import java.math.BigDecimal; +import java.text.DecimalFormat; +import java.text.SimpleDateFormat; +import java.util.ArrayList; +import java.util.Date; +import java.util.List; +import java.util.UUID; + +import org.apache.commons.lang.StringUtils; +import org.springframework.http.HttpEntity; +import org.springframework.http.HttpHeaders; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; +import org.springframework.util.LinkedMultiValueMap; +import org.springframework.util.MultiValueMap; +import org.springframework.web.client.RestTemplate; + +import jbo.app.tenwa.calc.LC_RENT_PLAN; +import jbo.app.tenwa.calc.LI_INVOICE_CONFIRM; +import jbo.app.tenwa.calc.LI_INVOICE_CONFIRM_DETAIL; +import jbo.app.tenwa.calc.LI_INVOICE_RESULT; +import jbo.app.tenwa.calc.VI_INVOICE_RENT_PLAN_CONFIRM; +import jbo.app.tenwa.calc.VI_LI_INVOICE_OTHERS; +import jbo.app.tenwa.calc.VI_LI_INVOICE_RENT_DIRECT; +import jbo.app.tenwa.customer.CUSTOMER_FAMILY; +import jbo.app.tenwa.customer.CUSTOMER_PERSON; +import jbo.awe.USER_INFO; +import jbo.com.tenwa.entity.comm.invoice.LI_RENT_INVOICE_INFO; +import jbo.com.tenwa.entity.comm.own.OWN_ACCOUNT; +import jbo.com.tenwa.entity.comm.own.OWN_INFO; +import jbo.com.tenwa.lease.comm.LB_CONTRACT_INFO; + +import com.amarsoft.are.jbo.BizObject; +import com.amarsoft.are.jbo.BizObjectManager; +import com.amarsoft.are.jbo.JBOException; +import com.amarsoft.are.jbo.JBOFactory; +import com.amarsoft.are.jbo.JBOTransaction; +import com.amarsoft.awe.Configure; +import com.tenwa.app.invoice.action.InvoiceRequest; +import com.tenwa.app.invoice.data.ResponseEnum; +import com.tenwa.app.invoice.pojo.ResultPojo; +import com.tenwa.app.invoice.request.InvoiceRequestBase; +import com.tenwa.app.invoice.request.InvoiceRequestHead; +import com.tenwa.app.invoice.utils.DownloadPdfUtil; +import com.tenwa.app.invoice.utils.JaxbUtil; +import com.tenwa.app.invoice.utils.MathUtil; +import com.tenwa.app.invoice.utils.Num2ChineseUtil; +import com.tenwa.app.invoice.utils.PasswordGenerateUtil; +import com.tenwa.app.invoice.utils.ResultUtil; +import com.tenwa.flow.action.comm.BaseTable; +import com.tenwa.util.SecurityUtil; + +public class rentPlanInvoiceDirectManager extends BaseTable{ + + private String planIds; + private String ids; + private String moneyTypes; + private String sid; + + public String getPlanIds() { + return planIds; + } + public void setPlanIds(String planIds) { + this.planIds = planIds; + } + public String getIds() { + return ids; + } + public void setIds(String ids) { + this.ids = ids; + } + + + public String getMoneyTypes() { + return moneyTypes; + } + public void setMoneyTypes(String moneyTypes) { + this.moneyTypes = moneyTypes; + } + + public String getSid() { + return sid; + } + public void setSid(String sid) { + this.sid = sid; + } + /** + * 选择申请开票的数据--直租 + * @param tx + * @return + * @throws Exception + */ + public String ApplyRentInvoice(JBOTransaction tx) throws Exception{ + + BizObjectManager lriiManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + BizObjectManager viInvoiceRentManager = JBOFactory.getBizObjectManager(VI_LI_INVOICE_RENT_DIRECT.CLASS_NAME); + + tx.join(lriiManager); + tx.join(viInvoiceRentManager); + String[] planIds = this.getPlanIds().split("@"); + String invoice_status = "1"; + String bill_type = "invoice"; + String invoice_money = ""; + String tax_type = ""; + String plan_id = ""; + String PAYMENT_NUMBER = ""; + String TAX_REG_CODE=""; + String TAX_BANK=""; + String TAX_ACC=""; + String contract_id=""; + + for(int i=0;i viInvoiceRent = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.VI_LI_INVOICE_RENT", "plan_id=:plan_id").setParameter("plan_id", planId).getResultList(false); + for (BizObject bizObject : viInvoiceRent) { + String id=UUID.randomUUID().toString().replaceAll("-", ""); + + invoice_money = bizObject.getAttribute("plan_money").toString(); + plan_id = bizObject.getAttribute("plan_id").toString(); + PAYMENT_NUMBER = bizObject.getAttribute("payment_number").toString(); + TAX_REG_CODE = bizObject.getAttribute("cert_id").toString(); + TAX_BANK = bizObject.getAttribute("bank_name").toString(); + TAX_ACC = bizObject.getAttribute("acc_number").toString(); + contract_id = bizObject.getAttribute("contract_id").toString(); + tax_type = bizObject.getAttribute("tax_type").toString(); + + if("利息".equals(tax_type)){ + tax_type = "interest"; + }else if("逾期利息".equals(tax_type)){ + tax_type = "overinterest"; + } + + + BizObject lriiObject = lriiManager.createQuery("plan_id=:plan_id and tax_type=:tax_type").setParameter("plan_id", planId).setParameter("tax_type", tax_type).getSingleResult(false); + if(lriiObject!=null){ + lriiManager.createQuery("update o set invoice_status='1' where plan_id=:plan_id").setParameter("plan_id", planId).executeUpdate(); + }else{ + + BizObject rentInvoiceInfo = lriiManager.newObject(); + rentInvoiceInfo.setAttributeValue("id", id); + rentInvoiceInfo.setAttributeValue("invoice_status", invoice_status); + rentInvoiceInfo.setAttributeValue("bill_type", bill_type); + rentInvoiceInfo.setAttributeValue("invoice_money", invoice_money); + + /*if("利息".equals(tax_type)){ + rentInvoiceInfo.setAttributeValue("tax_type", "interest"); + }else if("逾期利息".equals(tax_type)){ + rentInvoiceInfo.setAttributeValue("tax_type", "overinterest"); + + }else{ + return "金额类型为空!"; + }*/ + + if("".equals(tax_type) || tax_type==null){ + return "金额类型为空!"; + }else{ + rentInvoiceInfo.setAttributeValue("tax_type", tax_type); + } + + + + rentInvoiceInfo.setAttributeValue("TEMPORARY_NOINVOICE", "0.00"); + rentInvoiceInfo.setAttributeValue("NOINVOICE", "0.00"); + rentInvoiceInfo.setAttributeValue("plan_id", plan_id); + rentInvoiceInfo.setAttributeValue("PAYMENT_NUMBER", PAYMENT_NUMBER); + rentInvoiceInfo.setAttributeValue("TAX_REG_CODE", TAX_REG_CODE);// 纳税人识别号 + rentInvoiceInfo.setAttributeValue("TAX_BANK", TAX_BANK);//开户行 + rentInvoiceInfo.setAttributeValue("TAX_ACC", TAX_ACC);//开户账号 + rentInvoiceInfo.setAttributeValue("contract_id", contract_id); + + rentInvoiceInfo = this.initTabeUserInfo(rentInvoiceInfo); + lriiManager.saveObject(rentInvoiceInfo); + } + } + + } + + return "开票成功"; + } +public String selectApplyOtherConfirm(JBOTransaction tx) throws Exception{ + + BizObjectManager lriiManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + BizObjectManager viInvoiceOtherManager = JBOFactory.getBizObjectManager(VI_LI_INVOICE_OTHERS.CLASS_NAME); + + tx.join(lriiManager); + tx.join(viInvoiceOtherManager); + String[] moneyTypes = this.getMoneyTypes().split("@"); + + String invoice_status = "1"; + String bill_type = "invoice"; + String invoice_money = ""; + String plan_id = ""; + String PAYMENT_NUMBER = ""; + String TAX_REG_CODE=""; + String TAX_BANK=""; + String TAX_ACC=""; + String moneytype = ""; + String contract_id=""; + + for(int i=0;i map = new HashMap(); + //map.put("contract_id", contract_id); + //map.put("moneytype", moneytype); + + //BizObject viInvoiceOther = DataOperatorUtil.getJBOBySQL("SELECT invoice_price,PAYMENT_NUMBER,cert_id,bank_name,acc_number from O", "jbo.app.tenwa.calc.VI_LI_INVOICE_OTHERS", map, tx); + //BizObject viInvoiceOther = viInvoiceOtherManager.createQuery("contract_id=:contract_id AND moneytype=:moneytype").setParameter("contract_id", contract_id).setParameter("moneytype", moneytype).getSingleResult(false); + + BizObject viInvoiceOther = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.VI_LI_INVOICE_OTHERS", "SELECT invoice_price,PAYMENT_NUMBER,cert_id,bank_name,acc_number from O where contract_id=:contract_id AND moneytype=:moneytype").setParameter("contract_id", contract_id).setParameter("moneytype", moneytype).getSingleResult(false); + + invoice_money = viInvoiceOther.getAttribute("invoice_price").toString(); + PAYMENT_NUMBER = viInvoiceOther.getAttribute("PAYMENT_NUMBER").toString(); + TAX_REG_CODE = viInvoiceOther.getAttribute("cert_id").toString(); + TAX_BANK = viInvoiceOther.getAttribute("bank_name").toString(); + TAX_ACC = viInvoiceOther.getAttribute("acc_number").toString(); + + BizObject lriiObject = lriiManager.createQuery("contract_id=:contract_id and tax_type=:moneytype").setParameter("contract_id", contract_id).setParameter("moneytype", moneytype).getSingleResult(false); + if(lriiObject !=null){ + lriiManager.createQuery("update o set invoice_status='1' where contract_id=:contract_id and tax_type=:moneytype").setParameter("contract_id", contract_id).setParameter("moneytype", moneytype).executeUpdate(); + }else{ + + BizObject rentInvoiceInfo = lriiManager.newObject(); + rentInvoiceInfo.setAttributeValue("id", id); + rentInvoiceInfo.setAttributeValue("invoice_status", invoice_status); + rentInvoiceInfo.setAttributeValue("bill_type", bill_type); + rentInvoiceInfo.setAttributeValue("invoice_money", invoice_money); + if("gps".equals(moneytype)){ + rentInvoiceInfo.setAttributeValue("tax_type", moneytype); + }else if("sxf".equals(moneytype)){ + rentInvoiceInfo.setAttributeValue("tax_type", moneytype); + }else if("myhj".equals(moneytype)){ + rentInvoiceInfo.setAttributeValue("tax_type", moneytype); + }else{ + return "金额类型为空!"; + } + rentInvoiceInfo.setAttributeValue("TEMPORARY_NOINVOICE", "0.00"); + rentInvoiceInfo.setAttributeValue("NOINVOICE", "0.00"); + rentInvoiceInfo.setAttributeValue("plan_id", plan_id); + rentInvoiceInfo.setAttributeValue("PAYMENT_NUMBER", PAYMENT_NUMBER); + rentInvoiceInfo.setAttributeValue("TAX_REG_CODE", TAX_REG_CODE);// 纳税人识别号 + rentInvoiceInfo.setAttributeValue("TAX_BANK", TAX_BANK);//开户行 + rentInvoiceInfo.setAttributeValue("TAX_ACC", TAX_ACC);//开户账号 + rentInvoiceInfo.setAttributeValue("contract_id", contract_id); + + rentInvoiceInfo = this.initTabeUserInfo(rentInvoiceInfo); + lriiManager.saveObject(rentInvoiceInfo); + } + + } + + return "开票成功"; + } + /** + * 开票确认提交 + * @param tx + * @return + * @throws Exception + */ + public String invoiceConfirmSubmit(JBOTransaction tx) throws Exception{ + + BizObjectManager ownAccountManager = JBOFactory.getBizObjectManager(OWN_ACCOUNT.CLASS_NAME); + BizObject ownAccount = ownAccountManager.createQuery("state_=:state and acc_type=:acc_type and money_type=:money_type and account_type=:account_type") + .setParameter("state", "0010").setParameter("acc_type", "0010") + .setParameter("money_type", "01").setParameter("account_type", "invoice").getSingleResult(false); + if(ownAccount==null || "".equals(ownAccount)){ + return "您的本方银行账户为空!"; + } + String[] rentInvoiceids = this.getIds().split("@"); + List rentPlanIdList = new ArrayList(); + + for(int i=0;i checkInvoiceList= (List)invoiceManager.createQuery("SELECT DISTINCT O.customer_name,O.CUSTOMER_ID FROM O WHERE O.id IN ("+rentPlanstr+")").getResultList(false); + if(checkInvoiceList!=null &&checkInvoiceList.size()>1){ + return "选择的不是同一个客户!"; + }else if(checkInvoiceList!=null &&checkInvoiceList.size()==1){ + customerid = checkInvoiceList.get(0).getAttribute("CUSTOMER_ID").toString(); + customerName = checkInvoiceList.get(0).getAttribute("customer_name").toString(); + }else{ + return "ERROR[02]"; + } + + String confirmId=UUID.randomUUID().toString().replaceAll("-", ""); + Double hjje =0.00; + Double hjse = 0.00; + Double jshj = 0.00; + List confirmDetailList = new ArrayList(); + + DecimalFormat df2 = new DecimalFormat(".00"); + DecimalFormat df6 = new DecimalFormat(".000000"); + + BizObjectManager invoiceRentManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + Double sl = 0.06; + for(int i=0;i0){ + BizObjectManager confirmManager = JBOFactory.getBizObjectManager(LI_INVOICE_CONFIRM.CLASS_NAME); + tx.join(confirmManager); + BizObject confirmBizObject = confirmManager.newObject(); + + String ownId = ownAccount.getAttribute("own_id").toString(); + BizObjectManager ownInfoManager = JBOFactory.getBizObjectManager(OWN_INFO.CLASS_NAME); + BizObject ownInfo = ownInfoManager.createQuery("OWN_NUMBER=:OWN_NUMBER").setParameter("OWN_NUMBER", ownId).getSingleResult(false); + String xhdwdzdh = ownInfo.getAttribute("LEASE_TEL").toString();//销货单位地址电话 + + BizObjectManager customerPersonManager = JBOFactory.getBizObjectManager(CUSTOMER_PERSON.CLASS_NAME); + BizObjectManager customerFamilyManager = JBOFactory.getBizObjectManager(CUSTOMER_FAMILY.CLASS_NAME); + + BizObject customerPerson = customerPersonManager.createQuery("SELECT o.certid,caa.fulladdress,o.mobile,ca.acc_number,ca.bank_name from o JOIN jbo.app.tenwa.customer.CUSTOMER_ACCOUNT ca ON ca.customerid=o.customerid JOIN jbo.app.tenwa.customer.CUSTOMER_ADDRESS caa ON caa.customerid=ca.customerid where o.customerid=:customerid") + .setParameter("customerid", customerid).getSingleResult(false); + + BizObject customerFamily = customerFamilyManager.createQuery("customerid=:customerid").setParameter("customerid", customerid).getSingleResult(false); + String familyTel=""; + if(customerFamily!=null){ + familyTel = customerFamily.getAttribute("tel").toString(); + } + String certid=""; + String fulladdress=""; + String mobile=""; + String acc_number=""; + String bank_name=""; + String acc_bank=""; + String address_tel=""; + if(customerPerson!=null){ + certid=customerPerson.getAttribute("certid").toString(); + fulladdress=customerPerson.getAttribute("fulladdress").toString(); + mobile=customerPerson.getAttribute("mobile").toString(); + acc_number=customerPerson.getAttribute("acc_number").toString(); + bank_name=customerPerson.getAttribute("bank_name").toString(); + + acc_bank = "["+bank_name+"]["+acc_number+"]"; + address_tel = "["+mobile+"]["+fulladdress+"]"; + + } + BizObjectManager contractInfoManager = JBOFactory.getBizObjectManager(LB_CONTRACT_INFO.CLASS_NAME); + BizObject contractInfo = contractInfoManager.createQuery("SELECT o.leas_form,lul.customer_id,ci.customertype FROM o JOIN jbo.com.tenwa.lease.comm.LB_UNION_LESSEE lul ON o.id=lul.contract_id JOIN jbo.app.tenwa.customer.CUSTOMER_INFO ci ON ci.customerid=lul.customer_id WHERE O.businesstype='1' AND lul.customer_id=:customerid").setParameter("customerid",customerid).getSingleResult(false); + String customertype = contractInfo.getAttribute("customertype").toString();//客户类型:自然人或法人 + + + BizObjectManager userInfoManager = JBOFactory.getBizObjectManager(USER_INFO.CLASS_NAME); + BizObject userInfo = userInfoManager.createQuery("userid=:userid").setParameter("userid", CurUserID).getSingleResult(false); + String username=userInfo.getAttribute("username").toString();//开票人 + + confirmBizObject.setAttributeValue("id", confirmId); + confirmBizObject.setAttributeValue("sid", PasswordGenerateUtil.getRandom(64, PasswordGenerateUtil.TYPE.LETTER_CAPITAL)); + confirmBizObject.setAttributeValue("yylxdm", "1"); + confirmBizObject.setAttributeValue("fplxdm", "026"); + confirmBizObject.setAttributeValue("kplx", "0"); + confirmBizObject.setAttributeValue("tspz", "00"); + confirmBizObject.setAttributeValue("xhdwdzdh", xhdwdzdh); + confirmBizObject.setAttributeValue("xhdwyhzh", ownAccount.getAttribute("acc_number").toString()); + confirmBizObject.setAttributeValue("ghdwsbh", certid); + confirmBizObject.setAttributeValue("ghdwmc", customerName); + confirmBizObject.setAttributeValue("ghdwdzdh", address_tel); + confirmBizObject.setAttributeValue("ghdwyhzh", acc_bank); + confirmBizObject.setAttributeValue("hsslbs", "0"); + confirmBizObject.setAttributeValue("zhsl", ""); + confirmBizObject.setAttributeValue("hjje", hjje); + confirmBizObject.setAttributeValue("hjse", hjse); + confirmBizObject.setAttributeValue("jshj", MathUtil.add( hjje,hjse )); + confirmBizObject.setAttributeValue("fhr", ""); + confirmBizObject.setAttributeValue("kpr", username); + confirmBizObject.setAttributeValue("zyspmc", ""); + confirmBizObject.setAttributeValue("spsm", ""); + confirmBizObject.setAttributeValue("ssyf", ""); + confirmBizObject.setAttributeValue("tzdbh", ""); + confirmBizObject.setAttributeValue("yfpdm", ""); + confirmBizObject.setAttributeValue("yfphm", ""); + confirmBizObject.setAttributeValue("GMF_DZYX", ""); + if("01".equals(customertype)){ + confirmBizObject.setAttributeValue("GMF_SJHM", familyTel); + }else{ + confirmBizObject.setAttributeValue("GMF_SJHM", mobile); + } + confirmBizObject.setAttributeValue("GMF_OPENID", ""); + + + confirmBizObject = this.initTabeUserInfo(confirmBizObject); + confirmManager.saveObject(confirmBizObject); + + InvoiceRequest invoiceRequest = new InvoiceRequest(); + + ResultPojo result = invoiceRequest.send(confirmBizObject,confirmDetailList); + if(result.getCode()==0){ + InvoiceRequestBase responseBase = (InvoiceRequestBase) result.getData(); + String returncode = responseBase.getBody().getReturncode(); + String returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>"+returncode); + System.out.println("[OK][returnmsg]=>>>"+returnmsg); + if("0".equals(returncode)){ + System.out.println("[OK][SUCCESS]"); + for(BizObject confirmDetailBizObject : confirmDetailList){ + String invoiceId = confirmDetailBizObject.getAttribute("invoice_id").toString(); + String invoice_type = confirmDetailBizObject.getAttribute("invoice_type").toString(); + //if("fund".equals(invoice_type)){ + //invoiceFundManager.createQuery("update o set INVOICE_STATUS=:invoicestatus where ID=:id ").setParameter("id",invoiceId).setParameter("invoicestatus","3").executeUpdate(); + //}else{ + invoiceRentManager.createQuery("update o set INVOICE_STATUS=:invoicestatus where ID=:id ").setParameter("id",invoiceId).setParameter("invoicestatus","3").executeUpdate(); + //} + } + return "开票申请成功"; + }else{ + return returnmsg; + } + }else{ + System.out.println("[FAIL]=>>>"+result.getMsg()); + return result.getMsg(); + } + + }else{ + return "操作失败!"; + } + } + /** + * 退回申请开票 + * @param tx + * @return + * @throws Exception + */ + public String backInvoice(JBOTransaction tx) throws Exception{ + BizObjectManager lriiManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + //BizObjectManager lfiiManager = JBOFactory.getBizObjectManager(LI_FUND_INVOICE_INFO.CLASS_NAME); + tx.join(lriiManager); + //tx.join(lfiiManager); + String[] rentPlanids = this.getIds().split("@"); + for(int i=0;i[INVOICE_LOCAL_PATH]不存在"; + } + + String sid = this.getSid(); + InvoiceRequestBase invoiceRequestBase = new InvoiceRequestBase(); + InvoiceRequestHead invoiceRequestHead = new InvoiceRequestHead(); + invoiceRequestHead.setAppid(appId); + invoiceRequestHead.setSid(sid); + + invoiceRequestBase.setHead(invoiceRequestHead); + invoiceRequestBase.setComment("查询开票结果"); + invoiceRequestBase.setId("CXKPJG"); + invoiceRequestBase.setVersion("1.0"); + + String xml = JaxbUtil.convertToXml(invoiceRequestBase); + ResultPojo result = doPost(xml); + + //根据sid拿到LI_INVOICE_CONFIRM表的id(租金发票表的id和此表id都保存在LI_INVOICE_CONFIRM_Detail表中) + BizObjectManager confirmManager = JBOFactory.getBizObjectManager(LI_INVOICE_CONFIRM.CLASS_NAME); + BizObject confirm = confirmManager.createQuery("sid=:sid").setParameter("sid", sid).getSingleResult(false); + String invoice_confirm_id = confirm.getAttribute("id").toString(); + + String id=UUID.randomUUID().toString().replaceAll("-", ""); + if(result.getCode()==0){ + InvoiceRequestBase responseBase = (InvoiceRequestBase) result.getData(); + String returncode = responseBase.getBody().getReturncode(); + String returnmsg = responseBase.getBody().getReturnmsg(); + + String fplxdm = responseBase.getBody().getFplxdm(); + String fpdm = responseBase.getBody().getFpdm(); + String fphm = responseBase.getBody().getFphm(); + String kprq = responseBase.getBody().getKprq(); + String hjje = responseBase.getBody().getHjje(); + String skm = responseBase.getBody().getSkm(); + String jym = responseBase.getBody().getJym(); + String pdfurl = ""; + String localFile = ""; + String path=""; + if("0".equals(returncode)){ + pdfurl = responseBase.getBody().getPdfurl(); + SimpleDateFormat dateFormat = new SimpleDateFormat("YYYYMMdd"); + String ydm = dateFormat.format(new Date()); + + path = File.separator + ydm.substring(0, 4)+File.separator + ydm.substring(4, 6)+File.separator + ydm.substring(6, 8); + path = path+File.separator+PasswordGenerateUtil.getRandom(50, PasswordGenerateUtil.TYPE.LETTER_CAPITAL)+".pdf"; + localFile = INVOICE_LOCAL_PATH+path; + try { + DownloadPdfUtil.go(pdfurl,localFile); + } catch (Exception e) { + e.printStackTrace(); + return "下载PDF失败"; + } + } + try { + path = SecurityUtil.encrypt(path, "invoice"); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + + BizObjectManager confirmResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_RESULT.CLASS_NAME); + BizObject confirmResult = confirmResultManager.createQuery("sid=:sid").setParameter("sid", sid).getSingleResult(false); + if(confirmResult==null){ + BizObject confirmResultNew = confirmResultManager.newObject(); + confirmResultNew.setAttributeValue("ID",id); + confirmResultNew.setAttributeValue("sid",sid); + confirmResultNew.setAttributeValue("fplxdm",fplxdm); + confirmResultNew.setAttributeValue("fpdm",fpdm ); + confirmResultNew.setAttributeValue("fphm",fphm); + confirmResultNew.setAttributeValue("kprq",kprq); + confirmResultNew.setAttributeValue("hjje",hjje); + confirmResultNew.setAttributeValue("skm",skm); + confirmResultNew.setAttributeValue("jym",jym); + confirmResultNew.setAttributeValue("pdfurl",pdfurl); + confirmResultNew.setAttributeValue("localFile",path ); + confirmResultNew.setAttributeValue("returncode",returncode); + confirmResultNew.setAttributeValue("returnmsg",returnmsg); + confirmResultManager.saveObject(confirmResultNew); + }else{ + confirmResultManager.createQuery("update o set fplxdm=:fplxdm,fpdm=:fpdm,fphm=:fphm,kprq=:kprq,hjje=:hjje,skm=:skm,jym=:jym,pdfurl=:pdfurl,localFile=:localFile,returncode=:returncode,returnmsg=:returnmsg where sid=:sid ") + .setParameter("sid",sid).setParameter("fplxdm","fplxdm") + .setParameter("fpdm",fpdm).setParameter("fphm","fphm") + .setParameter("kprq",kprq).setParameter("hjje","hjje") + .setParameter("skm",skm).setParameter("jym","jym") + .setParameter("pdfurl",pdfurl).setParameter("localFile","localFile") + .setParameter("returncode",returncode).setParameter("returnmsg","returnmsg") + .executeUpdate(); + + } + System.out.println("[OK][returncode]=>>>"+returncode); + System.out.println("[OK][returnmsg]=>>>"+returnmsg); + if("0".equals(returncode)){ + //System.out.println("[OK][SUCCESS]"); + //修改租金发票信息表的状态 + BizObjectManager confirmDetailManager = JBOFactory.getBizObjectManager(LI_INVOICE_CONFIRM_DETAIL.CLASS_NAME); + BizObject confirmDetail = confirmDetailManager.createQuery("invoice_confirm_id=:invoice_confirm_id").setParameter("invoice_confirm_id", invoice_confirm_id).getSingleResult(false); + String invoiceId = confirmDetail.getAttribute("invoice_id").toString(); + + BizObjectManager invoiceRentManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME, tx); + invoiceRentManager.createQuery("update o set INVOICE_STATUS=:invoicestatus where ID=:id ").setParameter("id",invoiceId).setParameter("invoicestatus","5").executeUpdate(); + + + return "开票申请成功"; + }else{ + return returnmsg; + } + }else{ + System.out.println("[FAIL]=>>>"+result.getMsg()); + return result.getMsg(); + } + /* + if(result.getCode().toString()!="0"){ + return "查询失败"; + } + + System.out.println("result=>>>"+JSONObject.toJSONString(result)); + showResult(result); + return "查询成功";*/ + + +} + public ResultPojo doPost(String xml){ + Configure config = Configure.getInstance(); + String url=""; + try { + url = config.getConfigure("INVOICE_URL"); + } catch (Exception e1) { + // TODO Auto-generated catch block + e1.printStackTrace(); + } + + HttpHeaders httpHeaders = new HttpHeaders(); + MultiValueMap param = new LinkedMultiValueMap<>(); + httpHeaders.setContentType(MediaType.APPLICATION_FORM_URLENCODED); + param.add("bw",xml) ; + RestTemplate restTemplate = new RestTemplate(); + HttpEntity> entity = new HttpEntity<>(param, httpHeaders); + ResponseEntity response = null ; + try { + response = restTemplate.exchange(url, HttpMethod.POST, entity, String.class); + }catch (Exception e){ + return ResultUtil.error(ResponseEnum.NETWORK.getMsg()); + } + System.out.println(response.getBody()); + InvoiceRequestBase r = JaxbUtil.converyToJavaBean(response.getBody(), InvoiceRequestBase.class); + return ResultUtil.success(r); + } + private void showResult(ResultPojo result) { + if(result.getCode()==0){ + InvoiceRequestBase responseBase = (InvoiceRequestBase) result.getData(); + String returncode = responseBase.getBody().getReturncode(); + String returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>"+returncode); + System.out.println("[OK][returnmsg]=>>>"+returnmsg); + if("0".equals(returncode)){ + System.out.println("[OK][SUCCESS]"); + } + }else{ + System.out.println("[FAIL]=>>>"+result.getMsg()); + } + } + +}