package com.jwipc.contract.model.po;

import lombok.Data;

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

/**
 * <p>
 * 对账付款申请主表
 * </p>
 *
 * @author WT
 * @since 2024-03-08
 */
@Data
public class ContractPaymentApplyPO implements Serializable {

    private Long id;

    /**
     * 对账付款申请单号
     */
    private String apApplyNo;
    private String feePayer;
    /**
     * 数据状态 1:暂存 2:待推送 3:审批中 4:审批不通过 5:已支付
     */
    private Integer status;

    private Integer changeStatus;

    private Integer freezeStatus;

    private Integer urgentFlag;

    /**
     * 付款公司代码
     */
    private String companyCode;
    private String paymentType;

    /**
     * 付款公司名称
     */
    private String companyName;

    /**
     * 工厂代码
     */
    private String factoryCode;

    /**
     * 付款委托书附件
     */
    private String paymentFiles;

    /**
     * 工厂名称
     */
    private String factoryName;

    /**
     * 供应商编码
     */
    private String supplierCode;

    /**
     * 供应商名称
     */
    private String supplierName;
    /**
     * 供应商编码
     */
    private String paymentSupplierCode;
    /**
     * 供应商名称
     */
    private String paymentSupplierName;
    private Integer collectionFlag;

    /**
     * 供应商银行代码/供应商开户行代码/供应商联行号
     */
    private String supBankCode;

    /**
     * 供应商银行名称/供应商开户行名称
     */
    private String supBankName;

    /**
     * 供应商银行账号
     */
    private String supBankAccount;

    /**
     * 币种
     */
    private String currencyCode;

    /**
     * 付款方式编码
     */
    private String paymentWayCode;

    /**
     * 付款方式描述
     */
    private String paymentWayDesc;

    /**
     * 申请备注
     */
    private String applyRemark;

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

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

    /**
     * oa审核意见
     */
    private String oaProcessMessage;

    /**
     * 创建人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;

    /**
     * oa科目主键
     */
    private String oaSubKey;

    /**
     * oa部门主键
     */
    private String oaDepKey;

    /**
     * oa部门名称
     */
    private String oaDepName;

    /**
     * oa年份
     */
    private String oaYear;

    /**
     * oa季度
     */
    private String oaQuarter;

    /**
     * oa服务类型
     */
    private String oaType;

    /**
     * oa厂区地点
     */
    private String oaPlantArea;

    /**
     * oa需求部门
     */
    private String oaDemandDep;

    /**
     * oa代码
     */
    private String oaCode;

    /**
     * oa预算科目(代码描述)
     */
    private String oaSubName;

    /**
     * oa合同信息（合同号+合同名称）
     */
    private String oaContract;

    /**
     * oa合同金额
     */
    private BigDecimal oaContractMoney;

    /**
     * oa已付款金额
     */
    private BigDecimal oaAleradyPayMoney;

    /**
     * oa本季度预算（预算总额）
     */
    private BigDecimal oaQuaeterBud;

    /**
     * oa设备名称
     */
    private String oaDeviceName;

    /**
     * oa付款单位
     */
    private String oaPayCompany;

    /**
     * oa本次付款描述
     */
    private String oaPayRemark;

    /**
     * oa规格
     */
    private String oaSpecs;

    /**
     * oa单位
     */
    private String oaUnit;

    /**
     * oa数量
     */
    private String oaNum;

    /**
     * oa设备验收人
     */
    private String oaDevicePerson;

    /**
     * 设备验收人code
     */
    private String oaDevicePersonCode;

    /**
     * oa固定资产编号
     */
    private String oaFixedAssetsCode;

    /**
     * oa预算内付款金额
     */
    private BigDecimal oaBudInnerMoney;

    /**
     * oa预算外付款金额
     */
    private BigDecimal oaBudOutMoney;

    /**
     * 预算内申请金额
     */
    private BigDecimal budInnerMoney;

    /**
     * 预算外申请金额
     */
    private BigDecimal budOutMoney;

    /**
     * 预算内余额
     */
    private BigDecimal oaBalance;

    /**
     * 紧急程度
     */
    private String oaUrgencyDegree;

    /**
     * oa转账金额
     */
    private BigDecimal oaTransferMoney;

    /**
     * oa承兑金额
     */
    private BigDecimal oaAcceptanceMoney;

    /**
     * 维修内容
     */
    private String oaRepairContent;

    /**
     * oa主管会计
     */
    private String oaAccountantCharge;

    /**
     * 主管会计code
     */
    private String oaAccountantChargeCode;

    /**
     * 经办人
     */
    private String oaHandler;

    /**
     * 经办人工号
     */
    private String oaHandlerCode;

    /**
     * 费用归属
     */
    private String oaCostAttribution;

    /**
     * 现金
     */
    private BigDecimal oaCash;

    /**
     * 合同号
     */
    private String contractNo;

    /**
     * 流程id
     */
    private Integer processId;

    /**
     * 研发项目
     */
    private String rdProject;

    /**
     * 用途
     */
    private String purpose;

    /**
     * 借款金额
     */
    private BigDecimal oaBorrowMoney;

    /**
     * 是否安全生产费 0是1否
     */
    private Byte isSafeProductionCost;

    /**
     * 是否oa补录 0：否 1：是
     */
    private Integer isOa;

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

    /**
     * 子项目名称
     */
    private String oaChildProjectName;

    /**
     * 租聘费类别
     */
    private String oaHireType;

    /**
     * 预算外超额
     */
    private BigDecimal oaOutExcess;

    /**
     * 预算外超出比
     */
    private BigDecimal oaExcessScale;

    /**
     * oa年度预算代码 （仅日常借款使用）
     */
    private String oaYearBudget;

    /**
     * oa申请人工号
     */
    private String oaApplyUserCode;

    /**
     * oa申请人姓名
     */
    private String oaApplyUserName;

    /**
     * 项目经理
     */
    private String oaProjectManager;

    /**
     * 项目经理编码
     */
    private String oaProjectManagerCode;

    /**
     * 费用部门编码
     */
    private String costDeptCode;

    /**
     * 费用部门名称
     */
    private String costDeptName;

    /**
     * 使用人编码
     */
    private String useCode;

    /**
     * 使用人名称
     */
    private String useName;

    /**
     * 主管BP经理编码
     */
    private String bpCode;

    /**
     * 主管BP经理名称
     */
    private String bpName;

    /**
     * 费用科目
     */
    private String expenseAccount;

    /**
     * 费用科目名称
     */
    private String expenseAccountName;

    /**
     * 会计年度
     */
    private String accountingYear;

    /**
     * 会计凭证
     */
    private String accountingDocument;

    /**
     * 1 未同步 2 新建同步成功 3 变更同步成功 4 新建同步失败 5、变更同步失败
     */
    private Integer syncState;

    /**
     * 同步返回信息
     */
    private String syncMsg;

    /**
     * 审批通过时间
     */
    private LocalDateTime approvalTime;

    /**
     * OA项目
     */
    private String oaXm;

    /**
     * OA业务科目
     */
    private String oaYwkm;

    /**
     * oa科目主键(查询时使用)
     */
    private String llkzj;

    /**
     * 附件ids
     */
    private String files;

    /**
     * 是否提前付款；0-否；1-是
     */
    private Integer advancePaymentFlag;

    /**
     * 承兑期限
     */
    private String acceptanceMethod;

    /**
     * 报关公司编码
     */
    private String faSupplier;

    /**
     * 报关公司名称
     */
    private String faSupplierName;

    /**
     * 实际应付金额
     */
    private BigDecimal actualityPayMoney;

    /**
     * 付款用途
     */
    private String paymentPurpose;

    /**
     * 付款用途描述
     */
    private String paymentPurposeDesc;

    /**
     * 供应商退款（1：是，0：否）
     */
    private String supplierReturn;


    /**
     * 影像编码
     */
    private String imgCode;

    /**
     * 影像编码
     */
    private String poImgCode;

    /**
     * 影像创建时间
     */
    private LocalDateTime imgTime;

    /**
     * 影像创建人
     */
    private Long imgUserId;

    /**
     * 付款类型
     */
    private String businessType;

    /**
     * 付款公司
     */
    private String paymentCompanyCode;

    /**
     * 收款单位
     */
    private String paymentCompanyName;

    /**
     * 收款地址
     */
    private String bankAddress;
    /**
     * 逾期款项
     */
    private BigDecimal overdueAmount;
    /**
     * 到期款项
     */
    private BigDecimal dueAmount;
    /**
     * 应付账款余额
     */
    private BigDecimal accountsPayableBalance;
    /**
     * 暂估余额
     */
    private BigDecimal provisionalBalance;


    /**
     * 邮件发送标识
     */
    private Integer sendEmailCollectionFlag;
}
