package com.pusong.business.domain.vo;

import java.math.BigDecimal;
import java.util.Date;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.pusong.business.domain.PsContractPay;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.pusong.common.excel.annotation.ExcelDictFormat;
import com.pusong.common.excel.convert.ExcelDictConvert;
import com.pusong.common.translation.annotation.Translation;
import com.pusong.common.translation.constant.TransConstant;
import io.github.linpeilie.annotations.AutoMapper;
import lombok.Data;

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



/**
 * 合同回款记录视图对象 ps_contract_pay
 *
 * @author wls
 * @date 2024-08-01
 */
@Data
@ExcelIgnoreUnannotated
@AutoMapper(target = PsContractPay.class)
public class PsContractPayVo implements Serializable {

    @Serial
    private static final long serialVersionUID = 1L;

    /**
     * 主键id
     */
    @ExcelProperty(value = "主键id")
    private Long id;

    /**
     * 合同id
     */
    @ExcelProperty(value = "合同编码")
    private String contractCode;

    /**
     * 回款金额
     */
    @ExcelProperty(value = "回款金额")
    private BigDecimal money;
    /**
     * 业务类型1回款2退款
     */
    private String businessType;

    /**
     * 回款日期
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date payDate;

    /**
     * 回款类型（1全款，2分期）
     */
    private String payType;

    /**
     * 支付方式（1扫码，2对公，3现金，4对私）
     */
    private String payMode;

    /**
     * 收款主体
     */
    @Translation(type = TransConstant.DICT_TYPE_TO_LABEL ,other = "contract_main")
    private String gathMain;

    /**
     * 回款凭证(多个时用逗号分隔)
     */
    private String payCertification;

    /**
     * 回款备注
     */
    private String payDesc;

    /**
     * 支付状态 PayStatusEnum
     */
    private String payStatus;
    /**
     * 支付状态 审批失败描述
     */
    private String payStatusDesc;
    /**
     * 创建时间
     */
    @JsonFormat(pattern = "yyyy-MM-dd")
    private Date createTime;
    /**
     * 创建者
     */
    private Long createBy;

}
