FindOrderRelationInvoiceDTO.java 9.4 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697
  1. package com.uas.eis.dto;
  2. import lombok.Data;
  3. import java.util.List;
  4. @Data
  5. public class FindOrderRelationInvoiceDTO {
  6. private String sid;//发票流水号,返回合并冲销的开票单为空
  7. private String orderNo;//开票单号
  8. private String createtime;//开票单的创建时间
  9. private Number invoiceType;//发票类型,合并冲销时为空;1:蓝票 2:红票
  10. private String invoiceLine;//发票种类,合并冲销时为空 p:普通发票(电票) c:普通发票(纸票) s:专用发票(纸票) b:专用发票(电子) e:收购发票(电票) f:收购发票(纸质) r:普通发票(卷式) bs:数电专票(电子) pc:数电普票(电子) es:数电专票(纸质) ec:数电普票(纸质)
  11. private String specificFactor;//1 成品油、35 矿产品;普通发票为空
  12. private Number invoiceState;//开票状态,合并冲销时为空 1:开票成功 2:开票失败
  13. private String exceptionMessage;//开票异常信息,开票失败状态时返回
  14. private String invoiceCode;//发票代码,仅开票成功会返回,发票种类为bs和pc时为空
  15. private String invoiceNumber;//发票号码,仅开票成功会返回,发票种类为bs和pc时为空
  16. private String allElectronicInvoiceNumber;//数电发票号码,仅数电发票开票成功会返回
  17. private String oldInvoiceCode;//原发票代码(红字发票开票成功后若有值回传),发票种类为bs和pc时为空
  18. private String oldInvoiceNumber;//原发票号码(红字发票开票成功后若有值回传),发票种类为bs和pc时为空
  19. private String oldAllElectronicInvoiceNu;//原数电发票号码(数电发票开票成功后若有值回传)
  20. private String invoiceTime;//开票日期,仅开票成功会返回
  21. private String invalidTime;//作废日期,暂时未用到
  22. private String rushRedState;//发票冲红状态(0 未冲红,1 全部冲红,2 部分冲红)
  23. private String pdfUrl;//发票pdf地址,仅开票成功时返回
  24. private String ofdUrl;//发票ofd地址,仅开票成功时返回
  25. private String imageUrl;//发票jpg地址,仅开票成功时返回
  26. private Number calcExcludingTaxAmount;//不含税金额,开票失败时不返回,含税金额和不含税金额任一数值返回为0,即为合并冲销
  27. private Number calcTaxAmount;//税额,开票失败时不返回
  28. private Number caleOrderAmount;//含税金额,开票失败时不返回,含税金额和不含税金额任一数值返回为0,即为合并冲销
  29. private String sellerTaxNo;//销方税号
  30. private String sellerName;//销方名称,仅开票成功会返回
  31. private String taxNo;//购方税号,仅开票成功会返回
  32. private String buyerName;//购方名称,仅开票成功会返回
  33. private String remark;//发票备注
  34. private String clerker;//开票员
  35. private String payee;//收款人
  36. private String checker;//复核人
  37. private String clerkId;//所属开票员id
  38. private String deptId;//所属部门id
  39. private String bField1;//主表自定义字段1
  40. private String bField2;//主表自定义字段2
  41. private String bField3;//主表自定义字段3
  42. private List<OrderDetailCallBackVOSDTO> orderDetailCallBackVOS;//发票来源的订单明细list
  43. private List<RelateRedInvoiceDTO> relateRedInvoiceList;//发票来源的订单明细list
  44. public String toMergeSql(int ioid,int detno){
  45. String sql = "merge into (" +
  46. " select ei_id,ei_indate,ei_updatedate,ei_detno,ei_ioid,ei_iocode,ei_biid,ei_bicode " +
  47. " ,ei_sid,ei_orderno,ei_createtime,ei_invoicetype,ei_invoiceline,ei_specificfactor,ei_invoicestate,ei_exceptionmessage,ei_invoicecode,ei_invoicenumber " +
  48. " ,ei_allelectronicinvoicenumber,ei_oldinvoicecode,ei_oldinvoicenumber,ei_oldallelectronicinvoicenu,ei_invoicetime,ei_invalidtime,ei_rushredstate,ei_pdfurl,ei_ofdurl " +
  49. " ,ei_imageurl,ei_calcexcludingtaxamount,ei_calctaxamount,ei_caleorderamount,ei_sellertaxno,ei_sellername,ei_taxno,ei_buyername,ei_remark,ei_clerker " +
  50. " ,ei_payee,ei_checker,ei_bfield1,ei_bfield2,ei_bfield3 " +
  51. " from elecinvoice where ei_ioid = " +ioid+
  52. " ) a USING ( " +
  53. " select io_id,io_code,io_biid,io_bicode, "+detno+" eiDetno " +
  54. " ,"+stringField(getSid())+" eiSid,"+stringField(getOrderNo())+" eiOrderno,"+timeField(getCreatetime())+" eiCreatetime,"+numberField(getInvoiceType())+" eiInvoicetype,"+stringField(getInvoiceLine())+" eiinvoiceline,"+stringField(getSpecificFactor())+" eiSpecificfactor,"+numberField(getInvoiceState())+" eiInvoicestate" +
  55. " ,"+stringField(getExceptionMessage())+" eiExceptionmessage,"+stringField(getInvoiceCode())+" eiInvoicecode,"+stringField(getInvoiceNumber())+" eiInvoicenumber " +
  56. " ,"+stringField(getAllElectronicInvoiceNumber())+" eiAllelectronicinvoicenumber,"+stringField(getOldInvoiceCode())+" eiOldinvoicecode,"+stringField(getOldInvoiceNumber())+" eiOldinvoicenumber,"+stringField(getOldAllElectronicInvoiceNu())+" eiOldallelectronicinvoicenu " +
  57. " ,"+timeField(getInvoiceTime())+" eiInvoicetime,"+timeField(getInvalidTime())+" eiInvalidtime,"+(getRushRedState())+" eiRushredstate " +
  58. " ,"+stringField(getPdfUrl())+" eiPdfurl,"+stringField(getOfdUrl())+" eiOfdurl,"+stringField(getImageUrl())+" eiImageurl,"+numberField(getCalcExcludingTaxAmount())+" eiCalcexcludingtaxamount,"+numberField(getCalcTaxAmount())+" eiCalctaxamount,"+numberField(getCaleOrderAmount())+" eiCaleorderamount" +
  59. " ,"+stringField(getSellerTaxNo())+" eiSellertaxno,"+stringField(getSellerName())+" eiSellername,"+stringField(getTaxNo())+" eiTaxno " +
  60. " ,"+stringField(getBuyerName())+" eiBuyername,"+stringField(getRemark())+" eiRemark,"+stringField(getClerker())+" eiClerker,"+stringField(getPayee())+" eiPayee,"+stringField(getChecker())+" eiChecker" +
  61. " ,"+stringField(getBField1())+" eiBfield1,"+stringField(getBField2())+" eiBfield2,"+stringField(getBField3())+" eiBfield3 " +
  62. " from dual,(select io_id,io_code,io_biid,io_bicode from invoiceorder where io_id = "+ioid+") " +
  63. ") b on (nvl(a.ei_orderno,' ') = b.eiorderno) " +
  64. "when matched then update set ei_updatedate=sysdate " +
  65. " ,ei_detno = eidetno,ei_sid = eisid,ei_createtime = eicreatetime,ei_invoicetype = eiinvoicetype,ei_invoiceline = eiinvoiceline,ei_specificfactor = eispecificfactor " +
  66. " ,ei_invoicestate = eiinvoicestate,ei_exceptionmessage = eiexceptionmessage,ei_invoicecode = eiinvoicecode,ei_invoicenumber = eiinvoicenumber " +
  67. " ,ei_allelectronicinvoicenumber = eiallelectronicinvoicenumber,ei_oldinvoicecode = eioldinvoicecode,ei_oldinvoicenumber = eioldinvoicenumber,ei_oldallelectronicinvoicenu = eioldallelectronicinvoicenu " +
  68. " ,ei_invoicetime = eiinvoicetime,ei_invalidtime = eiinvalidtime,ei_rushredstate = eirushredstate " +
  69. " ,ei_pdfurl = eipdfurl,ei_ofdurl = eiofdurl,ei_imageurl = eiimageurl,ei_calcexcludingtaxamount = eicalcexcludingtaxamount,ei_calctaxamount = eicalctaxamount,ei_caleorderamount = eicaleorderamount " +
  70. " ,ei_sellertaxno = eisellertaxno,ei_sellername = eisellername,ei_taxno = eitaxno " +
  71. " ,ei_buyername = eibuyername,ei_remark = eiremark,ei_clerker = eiclerker,ei_payee = eipayee,ei_checker = eichecker,ei_bfield1 = eibfield1,ei_bfield2 = eibfield2,ei_bfield3 = eibfield3 " +
  72. "when NOT MATCHED THEN insert (ei_id,ei_indate,ei_detno,ei_ioid,ei_iocode,ei_biid,ei_bicode " +
  73. " ,ei_sid,ei_orderno,ei_createtime,ei_invoicetype,ei_invoiceline,ei_specificfactor,ei_invoicestate,ei_exceptionmessage,ei_invoicecode,ei_invoicenumber " +
  74. " ,ei_allelectronicinvoicenumber,ei_oldinvoicecode,ei_oldinvoicenumber,ei_oldallelectronicinvoicenu,ei_invoicetime,ei_invalidtime,ei_rushredstate,ei_pdfurl,ei_ofdurl " +
  75. " ,ei_imageurl,ei_calcexcludingtaxamount,ei_calctaxamount,ei_caleorderamount,ei_sellertaxno,ei_sellername,ei_taxno,ei_buyername,ei_remark,ei_clerker " +
  76. " ,ei_payee,ei_checker,ei_bfield1,ei_bfield2,ei_bfield3) " +
  77. "values(elecinvoice_seq.nextval,sysdate,eidetno,io_id,io_code,io_biid,io_bicode " +
  78. " ,eisid,eiorderno,eicreatetime,eiinvoicetype,eiinvoiceline,eispecificfactor,eiinvoicestate,eiexceptionmessage,eiinvoicecode,eiinvoicenumber " +
  79. " ,eiallelectronicinvoicenumber,eioldinvoicecode,eioldinvoicenumber,eioldallelectronicinvoicenu,eiinvoicetime,eiinvalidtime,eirushredstate,eipdfurl,eiofdurl " +
  80. " ,eiimageurl,eicalcexcludingtaxamount,eicalctaxamount,eicaleorderamount,eisellertaxno,eisellername,eitaxno,eibuyername,eiremark,eiclerker " +
  81. " ,eipayee,eichecker,eibfield1,eibfield2,eibfield3)";
  82. return sql;
  83. }
  84. private String numberField(Number v){
  85. return (v == null ? "null" : v.toString());
  86. }
  87. private String stringField(String v){
  88. return (v == null ? "null" : "'"+v+"'");
  89. }
  90. private String timeField(String v){
  91. return (v == null ? "null" : "(to_date('1970-01-0100:00:00','yyyy-mm-dd hh24:mi:ss') + "+v+"/1000/24/60/60)");
  92. }
  93. }