package com.by4cloud.platformx.business.entity; import com.baomidou.mybatisplus.annotation.TableField; import com.by4cloud.platformx.business.vo.ContractOutBoundVo; import com.by4cloud.platformx.common.data.mybatis.BaseModel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.v3.oas.annotations.media.Schema; import jakarta.persistence.Column; import jakarta.persistence.Entity; import jakarta.persistence.Transient; import lombok.Data; import org.hibernate.annotations.Comment; import org.springframework.format.annotation.DateTimeFormat; import java.math.BigDecimal; import java.util.Date; import java.util.List; /** * @author lwj * @version 1.0.0 * @ClassName BillingInfo.java * @Description TODO * @createTime */ @Data @Entity @org.hibernate.annotations.Table(appliesTo="billing_info",comment = "开票信息表")//给表加注释 @jakarta.persistence.Table(name = "billing_info")//开具发票返回值 @Comment("开票信息表") public class BillingInfo extends BaseModel { @Schema(description = "开票编号") @Column(columnDefinition = "VARCHAR(64) comment '开票编号'") private String entrustCode; @Schema(description = "开票种类(0-蓝票 1-红票)") @Column(columnDefinition = "tinyint(2) default 0 comment '开票种类(0-蓝票 1-红票)'") private Integer billingType; @Schema(description = "红票关联蓝票Id") @Column(columnDefinition = "bigint comment '红票关联蓝票Id'") private Long blueInvoiceId; @Schema(description = "关联合同ID") @Column(columnDefinition = "bigint not null comment '关联合同ID'") private Long contractId; @Schema(description = "合同编号") @Column(columnDefinition = "VARCHAR(64) comment '合同编号'") private String contractNo; @Schema(description = "合同名称") @Column(columnDefinition = "VARCHAR(64) comment '合同名称'") private String contractName; @Schema(description = "甲方id") @Column(name = "party_a_id",columnDefinition = "bigint comment '甲方id'") private Long partyAId; @Schema(description = "甲方名称") @Column(name = "party_a",columnDefinition = "VARCHAR(100) comment '甲方名称'") private String partyA; @Schema(description = "甲方统一社会信用代码") @Column(name = "credit_code_a",columnDefinition = "VARCHAR(30) comment '甲方统一社会信用代码'") private String creditCodeA; @Schema(description = "甲方开户银行") @Column(name = "bank_name_a",columnDefinition = "VARCHAR(20) comment '甲方开户银行'") private String bankNameA; @Schema(description = "甲方银行账号") @Column(name = "bank_account_a",columnDefinition = "VARCHAR(50) comment '甲方银行账号'") private String bankAccountA; @Schema(description = "甲方联系电话") @Column(name = "contact_phone_a",columnDefinition = "VARCHAR(50) comment '甲方联系电话'") private String contactPhoneA; @Schema(description = "乙方id") @Column(name = "party_b_id",columnDefinition = "bigint comment '乙方id'") private Long partyBId; @Schema(description = "乙方名称") @Column(name = "party_b",columnDefinition = "VARCHAR(100) comment '乙方名称'") private String partyB; @Schema(description = "乙方统一社会信用代码") @Column(name = "credit_code_b",columnDefinition = "VARCHAR(30) comment '乙方统一社会信用代码'") private String creditCodeB; @Schema(description = "乙方开户银行") @Column(name = "bank_name_b",columnDefinition = "VARCHAR(20) comment '乙方开户银行'") private String bankNameB; @Schema(description = "乙方银行账号") @Column(name = "bank_account_b",columnDefinition = "VARCHAR(50) comment '乙方银行账号'") private String bankAccountB; @Schema(description = "乙方联系电话") @Column(name = "contact_phone_b",columnDefinition = "VARCHAR(50) comment '乙方联系电话'") private String contactPhoneB; @Schema(description = "总金额") @Column(columnDefinition = "decimal(10,2) comment '总金额'") private BigDecimal totalAmount; @Schema(description = "税额") @Column(columnDefinition = "decimal(10,2) comment '总金额税额'") private BigDecimal totalTax; @Schema(description = "不含税金额") @Column(columnDefinition = "decimal(10,2) comment '不含税金额'") private BigDecimal amountNoTax; @Schema(description = "标的物详情") @Column(columnDefinition = "TEXT comment '标的物详情'") private String matterStr; @Schema(description = "状态(0-生效 1-失效)") @Column(columnDefinition = "tinyint(2) comment '状态(0-生效 1-失效)'") private Integer status; @Schema(description = "状态(0-未发送 1-发送失败 200-发送成功)") @Column(columnDefinition = "tinyint(2) default 0 comment '状态(200)'") private Integer bipStatus; @Schema(description = "开蓝票结果状态 0未开票 1开票成功 2开票失败") @javax.persistence.Column(columnDefinition="int(1) comment '开蓝票结果状态'") private Integer blueResultStatus; @Schema(description = "开红票结果状态 0未开票 1开票成功 2开票失败") @javax.persistence.Column(columnDefinition="int(1) comment '开红票结果状态'") private Integer redResultStatus; @Schema(description = "蓝票id") @Column(columnDefinition = "bigint default null comment '蓝票id'") private Long blueInvoiceResultId; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "蓝票开票时间") @Column(columnDefinition = "datetime comment '蓝票开票时间'") private Date blueInvoiceTime; @Schema(description = "蓝票地址") @Column(columnDefinition = "varchar(300) comment '蓝票地址'") private String invoicePath; @Schema(description = "蓝票url") @javax.persistence.Column(columnDefinition="VARCHAR(255) comment '蓝票url'") private String invoiceBlueUrl; @Schema(description = "红票结果id") @Column(columnDefinition = "bigint default null comment '红票结果id'") private Long redInvoiceResultId; @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") @Schema(description = "红票开票时间") @Column(columnDefinition = "datetime comment '红票开票时间'") private Date redInvoiceTime; @Schema(description = "红票地址") @Column(columnDefinition = "varchar(300) comment '红票地址'") private String invoiceRedPath; @Schema(description = "红冲发票url") @javax.persistence.Column(columnDefinition="VARCHAR(255) comment '红冲发票url'") private String invoiceRedUrl; @Schema(description = "开票详情") @Column(columnDefinition = "TEXT comment '开票详情'") private String invoiceRemark; /** * 出货单列表 */ @Transient @TableField(exist = false) private List contractOutBoundList; /** * 开票项列表 */ @Transient @TableField(exist = false) private List billingItems; }