From f2b6c1fc5e483bb1d1d5017c472b4d108476bf10 Mon Sep 17 00:00:00 2001 From: xiang2lin <251481237@qq.com> Date: Fri, 9 May 2025 08:29:56 +0800 Subject: [PATCH] =?UTF-8?q?=E7=94=B5=E5=AD=90=E7=81=AB=E8=BD=A6=E7=A5=A8?= =?UTF-8?q?=E7=A8=8E=E7=8E=87=E9=BB=98=E8=AE=A40.09?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../assembler/ElecFlightInvoiceAssembler.java | 3 +- .../assembler/ElecTrainInvoiceAssembler.java | 30 +++++++++++++++---- .../assembler/TrainInvoiceAssembler.java | 3 +- 3 files changed, 29 insertions(+), 7 deletions(-) diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecFlightInvoiceAssembler.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecFlightInvoiceAssembler.java index 83e06759..7e187fd1 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecFlightInvoiceAssembler.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecFlightInvoiceAssembler.java @@ -1,5 +1,6 @@ package com.hzya.frame.plugin.cinvoice.assembler; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.plugin.cinvoice.dto.FlightItemInfo; @@ -41,7 +42,7 @@ public class ElecFlightInvoiceAssembler implements ParamAssembler{ // 2. 验证码,非必填 param.put("yzm", planeticketH.getPT_VALIDCODE()); // 3. 开票日期,格式为 yyyy-MM-dd,必填 - param.put("kprq", planeticketH.getPT_DATE()); + param.put("kprq", DateUtil.format(planeticketH.getPT_DATE(),"yyyy-MM-dd")); // 4. 销售单位代号,非必填 param.put("xsdwdh", planeticketH.getPT_SALERCODE()); // 5. 填开单位,非必填 diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecTrainInvoiceAssembler.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecTrainInvoiceAssembler.java index a1ca24d5..929579b6 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecTrainInvoiceAssembler.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/ElecTrainInvoiceAssembler.java @@ -1,10 +1,14 @@ package com.hzya.frame.plugin.cinvoice.assembler; +import cn.hutool.core.convert.Convert; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity; +import java.math.BigDecimal; + /** * @Description 200-电子发票(铁路电子客票) * @Author xiangerlin @@ -33,7 +37,7 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{ // 1. 火车票号,必填 param.put("hcph", trainticketEntity.getTT_CODE()); // 2. 乘车日期,格式为 yyyy-MM-dd,必填 - param.put("ccrq", trainticketEntity.getTT_DATE()); + param.put("ccrq", DateUtil.format(trainticketEntity.getTT_DATE(),"yyyy-MM-dd")); // 3. 乘车时间,格式为 HH:mm,非必填 param.put("ccsj", trainticketEntity.getTT_TIME()); // 4. 出发地,非必填 @@ -58,10 +62,15 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{ param.put("kprq", trainticketEntity.getTT_OUTDATE()); // 14. 不含税金额,非必填 param.put("bhsje", trainticketEntity.getTT_NOTAXAMOUNT()); - // 15. 税额,非必填 - param.put("se", trainticketEntity.getTT_TAXRATEAMOUNT()); // 16. 税率,非必填 - param.put("slv", trainticketEntity.getTT_TAXRATE()); + param.put("slv", Convert.toStr(trainticketEntity.getTT_TAXRATE(),"0.09")); + // 15. 税额,非必填 + if (null == trainticketEntity.getTT_TAXRATEAMOUNT()){ + BigDecimal slv = param.getBigDecimal("slv"); + BigDecimal se = trainticketEntity.getTT_AMOUNT().multiply(slv.divide(BigDecimal.ONE.add(slv))); + }else { + param.put("se", trainticketEntity.getTT_TAXRATEAMOUNT()); + } // 17. 销方税号,非必填 param.put("xfsh", ""); // 18. 销方名称,非必填 @@ -99,11 +108,22 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{ // 33. 金额,非必填 qdHcpInfo.put("je", trainticketEntity.getTT_AMOUNT()); // 34. 税率,非必填 - qdHcpInfo.put("slv", trainticketEntity.getTT_TAXRATE()); + qdHcpInfo.put("slv", param.getString("slv")); // 35. 税额,非必填 qdHcpInfo.put("se", trainticketEntity.getTT_TAXRATEAMOUNT()); } } return param; } + + public static void main(String[] args) { + JSONObject param = new JSONObject(); + param.put("slv", Convert.toStr(null,"0.09")); + BigDecimal slv = param.getBigDecimal("slv"); + BigDecimal amount = new BigDecimal("568"); + BigDecimal b1 = BigDecimal.ONE.add(slv); + BigDecimal divide = amount.divide(b1, 6, BigDecimal.ROUND_HALF_UP); + BigDecimal se = divide.multiply(slv); + System.out.println(se); + } } diff --git a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/TrainInvoiceAssembler.java b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/TrainInvoiceAssembler.java index cb516f2a..ce95d8cb 100644 --- a/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/TrainInvoiceAssembler.java +++ b/base-buildpackage/src/main/java/com/hzya/frame/plugin/cinvoice/assembler/TrainInvoiceAssembler.java @@ -1,5 +1,6 @@ package com.hzya.frame.plugin.cinvoice.assembler; +import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.StrUtil; import com.alibaba.fastjson.JSONObject; import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity; @@ -30,7 +31,7 @@ public class TrainInvoiceAssembler implements ParamAssembler{ LexmiscivTrainticketEntity trainticketEntity = JSONObject.parseObject(trainInvoice, LexmiscivTrainticketEntity.class); if (null != trainticketEntity){ param.put("hcph", trainticketEntity.getTT_CODE()); // 火车票号 - param.put("ccrq", trainticketEntity.getTT_DATE()); // 乘车日期,yyyy-MM-dd + param.put("ccrq", DateUtil.format(trainticketEntity.getTT_DATE(),"yyyy-MM-dd")); // 乘车日期,yyyy-MM-dd param.put("ccsj", trainticketEntity.getTT_TIME()); // 乘车时间,HH:mm param.put("cfd", trainticketEntity.getTT_FSTATION()); // 出发地 param.put("ddd", trainticketEntity.getTT_TSTATION()); // 到达地