diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfoDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfoDTO.java new file mode 100644 index 0000000..4537221 --- /dev/null +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/BillInfoDTO.java @@ -0,0 +1,335 @@ +package com.jianshui.invoice.domain; + +import com.baomidou.mybatisplus.annotation.TableField; +import com.fasterxml.jackson.annotation.JsonFormat; +import com.jianshui.common.annotation.Excel; +import com.jianshui.common.core.domain.BaseEntity; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import org.apache.commons.lang3.builder.ToStringBuilder; +import org.apache.commons.lang3.builder.ToStringStyle; + +import java.math.BigDecimal; +import java.util.Date; +import java.util.List; +import java.util.Map; + +/** + * 开票信息对象 bill_info + * + * @author Gong Quanlin + * @date 2022-03-27 + */ +@Data +public class BillInfoDTO +{ + + /** 本系统订单号 */ + @Excel(name = "本系统订单号") + private String systemOrderno; + + /** 客户系统订单号 */ + @Excel(name = "客户系统订单号") + private String outTradeOrderno; + + /** 流水号 */ + @Excel(name = "流水号") + private String fpqqlsh; + + /** 发票种类 */ + @Excel(name = "发票种类") + private String invoiceType; + + /** 购方名称 */ + @Excel(name = "购方名称") + private String buyerName; + + /** 购方税号 */ + @Excel(name = "购方税号") + private String buyerTaxnum; + + /** 购方地址 */ + @Excel(name = "购方地址") + private String buyerAddress; + + /** 购方电话 */ + @Excel(name = "购方电话") + private String buyerTelephone; + + /** 购货方开户行名称 */ + @Excel(name = "购货方开户行名称") + private String buyerBank; + + /** 购方开户行及账户 */ + @Excel(name = "购方开户行及账户") + private String buyerAccount; + + /** 购方邮箱 */ + @Excel(name = "购方邮箱") + private String buyerEmail; + + /** 购方联系电话 */ + @Excel(name = "购方联系电话") + private String buyerPhone; + + /** 销方名称 */ + @Excel(name = "销方名称") + private String sellerName; + + /** 销方税号 */ + @Excel(name = "销方税号") + private String sellerTaxnum; + + /** 销方地址 */ + @Excel(name = "销方地址") + private String sellerAddress; + + /** 销方电话 */ + @Excel(name = "销方电话") + private String sellerTelephone; + + /** 销方开户行及账户 */ + @Excel(name = "销方开户行及账户") + private String sellerAccount; + + /** 备注 */ + @Excel(name = "备注") + private String message; + + /** 销方开户行名称 */ + @Excel(name = "销方开户行名称") + private String sellerBank; + + /** 开票人 */ + @Excel(name = "开票人") + private String clerk; + + /** 收款人 */ + @Excel(name = "收款人") + private String payee; + + /** 复核人 */ + @Excel(name = "复核人") + private String checker; + + /** 红字信息表编号 */ + @Excel(name = "红字信息表编号") + private String redInvoiceInfoCode; + + /** 开票分机号 */ + @Excel(name = "开票分机号") + private String fjh; + + /** 开票终端号 */ + @Excel(name = "开票终端号") + private String terminalNumber; + + /** 开票类型 */ + @Excel(name = "开票类型:1正票 2红票") + private String kptype; + + /** 原billInfo订单号 */ + @Excel(name = "原billInfo订单号") + private String originSystemOrderno; + + /** 编码表编号 */ + @Excel(name = "编码表编号") + private String bmbbh; + + /** 原发票代码 */ + @Excel(name = "原发票代码") + private String originFpdm; + + /** 原发票号码 */ + @Excel(name = "原发票号码") + private String originFphm; + + + + /** 推送方式 */ + @Excel(name = "推送方式") + private String tsfs; + + /** 清单标志 */ + @Excel(name = "清单标志") + private String qdbz; + + /** 清单项目名称 */ + @Excel(name = "清单项目名称") + private String qdxmmc; + + /** 代开标志 */ + @Excel(name = "代开标志") + private String dkbz; + + /** 成品油标志 */ + @Excel(name = "成品油标志") + private String cpybz; + + /** 开票状态 */ + @Excel(name = "开票状态") + private Integer state; + + /** 订单来源 */ + @Excel(name = "订单来源") + private String source; + + /** 服务公司 */ + @Excel(name = "服务公司") + private String serviceSupplierKey; + + /** 单据类型 */ + @Excel(name = "单据类型") + private String billType; + + /** 业务留存字段 */ + @Excel(name = "业务留存字段") + private String businessRemark; + + /** 不含税金额 */ + @Excel(name = "不含税金额") + private BigDecimal taxfreeamt; + + /** 开票时间 */ + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "开票时间", width = 30, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date invoicedTime; + + /** 税额 */ + @Excel(name = "税额") + private BigDecimal tax; + + /** 含税金额 */ + @Excel(name = "含税金额") + private BigDecimal taxamt; + + /** 删除标志 */ + private Date deletedTime; + + /** 发票明细信息 */ + @TableField(exist = false) + private List billDetailList; + + @TableField(exist = false) + private String searchValue; + + @TableField(exist = false) + private String remark; + + @TableField(exist = false) + private Map params; + + /** 回调地址 */ + @Excel(name = "回调地址") + private String callbackUrl; + + /** 经办人姓名 */ + private String jbrxm; + /** 经办人证件号码 */ + private String jbrzjhm; + /** 经办人证件种类代码 */ + private String jbrzjzldm; + /** 经办人纳税人识别号 */ + private String jrznsrsbh; + /** 价税合计 */ + private String jshj; + /** 特定要素类型代码 */ + private String tdyslxdm; + /** tdywxx金财数科字段 */ + private String tdywxx; + /** ext金财数科字段 */ + private String ext; + + /** 全电新增字段 **/ + private String async; + + // TODO: 2023/3/30 后期看看需不需要这部分存库 + @TableField(exist=false) + @ApiModelProperty(value = "办税人身份证号") + private String bsrysfzjhm; + + + @TableField(exist=false) + @ApiModelProperty(value = "*地区编码(参考码表)") + private String dqbm; + + @TableField(exist=false) + @ApiModelProperty(value = "lzfpkj") + private String serviceId; + + @TableField(exist=false) + @ApiModelProperty(value = "放弃享受减按1%征收率原因") + private String kjlx; + + @TableField(exist=false) + @ApiModelProperty(value = "出行人") + private String cxr; + + @TableField(exist=false) + @ApiModelProperty(value = "出行人证件类型") + private String cxrzjlx; + + @TableField(exist=false) + @ApiModelProperty(value = "出行人证件号码") + private String cxrzjhm; + + @TableField(exist=false) + @ApiModelProperty(value = "出行日期") + private String cxrq; + + @TableField(exist=false) + @ApiModelProperty(value = "出发地") + private String cfd; + + @TableField(exist=false) + @ApiModelProperty(value = "到达地") + private String ddd; + + @TableField(exist=false) + @ApiModelProperty(value = "交通工具类型") + private String jtgjlx; + + @TableField(exist=false) + @ApiModelProperty(value = "等级") + private String dengj; + + @TableField(exist=false) + @ApiModelProperty(value = "货物运输服务") + private String hwysfw; + + @TableField(exist=false) + @ApiModelProperty(value = "起运地") + private String qyd; + + @TableField(exist=false) + @ApiModelProperty(value = "运输工具号牌") + private String ysgjhp; + + @TableField(exist=false) + @ApiModelProperty(value = "运输工具种类") + private String ysgjzl; + + @TableField(exist=false) + @ApiModelProperty(value = "运输货物名称") + private String yshwmc; + + @TableField(exist=false) + @ApiModelProperty(value = "含税标志 1-不含税 2-含税") + private String hsbz; + + @TableField(exist=false) + @ApiModelProperty(value = "放弃享受减按1%征收率原因") + private String kjly; + + @TableField(exist=false) + @ApiModelProperty(value = "附加信息名称") + private String fjxxmc; + + @TableField(exist=false) + @ApiModelProperty(value = "附加信息内容") + private String fjxxnr; + + + + +} diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddInfoTwoDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddInfoTwoDTO.java index 0e973e4..6a4ad51 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddInfoTwoDTO.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddInfoTwoDTO.java @@ -36,20 +36,17 @@ public class InvoiceAllAddInfoTwoDTO { /** address*/ @Alias("buyerAddress") - @NotEmpty @ApiModelProperty(value = "购买方地址") private String gmfdz; /** buyerBank*/ @Alias("buyerBank") - @NotEmpty @ApiModelProperty(value = "购买方开户行") private String gmfkhh; /** phone*/ @Alias("buyerPhone") - @NotEmpty @ApiModelProperty(value = "购买方联系电话") private String gmflxdh; @@ -61,13 +58,11 @@ public class InvoiceAllAddInfoTwoDTO { /** taxnum*/ @Alias("buyerTaxnum") - @NotEmpty @ApiModelProperty(value = "购买方税号") private String gmfnsrsbh; /** fpqqlsh*/ @Alias("buyerAccount") - @NotEmpty @ApiModelProperty(value = "购买方银行账号") private String gmfyhzh; @@ -84,19 +79,15 @@ public class InvoiceAllAddInfoTwoDTO { @ApiModelProperty(value = "含税标志 1-不含税 2-含税") private String hsbz; - @NotEmpty @ApiModelProperty(value = "经办人姓名") private String jbrxm; - @NotEmpty @ApiModelProperty(value = "经办人证件号码") private String jbrzjhm; - @NotEmpty @ApiModelProperty(value = "经办人证件种类代码") private String jbrzjzldm; - @NotEmpty @ApiModelProperty(value = "经办人纳税人识别号") private String jrznsrsbh; diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddTwoDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddTwoDTO.java index 9e9a629..ec4de1c 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddTwoDTO.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddTwoDTO.java @@ -31,7 +31,6 @@ public class InvoiceAllAddTwoDTO { @Alias("saletaxnum") private String nsrsbh; - @NotEmpty @ApiModelProperty(value = "lzfpkj") private String serviceId; diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddmxListTwoDTO.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddmxListTwoDTO.java index 4e47720..c02f3a0 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddmxListTwoDTO.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/domain/dto/api/jcsk/add/InvoiceAllAddmxListTwoDTO.java @@ -16,13 +16,11 @@ public class InvoiceAllAddmxListTwoDTO { /** */ @Alias("price") - @NotEmpty @ApiModelProperty(value = "单价") private String dj; /** */ @Alias("unit") - @NotEmpty @ApiModelProperty(value = "单位") private String dw; @@ -55,7 +53,6 @@ public class InvoiceAllAddmxListTwoDTO { /** */ @Alias("num") - @NotEmpty @ApiModelProperty(value = "商品数量") private String spsl; diff --git a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java index 482cc6d..f25f3a3 100644 --- a/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java +++ b/jianshui-invoice/src/main/java/com/jianshui/invoice/service/impl/api/JcskInvoiceApiServiceImpl.java @@ -1,6 +1,7 @@ package com.jianshui.invoice.service.impl.api; import java.util.Date; +import cn.hutool.core.bean.copier.CopyOptions; import com.jianshui.invoice.domain.dto.api.*; import com.jianshui.invoice.domain.dto.api.jcsk.*; @@ -109,20 +110,20 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { queryDTO.setNsrsbh(invoiceAllYhdj.getNsrsbh()); queryDTO.setRequestId("tycxjk"); - ValidateUtils.validate(queryDTO); - - - // 开票实体转换,校验 InvoiceAllAddTwoDTO invoiceAllAddTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddTwoDTO.class); invoiceAllAddTwoDTO.setDqbm(queryDTO.getDqbm()); invoiceAllAddTwoDTO.setBsrysfzjhm(queryDTO.getBsrysfzjhm()); invoiceAllAddTwoDTO.setNsrsbh(queryDTO.getNsrsbh()); + invoiceAllAddTwoDTO.setAsync("true"); ValidateUtils.validate(invoiceAllAddTwoDTO); - InvoiceAllAddInfoTwoDTO invoiceAllAddInfoTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddInfoTwoDTO.class); - ValidateUtils.validate(invoiceAllAddInfoTwoDTO); + // 忽略明细属性 + InvoiceAllAddInfoTwoDTO invoiceAllAddInfoTwoDTO = BeanUtil.copyProperties(billInfo, InvoiceAllAddInfoTwoDTO.class + ,"fjxxList","mxList","tdywxx","ext"); + // TODO: 2023/4/24 明细处理 必填非必填对应 + ValidateUtils.validate(invoiceAllAddInfoTwoDTO); // 明细集合 List mxList = BeanUtil.copyToList(billInfo.getBillDetailList(), InvoiceAllAddmxListTwoDTO.class); @@ -133,6 +134,10 @@ public class JcskInvoiceApiServiceImpl implements IInvoiceApiService { ValidateUtils.validate(addmxListDTO); } + invoiceAllAddInfoTwoDTO.setMxList(mxList); + invoiceAllAddTwoDTO.setJsonData(invoiceAllAddInfoTwoDTO); + + // 报文转换存储 billInfo.setCompanyId(companyservice.getCompanyid()); billInfo.setServiceSupplierKey("JCSK");