From 26200f9c4f24a481ac3eb3636746c3728190887d Mon Sep 17 00:00:00 2001 From: liuzhao Date: Thu, 27 Sep 2018 20:32:11 +0800 Subject: [PATCH] =?UTF-8?q?=E5=9B=9E=E7=A7=9F=E5=8F=91=E7=A5=A8=E6=89=93?= =?UTF-8?q?=E5=8D=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../InvoiceRentInterestPrint.jsp | 62 + .../InvoiceRentPlanConfirmPrint.jsp | 84 ++ .../InvoiceConfirmPrintList.jsp | 96 ++ .../InvoicePrintResultListBack.jsp | 65 ++ WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 27 +- .../backRentPrintInvoiceManager.java | 1014 +++++++++++++++++ .../rentPlanInvoiceDirectManager.java | 10 +- 7 files changed, 1352 insertions(+), 6 deletions(-) create mode 100644 WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentInterestPrint.jsp create mode 100644 WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentPlanConfirmPrint.jsp create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmPrintList.jsp create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoicePrintResultListBack.jsp create mode 100644 src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java diff --git a/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentInterestPrint.jsp b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentInterestPrint.jsp new file mode 100644 index 000000000..5564be5cd --- /dev/null +++ b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentInterestPrint.jsp @@ -0,0 +1,62 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-08-09 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceRentInterestPrint"); + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "1"; //只读模式 + dwTemp.setPageSize(10); + dwTemp.MultiSelect=true; + 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","申请开票","申请开票","ApplyInvoice()","","","","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/Apzl/InvoiceManager/InvoiceRentPlanConfirmPrint.jsp b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentPlanConfirmPrint.jsp new file mode 100644 index 000000000..6b22fc2cd --- /dev/null +++ b/WebContent/Tenwa/Apzl/InvoiceManager/InvoiceRentPlanConfirmPrint.jsp @@ -0,0 +1,84 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-09-03 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceRentConfirmPrint"); + 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","退回","退回","gobackInvoice()","","","","btn_icon_return",""}, + {"true","","Button","确认提交","确认提交","submitInvoice()","","","","btn_icon_submit",""}, + }; +%><%@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/InvoiceConfirmPrintList.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmPrintList.jsp new file mode 100644 index 000000000..321e9ab31 --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceConfirmPrintList.jsp @@ -0,0 +1,96 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-08-06 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceConfirmPrintList"); + ASObjectWindow dwTemp = new ASObjectWindow(CurPage,doTemp,request); + dwTemp.Style="1"; //--设置为Grid风格-- + dwTemp.ReadOnly = "1"; //只读模式 + dwTemp.setPageSize(10); + dwTemp.MultiSelect=true; + 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","查询","查询","selectInvoice()","","","","",""}, + {"true","","Button","发票打印申请","发票打印申请","printInvoice()","","","","",""}, + //{"true","","Button","批量下载","批量下载","lotdown()","","","","btn_icon_transfer",""}, + {"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/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoicePrintResultListBack.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoicePrintResultListBack.jsp new file mode 100644 index 000000000..c790b8429 --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoicePrintResultListBack.jsp @@ -0,0 +1,65 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-09-27 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoicePrintResultListBack"); + 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","打印","打印","print()","","","","",""}, + {"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 201fbf749..9ea741dcc 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -3759,7 +3759,7 @@ - + @@ -3778,5 +3778,30 @@ + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java new file mode 100644 index 000000000..fca9e921f --- /dev/null +++ b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java @@ -0,0 +1,1014 @@ +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.HashMap; +import java.util.List; +import java.util.Map; +import java.util.UUID; + +import org.apache.commons.lang.StringUtils; +import org.beetl.ext.fn.ParseDouble; +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_PRINT_RESULT; +import jbo.app.tenwa.calc.LI_INVOICE_RESULT; +import jbo.app.tenwa.calc.VI_INVOICE_RENT_CONFIRM_PRINT; +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; +import jbo.app.tenwa.customer.CUSTOMER_COMPANY; +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.BizObjectQuery; +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.amarsoft.awe.util.ASResultSet; +import com.amarsoft.awe.util.SqlObject; +import com.amarsoft.awe.util.Transaction; +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.InvoiceRequestBody; +import com.tenwa.app.invoice.request.InvoiceRequestHead; +import com.tenwa.app.invoice.request.InvoiceRequestInput; +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.comm.util.jboutil.DataOperatorUtil; +import com.tenwa.flow.action.comm.BaseTable; +import com.tenwa.util.SecurityUtil; + +public class backRentPrintInvoiceManager extends BaseTable { + + private String planIds; + private String ids; + private String moneyTypes; + private String sid; + private String newSids; + + public String getNewSids() { + return newSids; + } + + public void setNewSids(String newSids) { + this.newSids = newSids; + } + + 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; + } + + /**方法1 + *回租--利息, 逾期利息(本质是罚息)选择申请开票的数据 + * 纸质发票 + * @param tx + * @return + * @throws Exception + */ + public String selectApplyConfirm(JBOTransaction tx) throws Exception { + + BizObjectManager lriiManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + BizObjectManager viInvoiceRentManager = JBOFactory.getBizObjectManager(VI_LI_INVOICE_RENT.CLASS_NAME); + + tx.join(lriiManager); + tx.join(viInvoiceRentManager); + String[] planIds = this.getPlanIds().split("@"); + String invoice_status = "1"; + String bill_type = "General";//普票 + 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 = ""; + String invoice_object= "back_rent"; + + for (int i = 0; i < planIds.length; i++) { + String planId = planIds[i]; + // BizObject viInvoiceRent = + // viInvoiceRentManager.createQuery("plan_id=:plan_id").setParameter("plan_id", + // planId).getSingleResult(false); + @SuppressWarnings("unchecked") + List 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 and tax_type=:tax_type").setParameter("plan_id", planId).setParameter("tax_type", tax_type).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); + rentInvoiceInfo.setAttributeValue("invoice_object",invoice_object); + + + 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 "开票申请成功"; + } + /**方法2 + * 手续费/gps/名义货价 开票申请--纸质发票 + * @param tx + * @return + * @throws Exception + */ + 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 = "electronic"; + String invoice_money = ""; + String plan_id = ""; + String PAYMENT_NUMBER = ""; + String TAX_REG_CODE = ""; + String TAX_BANK = ""; + String TAX_ACC = ""; + String moneytype = ""; + String contract_id = ""; + String invoice_object= "back_rent"; + + for (int i = 0; i < moneyTypes.length; i++) { + String id = UUID.randomUUID().toString().replaceAll("-", ""); + String[] str = moneyTypes[i].split("#"); + contract_id = str[0]; + moneytype = str[1]; + // Map 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); + rentInvoiceInfo.setAttributeValue("invoice_object",invoice_object); + 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 "开票申请成功"; + } + + /**方法3 + * 开票确认提交-回租纸质 + * + * @param tx + * @return + * @throws Exception + */ + public String invoiceConfirmSubmit(JBOTransaction tx) throws Exception { + Transaction Sqlca = null; + 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 < rentInvoiceids.length; i++) { + rentPlanIdList.add("'" + rentInvoiceids[i] + "'"); + } + + String customerid = ""; + String customerName = ""; + String rentPlanstr = StringUtils.join(rentPlanIdList.toArray(), ","); + BizObjectManager invoiceManager = JBOFactory.getBizObjectManager(VI_INVOICE_RENT_CONFIRM_PRINT.CLASS_NAME); + @SuppressWarnings("unchecked") + List checkInvoiceList = (List) invoiceManager.createQuery("SELECT O.contract_id,O.customer_name,O.CUSTOMER_ID FROM O WHERE O.id IN (" + rentPlanstr + ") GROUP BY O.contract_id").getResultList(false); + for (BizObject bizObject : checkInvoiceList) { + String contract_id = bizObject.getAttribute("contract_id").toString(); + customerid = bizObject.getAttribute("CUSTOMER_ID").toString(); + customerName = bizObject.getAttribute("customer_name").toString(); + + List boList = invoiceManager.createQuery("contract_id=:contract_id and id IN ("+rentPlanstr+")").setParameter("contract_id", contract_id).getResultList(false); + List list = new ArrayList(); + for (BizObject bizObject2 : boList) { + String id = bizObject2.getAttribute("id").toString(); + list.add(id); + } + + String[] ids = new String[list.size()]; + + list.toArray(ids); + + 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.00; + + for (int i = 0; i < ids.length; i++) { + String invoiceId = ids[i];// li_rent_invoice_info的id + + BizObjectManager confirmDetailManager = JBOFactory.getBizObjectManager(LI_INVOICE_CONFIRM_DETAIL.CLASS_NAME); + tx.join(confirmDetailManager); + BizObject confirmDetailBizObject = confirmDetailManager.newObject(); + + Double invoiceMoney = 0.00; + String planid = ""; + String planList = ""; + String TAX_TYPE = ""; + String spbm = ""; + String spmc = ""; + String taxType = ""; + + + BizObject invoiceRentBizObject = invoiceRentManager.createQuery("ID=:id ").setParameter("id", invoiceId).getSingleResult(false); + invoiceMoney = new BigDecimal(invoiceRentBizObject.getAttribute("INVOICE_MONEY").getString()).setScale(2,BigDecimal.ROUND_HALF_UP).doubleValue(); + TAX_TYPE = invoiceRentBizObject.getAttribute("TAX_TYPE").getString(); + planid = invoiceRentBizObject.getAttribute("plan_id").toString(); + if (planid != null && !"".equals(planid)) { + BizObjectManager rentPlanManager = JBOFactory.getBizObjectManager(LC_RENT_PLAN.CLASS_NAME); + + BizObject rentPlan = rentPlanManager.createQuery("id=:plan_id").setParameter("plan_id", planid).getSingleResult(false); + planList = rentPlan.getAttribute("plan_list").toString(); + planList = Num2ChineseUtil.format(planList); + if ("overinterest".equals(TAX_TYPE)) { + planList += " " + "逾期利息"; + } + taxType = "租息"; + spmc = "租赁利息"; + } else { + if ("myhj".equals(TAX_TYPE)) { + spmc = "名义货价"; + taxType = "留购价"; + } else if ("sxf".equals(TAX_TYPE)) { + spmc = "手续费"; + taxType = "手续费"; + } else if ("gps".equals(TAX_TYPE)) { + spmc = "GPS安装服务费"; + taxType = "GPS"; + } else { + return "金额类型不存在!"; + } + + } + + String sql = "SELECT getTaxs('02','"+taxType+"',O.inputtime) AS tax FROM lb_contract_info O WHERE O.id=:contract_id"; + Map conditon = new HashMap(); + conditon.put("contract_id", contract_id); + List> data = DataOperatorUtil.getDataBySql(tx, sql, conditon); + sl = Double.parseDouble(data.get(0).get("tax")); + conditon.clear(); + + Double se = Double.valueOf(df2.format(invoiceMoney * sl)); + + confirmDetailBizObject.setAttributeValue("dj", ""); + confirmDetailBizObject.setAttributeValue("je", invoiceMoney); + + hjje = MathUtil.add(hjje, invoiceMoney); + hjse = MathUtil.add(hjse, se); + + confirmDetailBizObject.setAttributeValue("invoice_type",TAX_TYPE); + confirmDetailBizObject.setAttributeValue("invoice_id",invoiceId); + confirmDetailBizObject.setAttributeValue("spsl", ""); + confirmDetailBizObject.setAttributeValue("dw", ""); + confirmDetailBizObject.setAttributeValue("fphxz", "0"); + confirmDetailBizObject.setAttributeValue("spmc", spmc); + + confirmDetailBizObject.setAttributeValue("spsm", ""); + confirmDetailBizObject.setAttributeValue("ggxh", planList); + confirmDetailBizObject.setAttributeValue("invoice_confirm_id", + confirmId); + confirmDetailBizObject.setAttributeValue("sl", sl); + confirmDetailBizObject.setAttributeValue("se", se); + confirmDetailBizObject.setAttributeValue("hsbz", "0"); + + Configure config = Configure.getInstance(); + try { + spbm = config.getConfigure("INVOICE_SPBM"); + } catch (Exception e) { + e.printStackTrace(); + return "读取a3web的开票接口配置文件失败"; + } + + confirmDetailBizObject.setAttributeValue("spbm", spbm); + confirmDetailBizObject.setAttributeValue("zxbm", ""); + confirmDetailBizObject.setAttributeValue("yhzcbs", "0"); + confirmDetailBizObject.setAttributeValue("slbs", ""); + confirmDetailBizObject.setAttributeValue("zzstsgl", ""); + + confirmDetailBizObject = this.initTabeUserInfo(confirmDetailBizObject); + confirmDetailManager.saveObject(confirmDetailBizObject); + + confirmDetailList.add(confirmDetailBizObject); + } + + if (confirmDetailList.size() > 0) { + 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();// 开票人 + //向list列表中添加数据 + confirmBizObject.setAttributeValue("id", confirmId); + confirmBizObject.setAttributeValue("sid",PasswordGenerateUtil.getRandom(64,PasswordGenerateUtil.TYPE.LETTER_CAPITAL)); + confirmBizObject.setAttributeValue("yylxdm", "1"); + confirmBizObject.setAttributeValue("fplxdm", "007");//普票 + 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", ""); + confirmBizObject.setAttributeValue("FIELD3", "back_rent");//回租 + 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(); + invoiceRentManager.createQuery("update o set INVOICE_STATUS=:invoicestatus where ID=:id ").setParameter("id",invoiceId) + .setParameter("invoicestatus","3").executeUpdate(); + } + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + + } else { + return "操作失败!"; + } + // =================================================== + } + return "开票确认成功"; + + } + + /**方法4 + * 退回申请开票 + * + * @param tx + * @return + * @throws Exception + */ + public String backInvoice(JBOTransaction tx) throws Exception { + BizObjectManager lriiManager = JBOFactory.getBizObjectManager(LI_RENT_INVOICE_INFO.CLASS_NAME); + tx.join(lriiManager); + String[] rentPlanids = this.getIds().split("@"); + for (int i = 0; i < rentPlanids.length; i++) { + lriiManager.createQuery("update o set INVOICE_STATUS='2' where ID=:id ") + .setParameter("id", rentPlanids[i]).executeUpdate(); + } + return "操作成功!"; + } + /** + * 方法5 + * 发票开具查询--回租纸质发票 + * 生成需要的发票号码和发票代码用于发票打印 + * @param tx + * @return + * @throws JBOException + */ + public String selectConfirm(JBOTransaction tx) throws JBOException { + + Configure config = Configure.getInstance(); + String INVOICE_LOCAL_PATH = ""; + + String appId = ""; + try { + INVOICE_LOCAL_PATH = config.getConfigure("INVOICE_LOCAL_PATH"); + + appId = config.getConfigure("INVOICE_APPID"); + } catch (Exception e) { + e.printStackTrace(); + return "a3web->[INVOICE_LOCAL_PATH]不存在"; + } + + String[] sids = this.getSid().split("@"); + String sid = ""; + for (int i = 0; i < sids.length; i++) { + sid = sids[i]; + 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); + System.out.println(xml); + 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 path = ""; + String localF = ""; + + 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", ""); + confirmResultNew.setAttributeValue("localFile", ""); + 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,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("returncode", returncode) + .setParameter("returnmsg", returnmsg) + .executeUpdate(); + } + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + if ("0".equals(returncode)) { + // 修改租金发票信息表的状态 + 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(); + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + } + return "查询成功!"; + + /* + * if(result.getCode().toString()!="0"){ return "查询失败"; } + * + * System.out.println("result=>>>"+JSONObject.toJSONString(result)); + * showResult(result); return "查询成功"; + */ + + } + /** + * 方法6 + * 方法5中调用此方法 + * @param xml + * @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); + } + /** + * 显示接口返回的结果 + * 此方法未使用 + * @param result + */ + 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()); + } + } + + /** + * 回租打印发票申请 + * @return + */ + public String printInvoice(JBOTransaction tx){ + Configure config = Configure.getInstance(); + String appId = ""; + try { + //获取配置文件中appid + appId = config.getConfigure("INVOICE_APPID"); + } catch (Exception e) { + e.printStackTrace(); + return "a3web->[INVOICE_LOCAL_PATH]不存在"; + } + + String[] sids = this.getSid().split("@"); + String sid = ""; + String fpdm = ""; + String fphm = ""; + String newSid =""; + String invoice_confirm_id = ""; + String ghdwmc = ""; + String invoice_type = "back_rent";//回租 + for (int i = 0; i < sids.length; i++) { + sid = sids[i]; + + BizObject invoiceResult; + try { + invoiceResult = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LI_INVOICE_RESULT", "sid=:sid").setParameter("sid", sid).getSingleResult(false); + + if(invoiceResult==null){ + return "请选择已查询的发票!"; + }else{ + fpdm = invoiceResult.getAttribute("fpdm").toString(); + fphm = invoiceResult.getAttribute("fphm").toString(); + } + } catch (JBOException e) { + e.printStackTrace(); + } + + newSid = PasswordGenerateUtil.getRandom(64,PasswordGenerateUtil.TYPE.LETTER_CAPITAL); + + InvoiceRequestBase invoiceRequestBase = new InvoiceRequestBase(); + InvoiceRequestHead invoiceRequestHead = new InvoiceRequestHead(); + InvoiceRequestBody invoiceRequestBody = new InvoiceRequestBody(); + InvoiceRequestInput invoiceRequestInput = new InvoiceRequestInput(); + + invoiceRequestHead.setAppid(appId); + invoiceRequestHead.setSid(newSid); + + invoiceRequestInput.setFplxdm("007"); + invoiceRequestInput.setFpdm(fpdm); + invoiceRequestInput.setFphm(fphm); + invoiceRequestInput.setDylx("9"); + invoiceRequestInput.setDyfs("1"); + invoiceRequestInput.setDyjmc(""); + + invoiceRequestBody.setYylxdm("1"); + invoiceRequestBody.setInput(invoiceRequestInput); + invoiceRequestBase.setHead(invoiceRequestHead); + invoiceRequestBase.setBody(invoiceRequestBody); + invoiceRequestBase.setComment("发票打印"); + invoiceRequestBase.setId("FPDY"); + invoiceRequestBase.setVersion("1.0"); + + String xml = JaxbUtil.convertToXml(invoiceRequestBase); + System.out.println(xml); + ResultPojo result = doPostPrint(xml); + + // 根据sid拿到LI_INVOICE_CONFIRM表的id(li_rent_invoice_info表的id和此表id都保存在LI_INVOICE_CONFIRM_Detail表中) + BizObjectManager confirmManager; + try { + confirmManager = JBOFactory.getBizObjectManager(LI_INVOICE_CONFIRM.CLASS_NAME); + BizObject confirm = confirmManager.createQuery("sid=:sid").setParameter("sid", sid).getSingleResult(false); + invoice_confirm_id = confirm.getAttribute("id").toString(); + ghdwmc = confirm.getAttribute("ghdwmc").toString();//购货单位名称 + } catch (JBOException e) { + e.printStackTrace(); + } + + 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(); + + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + if ("0".equals(returncode)) { + // 修改租金发票信息表的状态 + BizObjectManager confirmDetailManager; + BizObjectManager invoicePrintResultManager; + try { + //发票打印请求成功,将数据插入到li_invoice_print_result + invoicePrintResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + BizObject invoicePrintResult = invoicePrintResultManager.newObject(); + invoicePrintResult.setAttributeValue("ID", id); + invoicePrintResult.setAttributeValue("fpdm", fpdm); + invoicePrintResult.setAttributeValue("fphm", fphm); + invoicePrintResult.setAttributeValue("ghdwmc", ghdwmc); + invoicePrintResult.setAttributeValue("new_sid", newSid); + invoicePrintResult.setAttributeValue("invoice_type", invoice_type); + try { + invoicePrintResult = this.initTabeUserInfo(invoicePrintResult); + } catch (Exception e) { + // TODO Auto-generated catch block + e.printStackTrace(); + } + invoicePrintResultManager.saveObject(invoicePrintResult); + + //获取li_rent_invoice_info的id并修改其状态 + 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", "7").executeUpdate(); + + } catch (JBOException e) { + e.printStackTrace(); + } + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + } + return "打印请求成功!"; + } + //打印发票 + public ResultPojo doPostPrint(String xml) { + Configure config = Configure.getInstance(); + String url = ""; + try { + url = config.getConfigure("INVOICE_URL"); + } catch (Exception e1) { + 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); + } + /** + * 回租发票纸质打印 + * @param tx + * @return + */ + public String print(JBOTransaction tx){ + Configure config = Configure.getInstance(); + String appId = ""; + try { + //获取配置文件中appid + appId = config.getConfigure("INVOICE_APPID"); + } catch (Exception e) { + e.printStackTrace(); + return "a3web->[INVOICE_LOCAL_PATH]不存在"; + } + + String[] newSids = this.newSids.split("@"); + String newSid =""; + //String invoice_confirm_id = ""; + //循环遍历选中的sid + for (int i = 0; i < newSids.length; i++) { + newSid = newSids[i]; + //拼xml + InvoiceRequestBase invoiceRequestBase = new InvoiceRequestBase(); + InvoiceRequestHead invoiceRequestHead = new InvoiceRequestHead(); + + invoiceRequestHead.setAppid(appId); + invoiceRequestHead.setSid(newSid); + + invoiceRequestBase.setHead(invoiceRequestHead); + invoiceRequestBase.setComment("查询结果"); + invoiceRequestBase.setId("CXJG"); + invoiceRequestBase.setVersion("1.0"); + + String xml = JaxbUtil.convertToXml(invoiceRequestBase); + System.out.println(xml); + ResultPojo result = doPostPrint(xml); + + //获取返回的xml结果 + 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); + + BizObjectManager invoicePrintResultManager; + try { + //发票打印请求成功,更新数据插入到li_invoice_print_result + /* invoicePrintResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + invoicePrintResultManager.createQuery("update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid and invoice_type='back_rent'") + .setParameter("returncode", returncode).setParameter("returnmsg", returnmsg) + .setParameter("new_sid", newSid).executeUpdate();*/ + + JBOFactory.createBizObjectQuery(LI_INVOICE_PRINT_RESULT.CLASS_NAME, "update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid and invoice_type='back_rent'") + .setParameter("returncode", returncode).setParameter("returnmsg", returnmsg) + .setParameter("new_sid", newSid).executeUpdate(); + + } catch (JBOException e) { + e.printStackTrace(); + } + if ("0".equals(returncode)) { + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + } + return "打印成功!"; + } + +} diff --git a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java index 2da8a51ae..8f04b73ff 100644 --- a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java +++ b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java @@ -579,8 +579,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ if (confirmResult == null) { - BizObject confirmResultNew = confirmResultManager - .newObject(); + BizObject confirmResultNew = confirmResultManager.newObject(); confirmResultNew.setAttributeValue("ID", id); confirmResultNew.setAttributeValue("sid", sid); confirmResultNew.setAttributeValue("fplxdm", fplxdm); @@ -654,7 +653,6 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ invoiceRentManager.createQuery("update o set INVOICE_STATUS=:invoicestatus where ID=:id ").setParameter("id", invoiceId) .setParameter("invoicestatus", "5").executeUpdate(); - // return "开票申请成功"; } else { return returnmsg; } @@ -769,6 +767,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ String newSid =""; String invoice_confirm_id = ""; String ghdwmc = ""; + String invoice_type = "direct_rent"; for (int i = 0; i < sids.length; i++) { sid = sids[i]; @@ -847,6 +846,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ invoicePrintResult.setAttributeValue("fphm", fphm); invoicePrintResult.setAttributeValue("ghdwmc", ghdwmc); invoicePrintResult.setAttributeValue("new_sid", newSid); + invoicePrintResult.setAttributeValue("invoice_type", invoice_type); try { invoicePrintResult = this.initTabeUserInfo(invoicePrintResult); } catch (Exception e) { @@ -865,7 +865,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ 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(); + .setParameter("invoicestatus", "7").executeUpdate(); } catch (JBOException e) { e.printStackTrace(); @@ -928,7 +928,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ //发票打印请求成功,更新数据插入到li_invoice_print_result invoicePrintResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); - invoicePrintResultManager.createQuery("update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid") + invoicePrintResultManager.createQuery("update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid and invoice_type='direct_rent'") .setParameter("returncode", returncode).setParameter("returnmsg", returnmsg) .setParameter("new_sid", newSid).executeUpdate();