From de61c32c03e526c27f28b32208239d72ca23c25b Mon Sep 17 00:00:00 2001 From: liuzhao Date: Wed, 24 Oct 2018 11:40:40 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8F=91=E7=A5=A8=E4=BD=9C=E5=BA=9F?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../ConfirmInvoice/InvoiceInvalidBackE.jsp | 64 ++++ .../ConfirmInvoice/InvoiceInvalidDirectZ.jsp | 64 ++++ .../ConfirmInvoice/InvoiceResultBackE.jsp | 66 ++++ .../ConfirmInvoice/InvoiceResultListZ.jsp | 66 ++++ WebContent/WEB-INF/etc/jbo/jbo_calc.xml | 6 +- .../backRentPrintInvoiceManager.java | 299 ++++++++++++++++-- .../rentPlanInvoiceDirectManager.java | 251 ++++++++++++++- .../lease/app/quartzmession/LBTESTinfo.java | 2 +- 8 files changed, 787 insertions(+), 31 deletions(-) create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidBackE.jsp create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidDirectZ.jsp create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultBackE.jsp create mode 100644 WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultListZ.jsp diff --git a/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidBackE.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidBackE.jsp new file mode 100644 index 000000000..ff3723076 --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidBackE.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-10-22 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceInvalidList"); + 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","发票作废查询","发票作废查询","InvalidQuery()","","","","",""}, + {"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(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/InvoiceInvalidDirectZ.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidDirectZ.jsp new file mode 100644 index 000000000..0bb2dc5bd --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceInvalidDirectZ.jsp @@ -0,0 +1,64 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-10-22 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceInvalidListZ"); + 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","发票作废查询","发票作废查询","InvalidQuery()","","","","",""}, + {"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(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/InvoiceResultBackE.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultBackE.jsp new file mode 100644 index 000000000..4f054f164 --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultBackE.jsp @@ -0,0 +1,66 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-10-22 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceResultList"); + 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","发票作废申请","发票作废申请","InvoiceInvalid()","","","","",""}, + {"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, + {"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(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/InvoiceResultListZ.jsp b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultListZ.jsp new file mode 100644 index 000000000..f6feed9a5 --- /dev/null +++ b/WebContent/Tenwa/Core/InvoiceManager/ConfirmInvoice/InvoiceResultListZ.jsp @@ -0,0 +1,66 @@ +<%@ page contentType="text/html; charset=GBK"%> +<%@ include file="/Frame/resources/include/include_begin_list.jspf"%><% + /* + Author: undefined 2018-10-22 + Content: + History Log: + */ + ASObjectModel doTemp = new ASObjectModel("InvoiceResultListZ"); + 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","发票作废申请","发票作废申请","InvoiceInvalid()","","","","",""}, + {"true","","Button","详情","详情","viewAndEdit()","","","","btn_icon_detail",""}, + {"true","","Button","删除","删除","if(confirm('确实要删除吗?'))as_delete(0,'alert(getRowCount(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 72ea5f22e..2847e9584 100644 --- a/WebContent/WEB-INF/etc/jbo/jbo_calc.xml +++ b/WebContent/WEB-INF/etc/jbo/jbo_calc.xml @@ -3769,7 +3769,11 @@ - + + + + + diff --git a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java index 73cd8985a..792b75ea6 100644 --- a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java +++ b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/backRentPrintInvoiceManager.java @@ -1,18 +1,29 @@ 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 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_INVALID; +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_LI_INVOICE_OTHERS; +import jbo.app.tenwa.calc.VI_LI_INVOICE_RENT; +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.lease.comm.LB_CONTRACT_INFO; + 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; @@ -22,33 +33,12 @@ 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; @@ -57,7 +47,6 @@ 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; @@ -65,7 +54,6 @@ 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 { @@ -74,6 +62,15 @@ public class backRentPrintInvoiceManager extends BaseTable { private String moneyTypes; private String sid; private String newSids; + private String userid; + + public String getUserid() { + return userid; + } + + public void setUserid(String userid) { + this.userid = userid; + } public String getNewSids() { return newSids; @@ -945,7 +942,11 @@ public class backRentPrintInvoiceManager extends BaseTable { } return returnmsg; } - //打印发票 + /** + * 打印发票,发票作废 + * @param xml + * @return + */ public ResultPojo doPostPrint(String xml) { Configure config = Configure.getInstance(); String url = ""; @@ -1058,5 +1059,247 @@ public class backRentPrintInvoiceManager extends BaseTable { } return returnmsg; } + /** + * 回租普票作废申请 + */ + public String InvoiceInvalid (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 lease_form = "back_rent";//回租 + String fplxdm = "007";//普票 + String returnmsg = ""; + String hjje = ""; + + for (int i = 0; i < sids.length; i++) { + sid = sids[i]; + + try { + BizObjectManager invoicePrintResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + String sql = "SELECT O.fpdm,O.fphm,lir.hjje,lir.sid,O.field1 FROM O "+ + "LEFT JOIN jbo.app.tenwa.calc.LI_INVOICE_RESULT lir ON O.fpdm=lir.fpdm AND O.fphm=lir.fphm "+ + "WHERE lir.sid=:sid"; + BizObject invoicePrintResult = invoicePrintResultManager.createQuery(sql).setParameter("sid", sid).getSingleResult(false); + + fpdm = invoicePrintResult.getAttribute("fpdm").toString(); + fphm = invoicePrintResult.getAttribute("fphm").toString(); + hjje = invoicePrintResult.getAttribute("hjje").toString(); + // 防止重复发票作废请求 field1(returncode) + String a = invoicePrintResult.getAttribute("field1")==null?"":invoicePrintResult.getAttribute("field1").toString(); + if("0".equals(a)){ + return "该发票作废申请已成功,请勿重复操作!"; + } + + } 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(fplxdm);//发票类型代码 + invoiceRequestInput.setZflx("1");//作废类型 + invoiceRequestInput.setFpdm(fpdm);//发票代码 + invoiceRequestInput.setFphm(fphm);//发票号码 + invoiceRequestInput.setHjje(hjje);//合计金额 + invoiceRequestInput.setZfr(this.getUserid().toString());//作废人 + + + invoiceRequestBody.setYylxdm("1"); + invoiceRequestBody.setInput(invoiceRequestInput); + invoiceRequestBase.setHead(invoiceRequestHead); + invoiceRequestBase.setBody(invoiceRequestBody); + invoiceRequestBase.setComment("发票作废"); + invoiceRequestBase.setId("FPZF"); + 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(); + returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + + //将返回的信息结果更新到LI_INVOICE_PRINT_RESULT + try { + BizObjectManager invoiceResultManger = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + invoiceResultManger.createQuery("UPDATE O SET invalid_apply=:returnmsg,field1=:returncode WHERE fpdm=:fpdm and fphm=:fphm ") + .setParameter("returnmsg", returnmsg).setParameter("returncode", returncode) + .setParameter("fpdm", fpdm).setParameter("fphm", fphm).executeUpdate(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + + + if ("0".equals(returncode)) { + // 修改租金发票信息表的状态 + BizObjectManager confirmDetailManager; + BizObjectManager invoiceInvalidManager; + try { + //发票作废请求成功,将数据插入到li_invoice_invalid + invoiceInvalidManager = JBOFactory.getBizObjectManager(LI_INVOICE_INVALID.CLASS_NAME, tx); + BizObject invoiceInvalid = invoiceInvalidManager.newObject(); + invoiceInvalid.setAttributeValue("ID", id); + invoiceInvalid.setAttributeValue("fpdm", fpdm); + invoiceInvalid.setAttributeValue("fphm", fphm); + invoiceInvalid.setAttributeValue("ghdwmc", ghdwmc); + invoiceInvalid.setAttributeValue("new_sid", newSid); + invoiceInvalid.setAttributeValue("lease_form", lease_form); + invoiceInvalid.setAttributeValue("fplxdm", fplxdm); + invoiceInvalid.setAttributeValue("field1", hjje);//hjje field1 合计金额 + try { + invoiceInvalid = this.initTabeUserInfo(invoiceInvalid); + } catch (Exception e) { + e.printStackTrace(); + } + invoiceInvalidManager.saveObject(invoiceInvalid); + + //获取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", "9").executeUpdate();//发票作废申请成功状态为9 + + } catch (JBOException e) { + e.printStackTrace(); + } + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + } + return returnmsg; + } + /** + * 回租普票作废查询 + * @param tx + * @return + */ + public String InvalidQuery(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 returnmsg = ""; + String checkReturncode = ""; + //循环遍历选中的sid + for (int i = 0; i < newSids.length; i++) { + newSid = newSids[i]; + + //防止重复查询 li_invoice_invalid + try { + BizObject queryResutBizObject = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LI_INVOICE_INVALID", "new_sid=:new_sid") + .setParameter("new_sid", newSid).getSingleResult(false); + checkReturncode = queryResutBizObject.getAttribute("returncode").toString(); + if("0".equals(checkReturncode)){ + return "请勿重复查询!"; + } + } catch (JBOException e1) { + e1.printStackTrace(); + } + + + //拼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(); + returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + BizObjectManager invoiceQuereyResultManager; + try { + //发票请求成功,更新数据插入到li_invoice_invalid + invoiceQuereyResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_INVALID.CLASS_NAME, tx); + + invoiceQuereyResultManager.createQuery("update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid and lease_form='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 returnmsg; + } } diff --git a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java index d5ec1f50f..635ca7003 100644 --- a/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java +++ b/src_tenwa/com/tenwa/apzl/invoicemanager/rentplaninvoice/rentPlanInvoiceDirectManager.java @@ -25,6 +25,7 @@ import jbo.app.tenwa.calc.LC_RENT_INCOME; 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_INVALID; 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_INCOME_CONFIRM; @@ -72,8 +73,15 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ private String moneyTypes; private String sid; private String newSids; + private String userid; + public String getUserid() { + return userid; + } + public void setUserid(String userid) { + this.userid = userid; + } public String getNewSids() { return newSids; } @@ -1259,7 +1267,7 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ return ResultUtil.success(r); } - //打印发票 + //打印发票,发票作废 public ResultPojo doPostPrint(String xml) { Configure config = Configure.getInstance(); String url = ""; @@ -1542,7 +1550,248 @@ public class rentPlanInvoiceDirectManager extends BaseTable{ } return returnmsg; } + /** + * 直租专票作废申请 + */ + public String InvoiceInvalid (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 lease_form = "direct_rent";//直租 + String fplxdm = "004";//专票 + String returnmsg = ""; + String hjje = ""; + //循环遍历页面传来的数据 + for (int i = 0; i < sids.length; i++) { + sid = sids[i]; + + try { + BizObjectManager invoicePrintResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + String sql = "SELECT O.fpdm,O.fphm,lir.hjje,lir.sid,O.field1 FROM O "+ + "LEFT JOIN jbo.app.tenwa.calc.LI_INVOICE_RESULT lir ON O.fpdm=lir.fpdm AND O.fphm=lir.fphm "+ + "WHERE lir.sid=:sid"; + BizObject invoicePrintResult = invoicePrintResultManager.createQuery(sql).setParameter("sid", sid).getSingleResult(false); + fpdm = invoicePrintResult.getAttribute("fpdm").toString(); + fphm = invoicePrintResult.getAttribute("fphm").toString(); + hjje = invoicePrintResult.getAttribute("hjje").toString(); + // 防止重复发票作废请求 field1(returncode) + String a = invoicePrintResult.getAttribute("field1")==null?"":invoicePrintResult.getAttribute("field1").toString(); + if("0".equals(a)){ + return "该发票作废申请已成功,请勿重复操作!"; + } + + } 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(fplxdm);//发票类型代码 + invoiceRequestInput.setZflx("1");//作废类型 + invoiceRequestInput.setFpdm(fpdm);//发票代码 + invoiceRequestInput.setFphm(fphm);//发票号码 + invoiceRequestInput.setHjje(hjje);//合计金额 + invoiceRequestInput.setZfr(this.getUserid().toString());//作废人 + + + invoiceRequestBody.setYylxdm("1"); + invoiceRequestBody.setInput(invoiceRequestInput); + invoiceRequestBase.setHead(invoiceRequestHead); + invoiceRequestBase.setBody(invoiceRequestBody); + invoiceRequestBase.setComment("发票作废"); + invoiceRequestBase.setId("FPZF"); + 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(); + returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + + //将返回的信息结果更新到LI_INVOICE_PRINT_RESULT + try { + BizObjectManager invoiceResultManger = JBOFactory.getBizObjectManager(LI_INVOICE_PRINT_RESULT.CLASS_NAME, tx); + invoiceResultManger.createQuery("UPDATE O SET invalid_apply=:returnmsg,field1=:returncode WHERE fpdm=:fpdm and fphm=:fphm ") + .setParameter("returnmsg", returnmsg).setParameter("returncode", returncode) + .setParameter("fpdm", fpdm).setParameter("fphm", fphm).executeUpdate(); + } catch (JBOException e1) { + e1.printStackTrace(); + } + + + if ("0".equals(returncode)) { + // 修改租金发票信息表的状态 + BizObjectManager confirmDetailManager; + BizObjectManager invoiceInvalidManager; + try { + //发票作废请求成功,将数据插入到li_invoice_invalid + invoiceInvalidManager = JBOFactory.getBizObjectManager(LI_INVOICE_INVALID.CLASS_NAME, tx); + BizObject invoiceInvalid = invoiceInvalidManager.newObject(); + invoiceInvalid.setAttributeValue("ID", id); + invoiceInvalid.setAttributeValue("fpdm", fpdm); + invoiceInvalid.setAttributeValue("fphm", fphm); + invoiceInvalid.setAttributeValue("ghdwmc", ghdwmc); + invoiceInvalid.setAttributeValue("new_sid", newSid); + invoiceInvalid.setAttributeValue("lease_form", lease_form); + invoiceInvalid.setAttributeValue("fplxdm", fplxdm); + invoiceInvalid.setAttributeValue("field1", hjje);//hjje field1 合计金额 + try { + invoiceInvalid = this.initTabeUserInfo(invoiceInvalid); + } catch (Exception e) { + e.printStackTrace(); + } + invoiceInvalidManager.saveObject(invoiceInvalid); + + //获取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", "9").executeUpdate();//发票作废申请成功状态为9 + + } catch (JBOException e) { + e.printStackTrace(); + } + } else { + return returnmsg; + } + } else { + System.out.println("[FAIL]=>>>" + result.getMsg()); + return result.getMsg(); + } + } + return returnmsg; + } + /** + * 直租专票作废查询 + * @param tx + * @return + */ + public String InvalidQuery(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 returnmsg = ""; + String checkReturncode = ""; + //循环遍历选中的sid + for (int i = 0; i < newSids.length; i++) { + newSid = newSids[i]; + + //防止重复查询 li_invoice_invalid + try { + BizObject queryResutBizObject = JBOFactory.createBizObjectQuery("jbo.app.tenwa.calc.LI_INVOICE_INVALID", "new_sid=:new_sid") + .setParameter("new_sid", newSid).getSingleResult(false); + checkReturncode = queryResutBizObject.getAttribute("returncode").toString(); + if("0".equals(checkReturncode)){ + return "请勿重复查询!"; + } + } catch (JBOException e1) { + e1.printStackTrace(); + } + + + //拼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(); + returnmsg = responseBase.getBody().getReturnmsg(); + + System.out.println("[OK][returncode]=>>>" + returncode); + System.out.println("[OK][returnmsg]=>>>" + returnmsg); + BizObjectManager invoiceQuereyResultManager; + try { + //发票请求成功,更新数据插入到li_invoice_invalid + invoiceQuereyResultManager = JBOFactory.getBizObjectManager(LI_INVOICE_INVALID.CLASS_NAME, tx); + + invoiceQuereyResultManager.createQuery("update O set returncode=:returncode,returnmsg=:returnmsg where new_sid=:new_sid and lease_form='direct_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 returnmsg; + } } diff --git a/src_tenwa/com/tenwa/lease/app/quartzmession/LBTESTinfo.java b/src_tenwa/com/tenwa/lease/app/quartzmession/LBTESTinfo.java index 50a17c760..f6a538914 100644 --- a/src_tenwa/com/tenwa/lease/app/quartzmession/LBTESTinfo.java +++ b/src_tenwa/com/tenwa/lease/app/quartzmession/LBTESTinfo.java @@ -41,7 +41,7 @@ public class LBTESTinfo implements Job{ String insertSql="INSERT INTO LC_SOURCE_OF_FUNDS (id, contract_no, businesstype, lease_acc_name)"+ " (SELECT REPLACE(UUID(), '-', '') AS id,"+ "lci.contract_no AS contract_no,"+ - "CASE lci.businesstype WHEN '2' THEN '汽车类传统' WHEN '3' THEN '传统类' ELSE '汽车类' END AS businesstype,"+ + "CASE lci.businesstype WHEN '2' THEN '传统类' WHEN '3' THEN '汽车类传统' ELSE '汽车类' END AS businesstype,"+ "CASE WHEN lci.businesstype='1' THEN oo.own_name ELSE oi.own_name END AS lease_acc_name FROM"+ " lb_contract_info lci "+ "LEFT JOIN LB_LESSOR_INFO lit"+