发票数据库设计

文章介绍了用于存储增值税发票信息的数据库表设计,包括发票主表和明细表的字段,如发票代码、号码、日期、金额、税额、类型等,并提供了对应的Java实体类表示这些数据结构。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

注意:根据业务需求:字段是否必填、长度、类型可自行调整

数据库表设计:

发票主表

CREATE TABLE `invoice` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `code` varchar(100) DEFAULT NULL COMMENT '发票代码',
  `number` varchar(100) DEFAULT NULL COMMENT '发票号码',
  `date` date DEFAULT NULL COMMENT '开票日期',
  `buyer_name` varchar(255) DEFAULT NULL COMMENT '购方抬头',
  `buyer_tax_code` varchar(255) DEFAULT NULL COMMENT '购方税号',
  `buyer_address_phone` varchar(500) DEFAULT NULL COMMENT '购方地址电话',
  `buyer_bank_account` varchar(255) DEFAULT NULL COMMENT '购方银行账号',
  `seller_name` varchar(255) DEFAULT NULL COMMENT '销方名称',
  `seller_tax_code` varchar(255) DEFAULT NULL COMMENT '销方税号',
  `seller_address_phone` varchar(500) DEFAULT NULL COMMENT '销方地址电话',
  `seller_bank_account` varchar(255) DEFAULT NULL COMMENT '销方银行账号',
  `remark` varchar(500) DEFAULT NULL COMMENT '备注',
  `machine_no` varchar(255) DEFAULT NULL COMMENT '机器编码',
  `type` varchar(20) DEFAULT NULL COMMENT '票种类型\r\n01:增值税专用发票,\r\n02:货运运输业增值税专用发票,\r\n03:机动车销售统一发票,\r\n04:增值税普通发票,\r\n08:增值税电子专用发票(含全电,全电仅新版接口支持),\r\n10:增值税电子普通发票(含全电,全电仅新版接口支持),\r\n11:增值税普通发票(卷式),\r\n14:增值税电子(通行费)发票,\r\n15:二手车销售统一发票,\r\n32:深圳区块链发票,\r\n102:通用机打电子发票',
  `check_code` varchar(255) DEFAULT NULL COMMENT '校验码',
  `is_abandoned` varchar(5) DEFAULT NULL COMMENT '是否作废(红冲)是否作废(红冲)\r\nY:已作废,N:未作废,H:红冲,HP:部分红冲,HF:全额红冲',
  `has_seller_list` varchar(5) DEFAULT NULL COMMENT '是否有销货清单\r\nY: 有清单 N:无清单',
  `seller_list_title` varchar(255) DEFAULT NULL COMMENT '销货清单标题',
  `seller_list_tax` bigint(20) DEFAULT NULL COMMENT '销货清单税额(分)',
  `amount_without_tax` bigint(20) DEFAULT NULL COMMENT '不含税金额(分)',
  `tax_amount` bigint(20) DEFAULT NULL COMMENT '税额(分)',
  `amount_with_tax` bigint(20) DEFAULT NULL COMMENT '含税金额(分)',
  `tax_bureau` varchar(255) DEFAULT NULL COMMENT '所属税局',
  `receiptor` varchar(40) DEFAULT NULL COMMENT '收款人',
  `issuer` varchar(40) DEFAULT NULL COMMENT '开票人',
  `reviewer` varchar(40) DEFAULT NULL COMMENT '复核人',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='增值税发票信息';

发票明细表

CREATE TABLE `invoice_item` (
  `id` bigint(20) NOT NULL COMMENT '主键',
  `invoice_id` bigint(20) DEFAULT NULL COMMENT '发票id',
  `line_no` int(5) DEFAULT NULL COMMENT '行号',
  `name` varchar(255) DEFAULT NULL COMMENT '名称',
  `spec` varchar(255) DEFAULT NULL COMMENT '规格',
  `unit` varchar(20) DEFAULT NULL COMMENT '单位',
  `quantity` varchar(40) DEFAULT NULL COMMENT '数量',
  `unit_price` bigint(20) DEFAULT NULL COMMENT '单价(分)',
  `amount_without_tax` bigint(20) DEFAULT NULL COMMENT '不含税金额(分)',
  `tax_rate` varchar(10) DEFAULT NULL COMMENT '税率',
  `tax_amount` bigint(20) DEFAULT NULL COMMENT '税额(分)',
  `tax_classify_code` varchar(255) DEFAULT NULL COMMENT '税收分类编码',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='增值税发票项目明细';

java实体

发票表

/**
 * 增值税发票信息
 */
public class Invoice {
       /**
     * 主键
     */
    private Long id;
    
    /**
     * 发票代码
     */
    private String code;
    
    /**
     * 发票号码
     */
    private String number;
    
    /**
     * 开票日期
     */
    private Date date;
    
    /**
     * 购方抬头
     */
    private String buyerName;
    
    /**
     * 购方税号
     */
    private String buyerTaxCode;
    
    /**
     * 购方地址电话
     */
    private String buyerAddressPhone;
    
    /**
     * 购方银行账号
     */
    private String buyerBankAccount;
    
    /**
     * 销方名称
     */
    private String sellerName;
    
    /**
     * 销方税号
     */
    private String sellerTaxCode;
    
    /**
     * 销方地址电话
     */
    private String sellerAddressPhone;
    
    /**
     * 销方银行账号
     */
    private String sellerBankAccount;
    
    /**
     * 备注
     */
    private String remark;
    
    /**
     * 机器编码
     */
    private String machineNo;
    
    /**
     * 票种类型
     * 01:增值税专用发票,
     * 02:货运运输业增值税专用发票,
     * 03:机动车销售统一发票,
     * 04:增值税普通发票,
     * 08:增值税电子专用发票(含全电,全电仅新版接口支持),
     * 10:增值税电子普通发票(含全电,全电仅新版接口支持),
     * 11:增值税普通发票(卷式),
     * 14:增值税电子(通行费)发票,
     * 15:二手车销售统一发票,
     * 32:深圳区块链发票,
     * 102:通用机打电子发票
     */
    private String type;
    
    /**
     * 校验码
     */
    private String checkCode;
    
    /**
     * 是否作废(红冲)
     * Y:已作废
     * N:未作废
     * H:红冲
     * HP:部分红冲
     * HF:全额红冲
     */
    private String isAbandoned;
    
    /**
     * 是否有销货清单
     * Y:有清单
     * N:无清单
     */
    private String hasSellerList;
    
    /**
     * 销货清单标题
     */
    private String sellerListTitle;
    
    /**
     * 销货清单税额(分)
     */
    private Long sellerListTax;
    
    /**
     * 不含税金额(分)
     */
    private Long amountWithoutTax;
    
    /**
     * 税额(分)
     */
    private Long taxAmount;
    
    /**
     * 含税金额(分)
     */
    private Long amountWithTax;
    
    /**
     * 所属税局
     */
    private String taxBureau;
    
    /**
     * 收款人
     */
    private String receiptor;
    
    /**
     * 开票人
     */
    private String issuer;
    
    /**
     * 复核人
     */
    private String reviewer;

    // Getters and Setters 略
}

发票明细表

/**
 * 增值税发票项目明细
 */
public class InvoiceItem {
    /**
     * 主键
     */
    private Long id;

    /**
     * 发票id
     */
    private Long invoiceId;

    /**
     * 行号
     */
    private Integer lineNo;

    /**
     * 名称
     */
    private String name;

    /**
     * 规格
     */
    private String spec;

    /**
     * 单位
     */
    private String unit;

    /**
     * 数量
     */
    private String quantity;

    /**
     * 单价(分)
     */
    private Long unitPrice;

    /**
     * 不含税金额(分)
     */
    private Long amountWithoutTax;

    /**
     * 税率
     */
    private String taxRate;

    /**
     * 税额(分)
     */
    private Long taxAmount;

    /**
     * 税收分类编码
     */
    private String taxClassifyCode;

    // Getters and Setters 略
}

传统发票管理体系对发票数据的管理缺失已经对税收管理提出了严峻的挑战。随着电子凭证的发展、互联网络的日益普及和相关设备的不断更新,税务机关提出了网络发票的管理体系。网络发票系统强化对发票票面的信息管理,因此其管理对象从物理的发票纸转为了发票上面所承载的信息,即电子发票数据,在这种情况下其配套的系统也将需要对发票数据进行采集、校验、授权、分析和管理,实现全过程信息化监管。论文针对网络发票高并发挑战设计实现和实现了网络发票系统。 网络发票系统为B/S架构,采用J2EE平台开发,应用服务器采用Weblogic 9,数据库为Oracle 10g,Web前置服务为Apache 2,所运行操作系统有AIX 5.3 和 RedHat Linux AS4。文章按照软件工程过程管理方法,从需求分析开始,梳理系统总体业务逻辑和功能架构,进而细化到功能性需求;在需求分析基础上,开展系统总体设计,包括应用逻辑架构、系统组成结构、应用数据架构和逻辑部署架构的设计;最后以系统总体设计为基础对系统进行实现,以发票开具、发票配号这两个主要功能为例介绍了系统实现过程。 本文通过一系列关键技术的分析与研究,不仅完整提出了网络发票设计与实现,更有效解决了网络发票应用系统高并发下的性能压力挑战,所采用技术包括:三库分离、消息队列、伪随机算法、执行资源隔离等性能优化技术。根据半多来的实际使用验证,总体性能良好、稳定。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

包耳邹

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值