电子火车票税率默认0.09

This commit is contained in:
xiang2lin 2025-05-09 08:29:56 +08:00
parent 093291ed47
commit f2b6c1fc5e
3 changed files with 29 additions and 7 deletions

View File

@ -1,5 +1,6 @@
package com.hzya.frame.plugin.cinvoice.assembler; package com.hzya.frame.plugin.cinvoice.assembler;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.dto.FlightItemInfo; import com.hzya.frame.plugin.cinvoice.dto.FlightItemInfo;
@ -41,7 +42,7 @@ public class ElecFlightInvoiceAssembler implements ParamAssembler{
// 2. 验证码非必填 // 2. 验证码非必填
param.put("yzm", planeticketH.getPT_VALIDCODE()); param.put("yzm", planeticketH.getPT_VALIDCODE());
// 3. 开票日期格式为 yyyy-MM-dd必填 // 3. 开票日期格式为 yyyy-MM-dd必填
param.put("kprq", planeticketH.getPT_DATE()); param.put("kprq", DateUtil.format(planeticketH.getPT_DATE(),"yyyy-MM-dd"));
// 4. 销售单位代号非必填 // 4. 销售单位代号非必填
param.put("xsdwdh", planeticketH.getPT_SALERCODE()); param.put("xsdwdh", planeticketH.getPT_SALERCODE());
// 5. 填开单位非必填 // 5. 填开单位非必填

View File

@ -1,10 +1,14 @@
package com.hzya.frame.plugin.cinvoice.assembler; 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 cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity; import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity;
import java.math.BigDecimal;
/** /**
* @Description 200-电子发票铁路电子客票 * @Description 200-电子发票铁路电子客票
* @Author xiangerlin * @Author xiangerlin
@ -33,7 +37,7 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
// 1. 火车票号必填 // 1. 火车票号必填
param.put("hcph", trainticketEntity.getTT_CODE()); param.put("hcph", trainticketEntity.getTT_CODE());
// 2. 乘车日期格式为 yyyy-MM-dd必填 // 2. 乘车日期格式为 yyyy-MM-dd必填
param.put("ccrq", trainticketEntity.getTT_DATE()); param.put("ccrq", DateUtil.format(trainticketEntity.getTT_DATE(),"yyyy-MM-dd"));
// 3. 乘车时间格式为 HH:mm非必填 // 3. 乘车时间格式为 HH:mm非必填
param.put("ccsj", trainticketEntity.getTT_TIME()); param.put("ccsj", trainticketEntity.getTT_TIME());
// 4. 出发地非必填 // 4. 出发地非必填
@ -58,10 +62,15 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
param.put("kprq", trainticketEntity.getTT_OUTDATE()); param.put("kprq", trainticketEntity.getTT_OUTDATE());
// 14. 不含税金额非必填 // 14. 不含税金额非必填
param.put("bhsje", trainticketEntity.getTT_NOTAXAMOUNT()); param.put("bhsje", trainticketEntity.getTT_NOTAXAMOUNT());
// 15. 税额非必填
param.put("se", trainticketEntity.getTT_TAXRATEAMOUNT());
// 16. 税率非必填 // 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. 销方税号非必填 // 17. 销方税号非必填
param.put("xfsh", ""); param.put("xfsh", "");
// 18. 销方名称非必填 // 18. 销方名称非必填
@ -99,11 +108,22 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
// 33. 金额非必填 // 33. 金额非必填
qdHcpInfo.put("je", trainticketEntity.getTT_AMOUNT()); qdHcpInfo.put("je", trainticketEntity.getTT_AMOUNT());
// 34. 税率非必填 // 34. 税率非必填
qdHcpInfo.put("slv", trainticketEntity.getTT_TAXRATE()); qdHcpInfo.put("slv", param.getString("slv"));
// 35. 税额非必填 // 35. 税额非必填
qdHcpInfo.put("se", trainticketEntity.getTT_TAXRATEAMOUNT()); qdHcpInfo.put("se", trainticketEntity.getTT_TAXRATEAMOUNT());
} }
} }
return param; 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);
}
} }

View File

@ -1,5 +1,6 @@
package com.hzya.frame.plugin.cinvoice.assembler; package com.hzya.frame.plugin.cinvoice.assembler;
import cn.hutool.core.date.DateUtil;
import cn.hutool.core.util.StrUtil; import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity; 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); LexmiscivTrainticketEntity trainticketEntity = JSONObject.parseObject(trainInvoice, LexmiscivTrainticketEntity.class);
if (null != trainticketEntity){ if (null != trainticketEntity){
param.put("hcph", trainticketEntity.getTT_CODE()); // 火车票号 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("ccsj", trainticketEntity.getTT_TIME()); // 乘车时间,HH:mm
param.put("cfd", trainticketEntity.getTT_FSTATION()); // 出发地 param.put("cfd", trainticketEntity.getTT_FSTATION()); // 出发地
param.put("ddd", trainticketEntity.getTT_TSTATION()); // 到达地 param.put("ddd", trainticketEntity.getTT_TSTATION()); // 到达地