package com.zt.plat.module.erp.controller.admin.erp.vo;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import com.zt.plat.module.api.dto.MaterialOtherDTO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;

import java.time.LocalDateTime;
import java.util.List;

@Schema(description = "管理后台 - ERP物料数据 Response VO")
@Data
@ExcelIgnoreUnannotated
public class ErpMaterialRespVO {
    @Schema(description = "关联表主键，删除需要使用这个", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
    private Long corrId;

    @Schema(description = "主键", requiredMode = Schema.RequiredMode.REQUIRED, example = "2038")
    @ExcelProperty("主键")
    private Long id;

    @Schema(description = "中铜物料编码;系统使用时使用该编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("中铜物料编码;系统使用时使用该编码")
    private String downCenterNumber;

    @Schema(description = "物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
    private String materialNumber;

    @Schema(description = "中铝物料编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("中铝物料编码")
    private String centerNumber;

    @Schema(description = "创建日期", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("创建日期")
    private LocalDateTime createDate;

    @Schema(description = "物料类型", requiredMode = Schema.RequiredMode.REQUIRED, example = "2")
    @ExcelProperty("物料类型")
    private String materialType;

    @Schema(description = "物料大类组", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("物料大类组")
    private String materialGroupDate;

    @Schema(description = "外部物料小类组", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("外部物料小类组")
    private String externalMaterialGroupDate;

    @Schema(description = "计量单位编码", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("计量单位编码")
    private String unit;

    @Schema(description = "计量单位描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("计量单位描述")
    private String unitDescription;

    @Schema(description = "物料类型描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("物料类型描述")
    private String materialTypeDescription;

    @Schema(description = "物料组描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("物料组描述")
    private String materialGroupDescription;

    @Schema(description = "外部物料小类组描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("外部物料小类组描述")
    private String externalMaterialGroupDescription;

    @Schema(description = "物料名称", example = "李四")
    @ExcelProperty("物料名称")
    private String materialName;

    @Schema(description = "物料长描述", requiredMode = Schema.RequiredMode.REQUIRED)
    @ExcelProperty("物料长描述")
    private String materialLengthDescription;

    @Schema(description = "类型")
    @ExcelProperty("类型")
    private String type;

    @Schema(description = "金属元素缩写")
    @ExcelProperty("金属元素缩写")
    private String abbreviation;

    @Schema(description = "金属元素名称", example = "赵六")
    @ExcelProperty("金属元素名称")
    private String name;

    @Schema(description = "金属元素编码")
    @ExcelProperty("金属元素编码")
    private String coding;

    @Schema(description = "品位单位")
    @ExcelProperty("品位单位")
    private String gradeUnit;

    @Schema(description = "小数位数")
    @ExcelProperty("小数位数")
    private Long decimalValue;

    private List<MaterialOtherDTO> materialOtherDTOS;

}