package com.ruoyi.info.collection.domain;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import lombok.Data;

import java.io.Serial;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;

/**
 * 员工采购交易信息对象 ccdi_purchase_transaction
 *
 * @author ruoyi
 * @date 2026-02-06
 */
@Data
public class CcdiPurchaseTransaction implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /** 采购事项ID */
    @TableId(type = IdType.INPUT)
    private String purchaseId;

    /** 采购类别 */
    private String purchaseCategory;

    /** 项目名称 */
    private String projectName;

    /** 标的物名称 */
    private String subjectName;

    /** 标的物描述 */
    private String subjectDesc;

    /** 采购数量 */
    private BigDecimal purchaseQty;

    /** 预算金额 */
    private BigDecimal budgetAmount;

    /** 中标金额 */
    private BigDecimal bidAmount;

    /** 实际采购金额 */
    private BigDecimal actualAmount;

    /** 合同金额 */
    private BigDecimal contractAmount;

    /** 结算金额 */
    private BigDecimal settlementAmount;

    /** 采购方式 */
    private String purchaseMethod;

    /** 中标供应商名称 */
    private String supplierName;

    /** 供应商联系人 */
    private String contactPerson;

    /** 供应商联系电话 */
    private String contactPhone;

    /** 供应商统一信用代码 */
    private String supplierUscc;

    /** 供应商银行账户 */
    private String supplierBankAccount;

    /** 采购申请日期 */
    private Date applyDate;

    /** 采购计划批准日期 */
    private Date planApproveDate;

    /** 采购公告发布日期 */
    private Date announceDate;

    /** 开标日期 */
    private Date bidOpenDate;

    /** 合同签订日期 */
    private Date contractSignDate;

    /** 预计交货日期 */
    private Date expectedDeliveryDate;

    /** 实际交货日期 */
    private Date actualDeliveryDate;

    /** 验收日期 */
    private Date acceptanceDate;

    /** 结算日期 */
    private Date settlementDate;

    /** 申请人工号 */
    private String applicantId;

    /** 申请人姓名 */
    private String applicantName;

    /** 申请部门 */
    private String applyDepartment;

    /** 采购负责人工号 */
    private String purchaseLeaderId;

    /** 采购负责人姓名 */
    private String purchaseLeaderName;

    /** 采购部门 */
    private String purchaseDepartment;

    /** 创建时间 */
    @TableField(fill = FieldFill.INSERT)
    private Date createTime;

    /** 更新时间 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Date updateTime;

    /** 创建人 */
    @TableField(fill = FieldFill.INSERT)
    private String createdBy;

    /** 更新人 */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private String updatedBy;
}
