feature: 重汽机动车专票适配

jianshui-ui
dongxiaoke 1 year ago
parent 1da33523c8
commit 6d17bbb8d9
  1. 1
      jianshui-invoice/src/main/java/com/jianshui/invoice/constant/elephant/ElephantConstantsV6.java
  2. 9
      jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/ElephantInvoiceApiV6ServiceImpl.java
  3. 12
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/BillDetailFormatUtil.java
  4. 7
      jianshui-invoice/src/main/java/com/jianshui/invoice/utils/InvoiceTest.java

@ -38,6 +38,7 @@ public class ElephantConstantsV6 {
public static String GENERATE_QD_BDCXS_INVOICE = "/invoice/api/v6/GenerateQdBdcxsInvoice";
public static String GENERATE_QD_JZFW_INVOICE = "/invoice/api/v6/GenerateQdJzfwInvoice";
public static String GENERATE_QD_BDXZL_INVOICE = "/invoice/api/v6/GenerateQdBdczlInvoice";
public static String GENERATE_QD_JDCZP_INVOICE = "/invoice/api/v6/GenerateQdjdczpInvoice";
public static String QD_GET_RED_INVOICE_BACK = "/invoice/api/v6/getDownloadRedInvoice";
// 发票开票结果拉取

@ -3235,6 +3235,15 @@ public class ElephantInvoiceApiV6ServiceImpl implements IInvoiceApiService {
url = ElephantConstantsV6.GENERATE_QD_BDXZL_INVOICE;
}
// 机动车专票适配
String jdcbz = billInfo.getJdcbz() != null ? billInfo.getJdcbz():"";
if("1".equals(jdcbz)){
billInfo.setTdys("14");
// (数电机动车专票)发票开具/冲红接口
url = ElephantConstantsV6.GENERATE_QD_JDCZP_INVOICE;
}
// 开始处理详情
List<BillDetail> details = billInfo.getBillDetailList();
List<DDMXXX> ddmxxxList = new ArrayList<>();

@ -371,9 +371,9 @@ public class BillDetailFormatUtil {
if (hsbz == 1) {//含税标志为 1 含税,税额=round((数量*含税单价)*税率/(1+税率)),2),不含税金额=含税金额-税额。
BigDecimal dqce = billDetail.getTaxamt().subtract(amt);
//是否相等
if (dqce.compareTo(ce0) != 0) {
return AjaxResult.error("明细行含税单价、数量积不等于含税金额", billDetail);
}
// if (dqce.compareTo(ce0) != 0) {
// return AjaxResult.error("明细行含税单价、数量积不等于含税金额", billDetail);
// }
taxAmt = billDetail.getTaxamt();
tax = taxAmt.multiply(taxRate).divide(taxRateS, 2, BigDecimal.ROUND_HALF_UP);
taxFreeAmt = taxAmt.subtract(tax);
@ -403,9 +403,9 @@ public class BillDetailFormatUtil {
if (hsbz == 0) {//含税标志为 0 不含税,税额=round((数量*不含税单价)*税率),2),含税金额=不含税金额+税额。
BigDecimal dqce = billDetail.getTaxfreeamt().subtract(amt);
//是否相等
if (dqce.compareTo(ce0) != 0) {
return AjaxResult.error("明细行不含税单价、数量积不等于不含税金额", billDetail);
}
// if (dqce.compareTo(ce0) != 0) {
// return AjaxResult.error("明细行不含税单价、数量积不等于不含税金额", billDetail);
// }
dqce = dqce.compareTo(new BigDecimal("0")) > 0 ? dqce : dqce.multiply(new BigDecimal("-1"));
taxFreeAmt = billDetail.getTaxfreeamt();
tax = taxFreeAmt.multiply(taxRate).setScale(2, BigDecimal.ROUND_HALF_UP);

@ -46,7 +46,8 @@ public class InvoiceTest {
// String key = "BUgDX62Wh1NChV+h1XCXdw=="; // 1203
// String key = "TG1NR1N0R3RPcEY0eE55dg=="; // 1132
// String key = "2KF3rawkN1B1gGjwrtBMlQ=="; // 500
String key = "S1jIlJRLXBNtIFihvQ0VPw=="; // 1501
// String key = "S1jIlJRLXBNtIFihvQ0VPw=="; // 1501
String key = "FIQKraT+UheC1GqQtgDM6g=="; // 1205
// 1203 红字发票
// String order = "{" +
@ -2180,8 +2181,10 @@ public class InvoiceTest {
"}";
System.out.println(JianshuiInvoiceDecryptUtil.encrypt(order,key));
order = "etyWr0ZALqXjMdOh5ZJA+WfYrOdU+8vV7POaJd2h5VDv7SmXvs8oL/AgmbP/hcwhzQoOMk+cRyma1gTGBotR5tyl7pe1Yb1DuN823426y9jv+HQb2IFDuR5t0bfZGLtiWErB/93nFGfOV4RLN9/DE9J8lgWdLVRpM3spE53Z6GS8lbSWgvRie0zo3TVuEnKTSUbDhiuXsDA=";
System.out.println("========================");
// System.out.println(AisinoInvoiceEncryptUtil.encryptAES(order,key));
System.out.println(JianshuiInvoiceDecryptUtil.decrypt(order,key));

Loading…
Cancel
Save