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.Table; 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 wjli * @description * @date 2026/4/29 10:51 **/ @Data @Entity @Table(name = "sale_credit") @Comment("结算记录") public class SaleCredit extends BaseModel { @Schema(description = "销售编号") @Column(columnDefinition = "VARCHAR(64) comment '销售编号'") private String entrustCode; @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 amountAndtax; @Schema(description = "标的物详情") @Column(columnDefinition = "TEXT comment '标的物详情'") private String matterStr; @Schema(description = "对应出货单") @Column(columnDefinition = "varchar(300) comment '对应出货单'") private String outBoundIds; @Schema(description = "状态(0-生效 1-失效)") @Column(columnDefinition = "tinyint(2) default 0 comment '状态(0-生效 1-失效)'") private Integer status; @Schema(description = "状态(200)") @Column(columnDefinition = "tinyint(2) default 0 comment '状态(200)'") private Integer bipStatus; @Schema(description = "开蓝票结果状态 0未开票 1开票成功 2开票失败") @javax.persistence.Column(columnDefinition="int(1) default 0 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 = "红票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 = "TEXT comment '开票详情'") private String invoiceRemark; @Schema(description = "蓝票地址") @Column(columnDefinition = "varchar(300) comment '蓝票地址'") private String invoicPath; @Schema(description = "红票地址") @Column(columnDefinition = "varchar(300) comment '红票地址'") private String invoicRedPath; @Schema(description = "发票url") @javax.persistence.Column(columnDefinition="VARCHAR(50) comment '发票url'") private String invoicUrl; @Schema(description = "红冲发票url") @javax.persistence.Column(columnDefinition="VARCHAR(50) comment '红冲发票url'") private String invoicRedUrl; /** * 出货单列表 */ @Transient @TableField(exist = false) private List contractOutBoundList; }