电子火车票税率默认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;
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. 填开单位非必填

View File

@ -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);
}
}

View File

@ -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()); // 到达地