package com.jwipc.finance.model.po;

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

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Date;

/**
 * <p>
 * 对账模块-付款计划主表
 * </p>
 *
 * @author 邓京术
 * @since 2025-07-14
 */
@Data
public class PaymentPlanPO implements Serializable {

    private Long id;

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

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

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

    /**
     * 数据状态 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;

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

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