package com.jwipc.finance.entity;

import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import lombok.Getter;
import lombok.Setter;

import java.io.Serializable;
import java.time.LocalDateTime;

/**
 * <p>
 * 对账模块-付款计划主表
 * </p>
 *
 * @author 邓京术
 * @since 2025-07-14
 */
@Getter
@Setter
@TableName("fin_payment_plan")
public class PaymentPlan implements Serializable {

    private static final long serialVersionUID = 1L;

    /**
     * 数据主键
     */
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    /**
     * 付款计划单号
     */
    private String paymentPlanNo;

    /**
     * 付款计划年份
     */
    private String paymentPlanYear;

    /**
     * 付款计划月份
     */
    private String paymentPlanMonth;

    /**
     * 0暂时存，1暂不用 2待采购主管确认，3采购主管拒绝，4待财务确认 5财务拒绝 6已发布（财务审批通过）
     */
    private Integer status;

    /**
     * 备注
     */
    private String remark;

    /**
     * OA审批流程ID
     */
    private String oaProcessId;

    /**
     * OA审批流程号
     */
    private String oaProcessNo;

    /**
     * 推送OA次数(后续推送OA时赋值价格组审批流程号, 价格组审批流程号: 计划单号+推送OA次数)
     */
    private Integer pushOaNum;

    /**
     * 推送OA员工工号
     */
    private String pushOaUserCode;

    /**
     * 推送OA员工姓名
     */
    private String pushOaUserName;

    /**
     * 采购确认时间
     */
    private LocalDateTime purchaseConfirmTime;

    /**
     * 采购确认人
     */
    private Long purchaseConfirmUserId;

    /**
     * 财务确认时间
     */
    private LocalDateTime financeConfirmTime;

    /**
     * 财务确认人
     */
    private Long financeConfirmUserId;

    /**
     * 创建用户ID
     */
    private Long createUserId;

    /**
     * 创建用户编码
     */
    private String createUserCode;

    /**
     * 创建用户姓名
     */
    private String createUserName;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 最后更新用户ID
     */
    private Long updateUserId;

    /**
     * 最后更新用户编码
     */
    private String updateUserCode;

    /**
     * 最后更新用户姓名
     */
    private String updateUserName;

    /**
     * 付款计划类型：计划类型: S:区分汇总,N:不区分汇总
     */
    private String planType;

    /**
     * 最后更新时间
     */
    private LocalDateTime updateTime;

    /**
     * 删除标识 0:未删除 1:已删除
     */
    private Integer deleteFlag;

}
