发票税务对接

This commit is contained in:
xiang2lin 2025-05-16 09:04:02 +08:00
parent f2b6c1fc5e
commit 0b28fec32f
18 changed files with 1043 additions and 279 deletions

View File

@ -1,6 +1,10 @@
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.LexmisPublicinfoEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity;
/**
* @Description 客运汽车a3
@ -23,26 +27,32 @@ public class BusInvoiceAssembler implements ParamAssembler{
@Override
public JSONObject assembleParam() {
JSONObject param = new JSONObject();
String busInvoiceStr = jsonObject.getString("busInvoice");
String publicInfoiceStr = jsonObject.getString("publicInfoice");
if (StrUtil.isNotEmpty(busInvoiceStr)){
LexmiscivBusinvoiceEntity businvoiceEntity = JSONObject.parseObject(busInvoiceStr,LexmiscivBusinvoiceEntity.class);
LexmisPublicinfoEntity publicinfo = JSONObject.parseObject(publicInfoiceStr,LexmisPublicinfoEntity.class);
// 发票代码必填
param.put("fpdm", "");
param.put("fpdm", businvoiceEntity.getBI_FPDM());
// 发票号码必填
param.put("fphm", "");
param.put("fphm", businvoiceEntity.getBI_FPHM());
// 乘车日期/开票时间格式为 yyyy-MM-dd必填
param.put("ccrq", "");
param.put("ccrq", DateUtil.format(businvoiceEntity.getBI_DATE(),"yyyy-MM-dd"));
// 乘车时间格式为 HH:mm非必填
param.put("ccsj", "");
param.put("ccsj", businvoiceEntity.getBI_TIME());
// 出发地非必填
param.put("cfd", "");
param.put("cfd", businvoiceEntity.getBI_FSTATION());
// 到达地非必填
param.put("ddd", "");
param.put("ddd", businvoiceEntity.getBI_TSTATION());
// 乘车人姓名非必填
param.put("ccrxm", "");
param.put("ccrxm", businvoiceEntity.getBI_USERNAME());
// 身份证号非必填
param.put("sfzh", "");
param.put("sfzh", businvoiceEntity.getBI_USERID());
// 金额必填
param.put("je", "");
param.put("je", businvoiceEntity.getBI_TOTALAMOUNT());
// 发票消费类型非必填
param.put("fpxflx", "");
}
return param;
}
}

View File

@ -42,7 +42,7 @@ public class ElecFlightInvoiceAssembler implements ParamAssembler{
// 2. 验证码非必填
param.put("yzm", planeticketH.getPT_VALIDCODE());
// 3. 开票日期格式为 yyyy-MM-dd必填
param.put("kprq", DateUtil.format(planeticketH.getPT_DATE(),"yyyy-MM-dd"));
param.put("kprq", planeticketH.getPT_MAKEDATE());
// 4. 销售单位代号非必填
param.put("xsdwdh", planeticketH.getPT_SALERCODE());
// 5. 填开单位非必填
@ -99,6 +99,7 @@ public class ElecFlightInvoiceAssembler implements ParamAssembler{
flightItem.setZwdj(b.getPTS_CLASS());//座位等级
flightItem.setCyr(b.getPTS_CARRIER());//承运人
flightItem.setCwdj(b.getPTS_CLASSNAME());//舱位等级
flightItem.setCjrq(DateUtil.format(b.getPTS_DATE(),"yyyy-MM-dd"));
if ("1".equals(planeticketH.getPT_ELECTRONICMARK())){
//电子票需要的字段
flightItem.setSsflbm("");//税收分类编码
@ -107,7 +108,7 @@ public class ElecFlightInvoiceAssembler implements ParamAssembler{
flightItem.setDw("");//单位
flightItem.setSl("");//数量
flightItem.setDj("");//单价
flightItem.setJe(String.valueOf(planeticketH.getPT_PRICE()));//金额
flightItem.setJe(planeticketH.getPT_PRICE());//金额
flightItem.setSlv(planeticketH.getPT_TAXRATE());//税率
flightItem.setSe(planeticketH.getPT_TAXAMOUNT());//税额
}

View File

@ -5,7 +5,9 @@ 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.LexmisPublicinfoEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivTrainticketEntity;
import com.hzya.frame.plugin.cinvoice.util.TaxCalculator;
import java.math.BigDecimal;
@ -30,9 +32,11 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
@Override
public JSONObject assembleParam() {
JSONObject param = new JSONObject();
String trainInvoice = jsonObject.getString("trainInvoice");
String trainInvoice = jsonObject.getString("trainInvoice");//火车票
String publicInvoice = jsonObject.getString("publicInvoice");//发票公共信息
if (StrUtil.isNotEmpty(trainInvoice)){
LexmiscivTrainticketEntity trainticketEntity = JSONObject.parseObject(trainInvoice, LexmiscivTrainticketEntity.class);
LexmisPublicinfoEntity publicInfo = JSONObject.parseObject(publicInvoice, LexmisPublicinfoEntity.class);
if (null != trainticketEntity){
// 1. 火车票号必填
param.put("hcph", trainticketEntity.getTT_CODE());
@ -63,22 +67,22 @@ public class ElecTrainInvoiceAssembler implements ParamAssembler{
// 14. 不含税金额非必填
param.put("bhsje", trainticketEntity.getTT_NOTAXAMOUNT());
// 16. 税率非必填
param.put("slv", Convert.toStr(trainticketEntity.getTT_TAXRATE(),"0.09"));
param.put("slv", Convert.toStr(publicInfo.getPI_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)));
if (null == publicInfo.getPI_TAXAMOUNT()){
BigDecimal se = TaxCalculator.calculateTax(trainticketEntity.getTT_AMOUNT(),new BigDecimal(param.getString("slv")));
param.put("se",se);
}else {
param.put("se", trainticketEntity.getTT_TAXRATEAMOUNT());
param.put("se", publicInfo.getPI_TAXAMOUNT());
}
// 17. 销方税号非必填
param.put("xfsh", "");
// 18. 销方名称非必填
param.put("xfmc", "");
// 19. 购方税号非必填
param.put("gfsh", trainticketEntity.getTT_BUYERTAXNO());
param.put("gfsh", Convert.toStr(trainticketEntity.getTT_BUYERTAXNO(),publicInfo.getPI_BUYERTAXNO()));
// 20. 购方名称非必填
param.put("gfmc", trainticketEntity.getTT_BUYERNAME());
param.put("gfmc", Convert.toStr(trainticketEntity.getTT_BUYERNAME(),publicInfo.getPI_BUYERNAME()));
// 21. 出发站拼音非必填
param.put("cfzpy", "");
// 22. 到达站拼音非必填

View File

@ -2,7 +2,9 @@ package com.hzya.frame.plugin.cinvoice.assembler;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.hzya.frame.plugin.cinvoice.dto.TxfItemInfo;
import com.hzya.frame.plugin.cinvoice.dto.ZzsItemInfo;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmisPublicinfoEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivInvoicedetailEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivInvoicemainEntity;
import org.apache.commons.collections.CollectionUtils;
@ -60,6 +62,8 @@ public class ZzsInvoiceAssembler implements ParamAssembler{
param.put("kpr", zzsInvoiceH.getIM_MAKERNM());//开票人
param.put("skr", zzsInvoiceH.getIM_PAYEE());//收款人
param.put("fhr", zzsInvoiceH.getIM_AUDITOR());//复核人
//14是通行费
if (!"14".equals(zzsInvoiceH.getIM_TYPE())){
// 发票明细信息
List<ZzsItemInfo> zzsItemInfoList = new LinkedList<>();
param.put("zzsItemInfos", zzsItemInfoList);
@ -80,6 +84,27 @@ public class ZzsInvoiceAssembler implements ParamAssembler{
zzsItemInfoList.add(zzsItemInfo);
}
}
}else {
//通行费 发票
List<TxfItemInfo> txfItemInfoList = new LinkedList<TxfItemInfo>();
param.put("txfItemInfos",txfItemInfoList);
if (CollectionUtils.isNotEmpty(zzsInvoiceBList)){
for (LexmiscivInvoicedetailEntity b : zzsInvoiceBList) {
TxfItemInfo txfItemInfo = new TxfItemInfo();
txfItemInfo.setXh(b.getID_ROWID());
txfItemInfo.setSsflbm("");//税收分类编码 取不到
txfItemInfo.setXmmc(b.getID_SERVICENM());
txfItemInfo.setCph("");//车牌号 取不到
txfItemInfo.setLx("");//类型 取不到
txfItemInfo.setTxrqq("");//通行日期起 取不到
txfItemInfo.setTxrqz("");//通信日期止 取不到
txfItemInfo.setJe(b.getID_NOTAXAMOUNT());
txfItemInfo.setSlv(b.getID_TAX());
txfItemInfo.setSe(b.getID_TAXAMOUNT());
txfItemInfoList.add(txfItemInfo);
}
}
}
}
}

View File

@ -1,5 +1,7 @@
package com.hzya.frame.plugin.cinvoice.dto;
import java.math.BigDecimal;
/**
* @Description 航空运输电子客票行程单明细
* @Author xiangerlin
@ -9,6 +11,7 @@ public class FlightItemInfo {
private String cfz;//出发站
private String ddz;//到达站
private String hbh;//航班号
private String cjrq;//乘机日期
private String cjsj;//乘机时间
private String zwdj;//座位等级
private String cyr;//承运人
@ -21,9 +24,9 @@ public class FlightItemInfo {
private String dw;//单位
private String sl;//数量
private String dj;//单价
private String je;//金额
private String slv;//税率
private String se;//税额
private BigDecimal je;//金额
private BigDecimal slv;//税率
private BigDecimal se;//税额
public String getCfz() {
return cfz;
}
@ -128,27 +131,36 @@ public class FlightItemInfo {
this.dj = dj;
}
public String getJe() {
public BigDecimal getJe() {
return je;
}
public void setJe(String je) {
public void setJe(BigDecimal je) {
this.je = je;
}
public String getSlv() {
public BigDecimal getSlv() {
return slv;
}
public void setSlv(String slv) {
public void setSlv(BigDecimal slv) {
this.slv = slv;
}
public String getSe() {
public BigDecimal getSe() {
return se;
}
public void setSe(String se) {
public void setSe(BigDecimal se) {
this.se = se;
}
public String getCjrq() {
return cjrq;
}
public void setCjrq(String cjrq) {
this.cjrq = cjrq;
}
}

View File

@ -1,5 +1,7 @@
package com.hzya.frame.plugin.cinvoice.dto;
import java.math.BigDecimal;
/**
* @Description 增值税发票明细表
* @Author xiangerlin
@ -11,11 +13,11 @@ public class ZzsItemInfo {
private String xmmc; // 项目名称
private String ggxh; // 规格型号
private String dw; // 单位
private String sl; // 数量
private String dj; // 单价
private String je; // 金额
private String slv; // 税率
private String se; // 税额
private BigDecimal sl; // 数量
private BigDecimal dj; // 单价
private BigDecimal je; // 金额
private BigDecimal slv; // 税率
private BigDecimal se; // 税额
public String getXh() {
return xh;
@ -57,43 +59,43 @@ public class ZzsItemInfo {
this.dw = dw;
}
public String getSl() {
public BigDecimal getSl() {
return sl;
}
public void setSl(String sl) {
public void setSl(BigDecimal sl) {
this.sl = sl;
}
public String getDj() {
public BigDecimal getDj() {
return dj;
}
public void setDj(String dj) {
public void setDj(BigDecimal dj) {
this.dj = dj;
}
public String getJe() {
public BigDecimal getJe() {
return je;
}
public void setJe(String je) {
public void setJe(BigDecimal je) {
this.je = je;
}
public String getSlv() {
public BigDecimal getSlv() {
return slv;
}
public void setSlv(String slv) {
public void setSlv(BigDecimal slv) {
this.slv = slv;
}
public String getSe() {
public BigDecimal getSe() {
return se;
}
public void setSe(String se) {
public void setSe(BigDecimal se) {
this.se = se;
}
}

View File

@ -19,7 +19,8 @@
FROM
formmain_0327
WHERE
finishedflag = 1
1 = 1
-- and finishedflag = 1
UNION ALL
@ -31,7 +32,27 @@
FROM
formmain_0533
WHERE
finishedflag = 1
1 = 1
-- and finishedflag = 1
UNION ALL
-- 日常费用报销
SELECT
id,
'formmain_0314' as tab_name,
'日常报销单' as bill_type,
field0220 as bill_code
FROM
formmain_0314
UNION ALL
-- 业务招待费
SELECT
id,
'formmain_0294' as tab_name,
'招待报销单' as bill_type,
field0053 as bill_code
FROM
formmain_0294
) f
<trim prefix="where" prefixOverrides="and">
<if test="id != null and id != ''">f.id = #{id}</if>

View File

@ -0,0 +1,13 @@
package com.hzya.frame.plugin.cinvoice.lexmis.dao;
import com.hzya.frame.basedao.dao.IBaseDao;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity;
/**
* @description: 迈锐思-客运汽车发票表 dao
* @tableName: lexmisciv_businvoice
* @entityName: LexmiscivBusinvoiceEntity
* @author: gjh
* @history: 1.0
*/
public interface ILexmiscivBusinvoiceDao extends IBaseDao<LexmiscivBusinvoiceEntity , String>{
}

View File

@ -0,0 +1,17 @@
package com.hzya.frame.plugin.cinvoice.lexmis.dao.impl;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity;
import org.springframework.stereotype.Repository;
import com.hzya.frame.basedao.dao.MybatisGenericDao;
import com.hzya.frame.plugin.cinvoice.lexmis.dao.ILexmiscivBusinvoiceDao;
/**
* @description: 迈锐思-客运汽车发票表 dao
* @tableName: lexmisciv_businvoice
* @entityName: LexmiscivBusinvoiceEntity
* @author: gjh
* @history:1.0
*/
@Repository("lexmisciv_businvoicedao")
public class LexmiscivBusinvoiceDaoImpl extends MybatisGenericDao<LexmiscivBusinvoiceEntity, String> implements ILexmiscivBusinvoiceDao{
}

View File

@ -19,6 +19,19 @@
<result property="PI_SUBJECT" column="PI_SUBJECT" />
<result property="PI_FORMID" column="PI_FORMID" />
<result property="PI_FORMDATAID" column="PI_FORMDATAID" />
<result property="PI_INVOICETYPE" column="PI_INVOICETYPE" />
<result property="PI_ISVALID" column="PI_ISVALID" />
<result property="PI_VALIDRESULT" column="PI_VALIDRESULT" />
<result property="PI_VALIDSTATE" column="PI_VALIDSTATE" />
<result property="PI_RESULTNM" column="PI_RESULTNM" />
<result property="PI_SALERTAXNO" column="PI_SALERTAXNO" />
<result property="PI_SALERNAME" column="PI_SALERNAME" />
<result property="PI_BUYERTAXNO" column="PI_BUYERTAXNO" />
<result property="PI_BUYERNAME" column="PI_BUYERNAME" />
<result property="PI_TAXRATE" column="PI_TAXRATE" />
<result property="PI_TAXAMOUNT" column="PI_TAXAMOUNT" />
<result property="PI_NOTAXAMOUNT" column="PI_NOTAXAMOUNT" />
</resultMap>
@ -36,7 +49,19 @@
PI_SUMMARYID,
PI_SUBJECT,
PI_FORMID,
PI_FORMDATAID
PI_FORMDATAID,
PI_INVOICETYPE,
PI_ISVALID,
PI_VALIDRESULT,
PI_VALIDSTATE,
PI_RESULTNM,
PI_SALERTAXNO,
PI_SALERNAME,
PI_BUYERTAXNO,
PI_BUYERNAME,
PI_TAXRATE,
PI_TAXAMOUNT,
PI_NOTAXAMOUNT
</sql>
<!--通过ID获取数据 -->
@ -67,7 +92,7 @@
<if test="PI_SUBJECT != null "> and PI_SUBJECT = #{PI_SUBJECT}</if>
<if test="PI_FORMID != null "> and PI_FORMID = #{PI_FORMID}</if>
<if test="PI_FORMDATAID != null "> and PI_FORMDATAID = #{PI_FORMDATAID}</if>
and pi_billkind in ('0','2','3')
and pi_billkind in ('0','2','3','5')
</trim>
</select>

View File

@ -0,0 +1,422 @@
package com.hzya.frame.plugin.cinvoice.lexmis.entity;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import com.hzya.frame.web.entity.BaseEntity;
/**
* @description: 迈锐思-客运汽车发票表
* @tableName: lexmisciv_businvoice
* @entityName: LexmiscivBusinvoiceEntity
* @author: gjh
* @history: 1.0
*/
public class LexmiscivBusinvoiceEntity extends BaseEntity {
public LexmiscivBusinvoiceEntity() {
}
public LexmiscivBusinvoiceEntity(String BI_ID,String dataSourceCode) {
this.BI_ID = BI_ID;
this.setDataSourceCode(dataSourceCode);
}
/**
* 无备注
*/
private String BI_ID;
/**
* 无备注
*/
private String BI_FPDM;
/**
* 无备注
*/
private String BI_FPHM;
/**
* 无备注
*/
private String BI_NO;
/**
* 无备注
*/
private String BI_SEAT;
/**
* 无备注
*/
private String BI_FSTATION;
/**
* 无备注
*/
private String BI_TSTATION;
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private Date BI_DATE;
/**
* 无备注
*/
private String BI_TIME;
/**
* 无备注
*/
private BigDecimal BI_TOTALAMOUNT;
/**
* 无备注
*/
private String BI_USERNAME;
/**
* 无备注
*/
private String BI_USERID;
/**
* 无备注
*/
private String BI_TAXRATE;
/**
* 无备注
*/
private BigDecimal BI_TAXAMOUNT;
/**
* 无备注
*/
private BigDecimal BI_NOTAXAMOUNT;
/**
* 无备注
*/
private String BI_AREACODE;
/**
* 无备注
*/
private String BI_AREANAME;
/**
* 无备注
*/
private String BI_KEY;
/**
* 无备注
*/
private Integer BI_COUNT;
/**
* 无备注
*/
private String BI_DATETIME;
/**
* 无备注
*/
private String BI_EDATETIME;
public String getBI_ID() {
return BI_ID;
}
public void setBI_ID(String BI_ID) {
this.BI_ID = BI_ID;
}
/**
* 无备注
*/
public void setBI_FPDM(String BI_FPDM) {
this.BI_FPDM = BI_FPDM;
}
/**
* 无备注
*/
public String getBI_FPDM() {
return BI_FPDM;
}
/**
* 无备注
*/
public void setBI_FPHM(String BI_FPHM) {
this.BI_FPHM = BI_FPHM;
}
/**
* 无备注
*/
public String getBI_FPHM() {
return BI_FPHM;
}
/**
* 无备注
*/
public void setBI_NO(String BI_NO) {
this.BI_NO = BI_NO;
}
/**
* 无备注
*/
public String getBI_NO() {
return BI_NO;
}
/**
* 无备注
*/
public void setBI_SEAT(String BI_SEAT) {
this.BI_SEAT = BI_SEAT;
}
/**
* 无备注
*/
public String getBI_SEAT() {
return BI_SEAT;
}
/**
* 无备注
*/
public void setBI_FSTATION(String BI_FSTATION) {
this.BI_FSTATION = BI_FSTATION;
}
/**
* 无备注
*/
public String getBI_FSTATION() {
return BI_FSTATION;
}
/**
* 无备注
*/
public void setBI_TSTATION(String BI_TSTATION) {
this.BI_TSTATION = BI_TSTATION;
}
/**
* 无备注
*/
public String getBI_TSTATION() {
return BI_TSTATION;
}
/**
* 无备注
*/
public void setBI_DATE(Date BI_DATE) {
this.BI_DATE = BI_DATE;
}
/**
* 无备注
*/
public Date getBI_DATE() {
return BI_DATE;
}
/**
* 无备注
*/
public void setBI_TIME(String BI_TIME) {
this.BI_TIME = BI_TIME;
}
/**
* 无备注
*/
public String getBI_TIME() {
return BI_TIME;
}
/**
* 无备注
*/
public void setBI_TOTALAMOUNT(BigDecimal BI_TOTALAMOUNT) {
this.BI_TOTALAMOUNT = BI_TOTALAMOUNT;
}
/**
* 无备注
*/
public BigDecimal getBI_TOTALAMOUNT() {
return BI_TOTALAMOUNT;
}
/**
* 无备注
*/
public void setBI_USERNAME(String BI_USERNAME) {
this.BI_USERNAME = BI_USERNAME;
}
/**
* 无备注
*/
public String getBI_USERNAME() {
return BI_USERNAME;
}
/**
* 无备注
*/
public void setBI_USERID(String BI_USERID) {
this.BI_USERID = BI_USERID;
}
/**
* 无备注
*/
public String getBI_USERID() {
return BI_USERID;
}
/**
* 无备注
*/
public void setBI_TAXRATE(String BI_TAXRATE) {
this.BI_TAXRATE = BI_TAXRATE;
}
/**
* 无备注
*/
public String getBI_TAXRATE() {
return BI_TAXRATE;
}
/**
* 无备注
*/
public void setBI_TAXAMOUNT(BigDecimal BI_TAXAMOUNT) {
this.BI_TAXAMOUNT = BI_TAXAMOUNT;
}
/**
* 无备注
*/
public BigDecimal getBI_TAXAMOUNT() {
return BI_TAXAMOUNT;
}
/**
* 无备注
*/
public void setBI_NOTAXAMOUNT(BigDecimal BI_NOTAXAMOUNT) {
this.BI_NOTAXAMOUNT = BI_NOTAXAMOUNT;
}
/**
* 无备注
*/
public BigDecimal getBI_NOTAXAMOUNT() {
return BI_NOTAXAMOUNT;
}
/**
* 无备注
*/
public void setBI_AREACODE(String BI_AREACODE) {
this.BI_AREACODE = BI_AREACODE;
}
/**
* 无备注
*/
public String getBI_AREACODE() {
return BI_AREACODE;
}
/**
* 无备注
*/
public void setBI_AREANAME(String BI_AREANAME) {
this.BI_AREANAME = BI_AREANAME;
}
/**
* 无备注
*/
public String getBI_AREANAME() {
return BI_AREANAME;
}
/**
* 无备注
*/
public void setBI_KEY(String BI_KEY) {
this.BI_KEY = BI_KEY;
}
/**
* 无备注
*/
public String getBI_KEY() {
return BI_KEY;
}
/**
* 无备注
*/
public void setBI_COUNT(Integer BI_COUNT) {
this.BI_COUNT = BI_COUNT;
}
/**
* 无备注
*/
public Integer getBI_COUNT() {
return BI_COUNT;
}
/**
* 无备注
*/
public void setBI_DATETIME(String BI_DATETIME) {
this.BI_DATETIME = BI_DATETIME;
}
/**
* 无备注
*/
public String getBI_DATETIME() {
return BI_DATETIME;
}
/**
* 无备注
*/
public void setBI_EDATETIME(String BI_EDATETIME) {
this.BI_EDATETIME = BI_EDATETIME;
}
/**
* 无备注
*/
public String getBI_EDATETIME() {
return BI_EDATETIME;
}
}

View File

@ -0,0 +1,112 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.hzya.frame.plugin.cinvoice.lexmis.dao.impl.LexmiscivBusinvoiceDaoImpl">
<resultMap id="get-LexmiscivBusinvoiceEntity-result" type="com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity">
<!--无备注 -->
<result property="BI_ID" column="BI_ID" />
<!--无备注 -->
<result property="BI_FPDM" column="BI_FPDM" />
<!--无备注 -->
<result property="BI_FPHM" column="BI_FPHM" />
<!--无备注 -->
<result property="BI_NO" column="BI_NO" />
<!--无备注 -->
<result property="BI_SEAT" column="BI_SEAT" />
<!--无备注 -->
<result property="BI_FSTATION" column="BI_FSTATION" />
<!--无备注 -->
<result property="BI_TSTATION" column="BI_TSTATION" />
<!--无备注 -->
<result property="BI_DATE" column="BI_DATE" />
<!--无备注 -->
<result property="BI_TIME" column="BI_TIME" />
<!--无备注 -->
<result property="BI_TOTALAMOUNT" column="BI_TOTALAMOUNT" />
<!--无备注 -->
<result property="BI_USERNAME" column="BI_USERNAME" />
<!--无备注 -->
<result property="BI_USERID" column="BI_USERID" />
<!--无备注 -->
<result property="BI_TAXRATE" column="BI_TAXRATE" />
<!--无备注 -->
<result property="BI_TAXAMOUNT" column="BI_TAXAMOUNT" />
<!--无备注 -->
<result property="BI_NOTAXAMOUNT" column="BI_NOTAXAMOUNT" />
<!--无备注 -->
<result property="BI_AREACODE" column="BI_AREACODE" />
<!--无备注 -->
<result property="BI_AREANAME" column="BI_AREANAME" />
<!--无备注 -->
<result property="BI_KEY" column="BI_KEY" />
<!--无备注 -->
<result property="BI_COUNT" column="BI_COUNT" />
<!--无备注 -->
<result property="BI_DATETIME" column="BI_DATETIME" />
<!--无备注 -->
<result property="BI_EDATETIME" column="BI_EDATETIME" />
</resultMap>
<sql id="LexmiscivBusinvoiceEntity_Base_Column_List">
BI_ID,
BI_FPDM,
BI_FPHM,
BI_NO,
BI_SEAT,
BI_FSTATION,
BI_TSTATION,
BI_DATE,
BI_TIME,
BI_TOTALAMOUNT,
BI_USERNAME,
BI_USERID,
BI_TAXRATE,
BI_TAXAMOUNT,
BI_NOTAXAMOUNT,
BI_AREACODE,
BI_AREANAME,
BI_KEY,
BI_COUNT,
BI_DATETIME,
BI_EDATETIME
</sql>
<!--通过ID获取数据 -->
<select id="entity_get" resultMap="get-LexmiscivBusinvoiceEntity-result">
select
<include refid="LexmiscivBusinvoiceEntity_Base_Column_List" />
from lexmisciv_businvoice where BI_ID = #{BI_ID}
</select>
<!-- 查询 采用==查询 -->
<select id="entity_list_base" resultMap="get-LexmiscivBusinvoiceEntity-result" parameterType="com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity">
select
<include refid="LexmiscivBusinvoiceEntity_Base_Column_List" />
from lexmisciv_businvoice
<trim prefix="where" prefixOverrides="and">
<if test="BI_ID != null ">BI_ID=#{BI_ID}</if>
<if test="BI_FPDM != null and BI_FPDM !='' "> and BI_FPDM = #{BI_FPDM}</if>
<if test="BI_FPHM != null and BI_FPHM !='' "> and BI_FPHM = #{BI_FPHM}</if>
<if test="BI_NO != null and BI_NO !='' "> and BI_NO = #{BI_NO}</if>
<if test="BI_SEAT != null and BI_SEAT !='' "> and BI_SEAT = #{BI_SEAT}</if>
<if test="BI_FSTATION != null and BI_FSTATION !='' "> and BI_FSTATION = #{BI_FSTATION}</if>
<if test="BI_TSTATION != null and BI_TSTATION !='' "> and BI_TSTATION = #{BI_TSTATION}</if>
<if test="BI_DATE != null "> and BI_DATE = #{BI_DATE}</if>
<if test="BI_TIME != null and BI_TIME !='' "> and BI_TIME = #{BI_TIME}</if>
<if test="BI_TOTALAMOUNT != null "> and BI_TOTALAMOUNT = #{BI_TOTALAMOUNT}</if>
<if test="BI_USERNAME != null and BI_USERNAME !='' "> and BI_USERNAME = #{BI_USERNAME}</if>
<if test="BI_USERID != null and BI_USERID !='' "> and BI_USERID = #{BI_USERID}</if>
<if test="BI_TAXRATE != null and BI_TAXRATE !='' "> and BI_TAXRATE = #{BI_TAXRATE}</if>
<if test="BI_TAXAMOUNT != null "> and BI_TAXAMOUNT = #{BI_TAXAMOUNT}</if>
<if test="BI_NOTAXAMOUNT != null "> and BI_NOTAXAMOUNT = #{BI_NOTAXAMOUNT}</if>
<if test="BI_AREACODE != null and BI_AREACODE !='' "> and BI_AREACODE = #{BI_AREACODE}</if>
<if test="BI_AREANAME != null and BI_AREANAME !='' "> and BI_AREANAME = #{BI_AREANAME}</if>
<if test="BI_KEY != null and BI_KEY !='' "> and BI_KEY = #{BI_KEY}</if>
<if test="BI_COUNT != null "> and BI_COUNT = #{BI_COUNT}</if>
<if test="BI_DATETIME != null and BI_DATETIME !='' "> and BI_DATETIME = #{BI_DATETIME}</if>
<if test="BI_EDATETIME != null and BI_EDATETIME !='' "> and BI_EDATETIME = #{BI_EDATETIME}</if>
</trim>
</select>
</mapper>

View File

@ -1,9 +1,14 @@
package com.hzya.frame.plugin.cinvoice.lexmis.entity;
import java.util.Date;
import org.springframework.format.annotation.DateTimeFormat;
import com.fasterxml.jackson.annotation.JsonFormat;
import java.math.BigDecimal;
import com.hzya.frame.web.entity.BaseEntity;
/**
* @description: 迈锐思-增值税发票子表
* @tableName: LEXMISCIV_INVOICEDETAIL
@ -16,155 +21,205 @@ public class LexmiscivInvoicedetailEntity extends BaseEntity {
}
public LexmiscivInvoicedetailEntity(String ID_MAINID,String dataSourceCode) {
public LexmiscivInvoicedetailEntity(String ID_MAINID, String dataSourceCode) {
this.ID_MAINID = ID_MAINID;
this.setDataSourceCode(dataSourceCode);
}
/** 无备注 */
private String ID_ID;
/** 无备注 */
private String ID_MAINID;
/** 无备注 */
private String ID_ROWID;
/** 无备注 */
private String ID_ACCOUNTNAME;
/** 无备注 */
private String ID_SERVICENM;
/** 无备注 */
private String ID_SERVICETYPE;
/** 无备注 */
private String ID_PRICE;
/** 无备注 */
private String ID_UNIT;
/** 无备注 */
private String ID_NUM;
/** 无备注 */
private String ID_NOTAXAMOUNT;
/** 无备注 */
private String ID_TAX;
/** 无备注 */
private String ID_TAXAMOUNT;
/**
* 无备注
*/
private String ID_ID;
/**
* 无备注
*/
private String ID_MAINID;
/**
* 无备注
*/
private String ID_ROWID;
/**
* 无备注
*/
private String ID_ACCOUNTNAME;
/**
* 无备注
*/
private String ID_SERVICENM;
/**
* 无备注
*/
private String ID_SERVICETYPE;
/**
* 无备注
*/
private BigDecimal ID_PRICE;
/**
* 无备注
*/
private String ID_UNIT;
/**
* 无备注
*/
private BigDecimal ID_NUM;
/**
* 无备注
*/
private BigDecimal ID_NOTAXAMOUNT;
/**
* 无备注
*/
private BigDecimal ID_TAX;
/**
* 无备注
*/
private BigDecimal ID_TAXAMOUNT;
/** 无备注 */
public void setID_ID(String ID_ID) {
/**
* 无备注
*/
public void setID_ID(String ID_ID) {
this.ID_ID = ID_ID;
}
/** 无备注 */
public String getID_ID() {
/**
* 无备注
*/
public String getID_ID() {
return ID_ID;
}
/** 无备注 */
public void setID_MAINID(String ID_MAINID) {
/**
* 无备注
*/
public void setID_MAINID(String ID_MAINID) {
this.ID_MAINID = ID_MAINID;
}
/** 无备注 */
public String getID_MAINID() {
/**
* 无备注
*/
public String getID_MAINID() {
return ID_MAINID;
}
/** 无备注 */
public void setID_ROWID(String ID_ROWID) {
/**
* 无备注
*/
public void setID_ROWID(String ID_ROWID) {
this.ID_ROWID = ID_ROWID;
}
/** 无备注 */
public String getID_ROWID() {
/**
* 无备注
*/
public String getID_ROWID() {
return ID_ROWID;
}
/** 无备注 */
public void setID_ACCOUNTNAME(String ID_ACCOUNTNAME) {
/**
* 无备注
*/
public void setID_ACCOUNTNAME(String ID_ACCOUNTNAME) {
this.ID_ACCOUNTNAME = ID_ACCOUNTNAME;
}
/** 无备注 */
public String getID_ACCOUNTNAME() {
/**
* 无备注
*/
public String getID_ACCOUNTNAME() {
return ID_ACCOUNTNAME;
}
/** 无备注 */
public void setID_SERVICENM(String ID_SERVICENM) {
/**
* 无备注
*/
public void setID_SERVICENM(String ID_SERVICENM) {
this.ID_SERVICENM = ID_SERVICENM;
}
/** 无备注 */
public String getID_SERVICENM() {
/**
* 无备注
*/
public String getID_SERVICENM() {
return ID_SERVICENM;
}
/** 无备注 */
public void setID_SERVICETYPE(String ID_SERVICETYPE) {
/**
* 无备注
*/
public void setID_SERVICETYPE(String ID_SERVICETYPE) {
this.ID_SERVICETYPE = ID_SERVICETYPE;
}
/** 无备注 */
public String getID_SERVICETYPE() {
/**
* 无备注
*/
public String getID_SERVICETYPE() {
return ID_SERVICETYPE;
}
/** 无备注 */
public void setID_PRICE(String ID_PRICE) {
this.ID_PRICE = ID_PRICE;
}
/** 无备注 */
public String getID_PRICE() {
return ID_PRICE;
}
/** 无备注 */
public void setID_UNIT(String ID_UNIT) {
/**
* 无备注
*/
public void setID_UNIT(String ID_UNIT) {
this.ID_UNIT = ID_UNIT;
}
/** 无备注 */
public String getID_UNIT() {
/**
* 无备注
*/
public String getID_UNIT() {
return ID_UNIT;
}
/** 无备注 */
public void setID_NUM(String ID_NUM) {
this.ID_NUM = ID_NUM;
}
/** 无备注 */
public String getID_NUM() {
public BigDecimal getID_NUM() {
return ID_NUM;
}
/** 无备注 */
public void setID_NOTAXAMOUNT(String ID_NOTAXAMOUNT) {
this.ID_NOTAXAMOUNT = ID_NOTAXAMOUNT;
public void setID_NUM(BigDecimal ID_NUM) {
this.ID_NUM = ID_NUM;
}
/** 无备注 */
public String getID_NOTAXAMOUNT() {
public BigDecimal getID_PRICE() {
return ID_PRICE;
}
public void setID_PRICE(BigDecimal ID_PRICE) {
this.ID_PRICE = ID_PRICE;
}
public BigDecimal getID_NOTAXAMOUNT() {
return ID_NOTAXAMOUNT;
}
/** 无备注 */
public void setID_TAX(String ID_TAX) {
this.ID_TAX = ID_TAX;
public void setID_NOTAXAMOUNT(BigDecimal ID_NOTAXAMOUNT) {
this.ID_NOTAXAMOUNT = ID_NOTAXAMOUNT;
}
/** 无备注 */
public String getID_TAX() {
public BigDecimal getID_TAX() {
return ID_TAX;
}
/** 无备注 */
public void setID_TAXAMOUNT(String ID_TAXAMOUNT) {
this.ID_TAXAMOUNT = ID_TAXAMOUNT;
public void setID_TAX(BigDecimal ID_TAX) {
this.ID_TAX = ID_TAX;
}
/** 无备注 */
public String getID_TAXAMOUNT() {
public BigDecimal getID_TAXAMOUNT() {
return ID_TAXAMOUNT;
}
public void setID_TAXAMOUNT(BigDecimal ID_TAXAMOUNT) {
this.ID_TAXAMOUNT = ID_TAXAMOUNT;
}
}

View File

@ -35,12 +35,12 @@
ID_ACCOUNTNAME,
ID_SERVICENM,
ID_SERVICETYPE,
ID_PRICE,
NULLIF(ID_PRICE, '') as ID_PRICE,
ID_UNIT,
ID_NUM,
ID_NOTAXAMOUNT,
ID_TAX,
ID_TAXAMOUNT
NULLIF(ID_NUM,'')ID_NUM,
NULLIF(ID_NOTAXAMOUNT,'')ID_NOTAXAMOUNT,
NULLIF(ID_TAX,'')ID_TAX,
NULLIF(ID_TAXAMOUNT,'')ID_TAXAMOUNT
</sql>
<!--通过ID获取数据 -->

View File

@ -65,11 +65,11 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
/**
* 无备注
*/
private String PT_FUELAMOUNT;
private BigDecimal PT_FUELAMOUNT;
/**
* 无备注
*/
private String PT_TAXAMOUNT;
private BigDecimal PT_TAXAMOUNT;
/**
* 无备注
*/
@ -77,7 +77,7 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
/**
* 无备注
*/
private String PT_TAXRATE;
private BigDecimal PT_TAXRATE;
/**
* 无备注
*/
@ -144,7 +144,7 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
/**
* 无备注
*/
private Date PT_MAKEDATE;
private String PT_MAKEDATE;
/**
* 无备注
*/
@ -357,35 +357,21 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
}
/**
* 无备注
*/
public void setPT_FUELAMOUNT(String PT_FUELAMOUNT) {
this.PT_FUELAMOUNT = PT_FUELAMOUNT;
}
/**
* 无备注
*/
public String getPT_FUELAMOUNT() {
public BigDecimal getPT_FUELAMOUNT() {
return PT_FUELAMOUNT;
}
/**
* 无备注
*/
public void setPT_TAXAMOUNT(String PT_TAXAMOUNT) {
this.PT_TAXAMOUNT = PT_TAXAMOUNT;
public void setPT_FUELAMOUNT(BigDecimal PT_FUELAMOUNT) {
this.PT_FUELAMOUNT = PT_FUELAMOUNT;
}
/**
* 无备注
*/
public String getPT_TAXAMOUNT() {
public BigDecimal getPT_TAXAMOUNT() {
return PT_TAXAMOUNT;
}
public void setPT_TAXAMOUNT(BigDecimal PT_TAXAMOUNT) {
this.PT_TAXAMOUNT = PT_TAXAMOUNT;
}
/**
* 无备注
@ -401,21 +387,13 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
return PT_AMOUNT;
}
/**
* 无备注
*/
public void setPT_TAXRATE(String PT_TAXRATE) {
this.PT_TAXRATE = PT_TAXRATE;
}
/**
* 无备注
*/
public String getPT_TAXRATE() {
public BigDecimal getPT_TAXRATE() {
return PT_TAXRATE;
}
public void setPT_TAXRATE(BigDecimal PT_TAXRATE) {
this.PT_TAXRATE = PT_TAXRATE;
}
/**
* 无备注
@ -657,20 +635,13 @@ public class LexmiscivPlaneticketEntity extends BaseEntity {
}
/**
* 无备注
*/
public void setPT_MAKEDATE(Date PT_MAKEDATE) {
this.PT_MAKEDATE = PT_MAKEDATE;
}
/**
* 无备注
*/
public Date getPT_MAKEDATE() {
public String getPT_MAKEDATE() {
return PT_MAKEDATE;
}
public void setPT_MAKEDATE(String PT_MAKEDATE) {
this.PT_MAKEDATE = PT_MAKEDATE;
}
/**
* 无备注

View File

@ -0,0 +1,13 @@
package com.hzya.frame.plugin.cinvoice.lexmis.service;
import com.hzya.frame.basedao.service.IBaseService;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity;
/**
* @description: 迈锐思-客运汽车发票表 service
* @tableName: lexmisciv_businvoice
* @entityName: LexmiscivBusinvoiceEntity
* @author: gjh
* @history: 1.0
*/
public interface ILexmiscivBusinvoiceService extends IBaseService<LexmiscivBusinvoiceEntity,String> {
}

View File

@ -0,0 +1,25 @@
package com.hzya.frame.plugin.cinvoice.lexmis.service.impl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.hzya.frame.plugin.cinvoice.lexmis.entity.LexmiscivBusinvoiceEntity;
import com.hzya.frame.plugin.cinvoice.lexmis.service.ILexmiscivBusinvoiceService;
import com.hzya.frame.plugin.cinvoice.lexmis.dao.ILexmiscivBusinvoiceDao;
import com.hzya.frame.basedao.service.impl.BaseService;
/**
* @description: 迈锐思-客运汽车发票表 service
* @tableName: lexmisciv_businvoice
* @entityName: LexmiscivBusinvoiceEntity
* @author: gjh
* @history: 1.0
*/
@Service(value="lexmisciv_businvoiceService")
public class LexmiscivBusinvoiceServiceImpl extends BaseService< LexmiscivBusinvoiceEntity,String> implements ILexmiscivBusinvoiceService{
protected ILexmiscivBusinvoiceDao lexmiscivbusinvoiceDao;
@Autowired
public void setLexmiscivBusinvoiceDao(ILexmiscivBusinvoiceDao dao) {
this.lexmiscivbusinvoiceDao = dao;
this.dao=dao;
}
}

View File

@ -52,6 +52,8 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
private ILexmiscivPlaneticketService lexmiscivPlaneticketService;
@Autowired
ILexmiscivPlaneticketsService lexmiscivPlaneticketsService;
@Autowired
private ILexmiscivBusinvoiceService lexmiscivBusinvoiceService;
@Resource
private IIntegrationTaskLivingDetailsService taskLivingDetailsService;
@Value("${zt.url:}")
@ -72,7 +74,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
String id = requestJson.getString("id");//主表id
CInvoiceImportHEntity importHEntity = new CInvoiceImportHEntity();
importHEntity.setDataSourceCode(dataSourceCode);
importHEntity.setId("3922481031277596479");
importHEntity.setId("3530025196803672389");
List<CInvoiceImportHEntity> cInvoiceImportHList = cInvoiceImportHService.queryInvoiceList(importHEntity);
if (CollectionUtils.isNotEmpty(cInvoiceImportHList)){
ParamAssembler assembler = null;
@ -80,7 +82,9 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
//2 查OA明细表
//3 查迈瑞思发票表
//迈锐思发票公共信息表
List<LexmisPublicinfoEntity> lexmisPublicinfoEntityList = lexmisPublicinfoService.query(new LexmisPublicinfoEntity(cInvoiceH.getId(),dataSourceCode));
LexmisPublicinfoEntity lexmisPublicinfoEntity = new LexmisPublicinfoEntity(cInvoiceH.getId(),dataSourceCode);
lexmisPublicinfoEntity.setPI_ID("-1294150280639986013");
List<LexmisPublicinfoEntity> lexmisPublicinfoEntityList = lexmisPublicinfoService.query(lexmisPublicinfoEntity);
if (CollectionUtils.isNotEmpty(lexmisPublicinfoEntityList)){
//税务接口每次最多传50张发票
int size = lexmisPublicinfoEntityList.size();
@ -88,20 +92,9 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
for (int i = 0; i < size; i += batchSize){
int no = 1;//序号
//4 根据发票类型组装不同参数
long timestamp = System.currentTimeMillis();
//Map<String, Object> parametersMap = new HashMap<>();
//parametersMap.put("accessKey",accesskey);
//parametersMap.put("timestamp",timestamp);
//String sign = YzfSignUtil.signRequest(parametersMap, accessSecret);
JSONObject head = new JSONObject();
//head.put("accessKey",accesskey);//密钥
// head.put("sign",sign);//签名
// head.put("timestamp",timestamp);//时间戳
head.put("taxNo","91330110MAC5FPUY2U");//当前企业税号
//head.put("taxNo",lexmisPublicinfoEntityList.get(0).getPI_TAXNO());
JSONArray inputInfos = new JSONArray();
head.put("inputInfos",inputInfos);//发票录入信息单次最大50张
// 获取当前批次的子列表
List<LexmisPublicinfoEntity> batchList = lexmisPublicinfoEntityList.subList(i, Math.min(i + batchSize, size));
//使用stream方式 publicinfoList PI_TABLENAME分组
@ -129,7 +122,6 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
switch (key){
case "LEXMISCIV_INVOICEMAIN"://增值税发票
zzsInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
//}
break;
case "LEXMISCIV_TRAINTICKET"://火车票
trainInvoice(dataSourceCode, inputInfos, info, inputInfo, invoiceInfo, baseInfo);
@ -137,12 +129,16 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
case "LEXMISCIV_PLANETICKET"://飞机行程单
planeInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
break;
case "LEXMISCIV_BUSINVOICE"://客运汽车票
busInvoice(dataSourceCode, info, invoiceInfo, baseInfo);
break;
default:
logger.info("没有匹配到类型");
break;
}
no++;
}
head.put("taxNo",publicinfoList.get(0).getPI_TAXNO());//当前企业税号
}
logger.info("调用有度发票批量导入接口请求参数:{}",head.toString());
//调用税务接口
@ -179,6 +175,8 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
return null;
}
/**
* 保存日志
* @param integration_task_living_details_id
@ -243,9 +241,9 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
baseInfo.put("fphm",planeticketH.getPT_FPHM());//发票号码
baseInfo.put("fpdm","");//发票代码
baseInfo.put("fplx",fplx);//发票类型
baseInfo.put("kprq",DateUtil.format(planeticketH.getPT_MAKEDATE(),"yyyy-MM-dd"));//开票日期
baseInfo.put("kprq",planeticketH.getPT_MAKEDATE());//开票日期
baseInfo.put("bhszje",planeticketH.getPT_NOTAXAMOUNT());//不含税总金额
baseInfo.put("jym","");//校验码
baseInfo.put("jym",planeticketH.getPT_VALIDCODE());//校验码
baseInfo.put("bxje",planeticketH.getPT_NOTAXAMOUNT());//不含税实际报销金额
baseInfo.put("jsse","");//有效计算税额
baseInfo.put("jsdkzq","");//计算抵扣账期
@ -275,6 +273,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
if (null != trainticket){
JSONObject trainObj = new JSONObject();
trainObj.put("trainInvoice",JSONObject.toJSONString(trainticket));
trainObj.put("publicInvoice",JSONObject.toJSONString(info));
String fplx = "a2";
//1是电子票
if ("1".equals(trainticket.getTT_ELECTRONIC())){
@ -288,7 +287,7 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
baseInfo.put("fphm",trainticket.getTT_CODE());//发票号码
baseInfo.put("fpdm","");//发票代码 火车票不用传
baseInfo.put("fplx",fplx);//发票类型
baseInfo.put("kprq",DateUtil.format(trainticket.getTT_OUTDATE(),"yyyy-MM-dd"));//开票日期
baseInfo.put("kprq",DateUtil.format(trainticket.getTT_DATE(),"yyyy-MM-dd"));//开票日期
baseInfo.put("bhszje",trainticket.getTT_NOTAXAMOUNT());//不含税总金额
baseInfo.put("jym","");//校验码
baseInfo.put("bxje",trainticket.getTT_NOTAXAMOUNT());//不含税实际报销金额
@ -339,6 +338,40 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
invoiceInfo.put("contentInfo",contentInfo);
}
/**
* 客运汽车
* @param dataSourceCode 数据源编码
* @param info 发票公共表嘻嘻
* @param invoiceInfo 发票参数对象
* @param baseInfo 发票base参数对象
*/
private void busInvoice(String dataSourceCode, LexmisPublicinfoEntity info, JSONObject invoiceInfo, JSONObject baseInfo) {
ParamAssemblerContext context;//策略上下文类
JSONObject contentInfo;
ParamAssembler assembler;
LexmiscivBusinvoiceEntity businvoiceEntity = lexmiscivBusinvoiceService.queryOne(new LexmiscivBusinvoiceEntity(info.getPI_DATAKEY(),dataSourceCode));
if (null != businvoiceEntity){
JSONObject busObj = new JSONObject();
busObj.put("busInvoice",JSONObject.toJSONString(businvoiceEntity));
busObj.put("publicInfoice",JSONObject.toJSONString(info));
assembler = new BusInvoiceAssembler(busObj);
context = new ParamAssemblerContext(assembler);
contentInfo = context.assemble();
baseInfo.put("fphm", businvoiceEntity.getBI_FPHM());//发票号码
baseInfo.put("fpdm",businvoiceEntity.getBI_FPDM());//发票代码
baseInfo.put("fplx","a3");//发票类型
baseInfo.put("kprq",DateUtil.format(businvoiceEntity.getBI_DATE(),"yyyy-MM-dd"));//开票日期
baseInfo.put("bhszje",businvoiceEntity.getBI_NOTAXAMOUNT());//不含税总金额
baseInfo.put("jym","");//校验码
baseInfo.put("bxje",businvoiceEntity.getBI_NOTAXAMOUNT());//不含税金额
baseInfo.put("jsse","");//有效计算税额
baseInfo.put("jsdkzq","");//计算抵扣账期
baseInfo.put("signPerson","");//签收人
baseInfo.put("signStatus","1");//签收状态默认传1
invoiceInfo.put("baseInfo", baseInfo);
invoiceInfo.put("contentInfo",contentInfo);
}
}
/**
* 迈锐思增值税类发票类型转换成有度发票类型
@ -367,6 +400,9 @@ public class CInvoiceImportPluginServiceImpl implements ICInvoiceImportPluginSer
case "32"://电子发票(增值税普票)
youduFplx = "32";
break;
case "14"://电子发票(通行费)
youduFplx = "14";
break;
}
return youduFplx;
}