package com.maintain.business.domain.vo;

import java.math.BigDecimal;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.maintain.common.annotation.ExcelDictFormat;
import com.maintain.common.convert.ExcelDictConvert;
import lombok.Data;
import java.util.Date;

import java.io.Serializable;
import java.util.List;

/**
 * 结算物料视图对象 erp_settlement_material
 *
 * @author liushuai
 * @date 2025-04-16
 */
@Data
@ExcelIgnoreUnannotated
public class ErpSettlementMaterialVo implements Serializable {

    private static final long serialVersionUID = 1L;

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

    /**
     * 结算单号
     */
    @ExcelProperty(value = "结算单号")
    private String settlementNumber;

    /**
     * 结算名称
     */
    @ExcelProperty(value = "结算名称")
    private String settlementName;

    /**
     * 结算时间
     */
    @ExcelProperty(value = "结算时间")
    private Date settlementTime;

    /**
     * 供应商ID
     */
    @ExcelProperty(value = "供应商ID")
    private Long vendorId;

    /**
     * 供应商名称
     */
    @ExcelProperty(value = "供应商名称")
    private String vendorName;

    /**
     * 结算方式
     */
    @ExcelProperty(value = "结算方式")
    private Integer settlementType;

    /**
     * 结算金额
     */
    @ExcelProperty(value = "结算金额")
    private BigDecimal settlementMoney;

    /**
     * 状态（1待确认 2已确认）
     */
    @ExcelProperty(value = "状态", converter = ExcelDictConvert.class)
    @ExcelDictFormat(readConverterExp = "1=待确认,2=已确认")
    private Integer state;

    /**
     * 创建人
     */
    @ExcelProperty(value = "创建人")
    private String createBy;

    /**
     * 创建时间
     */
    @ExcelProperty(value = "创建时间")
    private Date createTime;

    /**
     * 结算出库单列表
     */
    private List<ErpMaterialPickingVo> pickingList;

}
