package com.zt.plat.module.contractorder.controller.admin.originalmaterialprocessing.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.*;

@Schema(description = "管理后台 - 来料加工订单明细 Response VO")
@Data
@ExcelIgnoreUnannotated
public class OriginalMaterialProcessingDetailRespVO {

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

    @Schema(description = "订单ID", example = "21244")
    @ExcelProperty("订单ID")
    private Long orderId;

    @Schema(description = "收货工厂名称", example = "张三")
    @ExcelProperty("收货工厂名称")
    private String receiveFactoryName;

    @Schema(description = "收货工厂编码")
    @ExcelProperty("收货工厂编码")
    private String receiveFactoryNumber;

    @Schema(description = "收货库位名称", example = "张三")
    @ExcelProperty("收货库位名称")
    private String receiveWarehouseName;

    @Schema(description = "收货库位编码")
    @ExcelProperty("收货库位编码")
    private String receiveWarehouseNumber;

    @Schema(description = "发货工厂名称", example = "张三")
    @ExcelProperty("发货工厂名称")
    private String sendFactoryName;

    @Schema(description = "发货工厂编码")
    @ExcelProperty("发货工厂编码")
    private String sendFactoryNumber;

    @Schema(description = "发货库位名称", example = "赵六")
    @ExcelProperty("发货库位名称")
    private String sendWarehouseName;

    @Schema(description = "发货库位编码")
    @ExcelProperty("发货库位编码")
    private String sendWarehouseNumber;

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

    @Schema(description = "物料编码")
    @ExcelProperty("物料编码")
    private String materialNumber;

    @Schema(description = "计量单位")
    @ExcelProperty("计量单位")
    private String unit;

    @Schema(description = "暂估数量")
    @ExcelProperty("暂估数量")
    private BigDecimal forecastQuantity;

    @Schema(description = "含税单价", example = "971")
    @ExcelProperty("含税单价")
    private BigDecimal inTaxUnitPrice;

    @Schema(description = "税码")
    @ExcelProperty("税码")
    private String taxNumber;

    @Schema(description = "交货起始日期")
    @ExcelProperty("交货起始日期")
    private LocalDateTime deliveryCargoBeginDate;

    @Schema(description = "交货截止日期")
    @ExcelProperty("交货截止日期")
    private LocalDateTime deliveryCargoEndDate;

    @Schema(description = "是否启用")
    @ExcelProperty("是否启用")
    private Boolean isEnable;

    @Schema(description = "短文本")
    @ExcelProperty("短文本")
    private String shortText;

    @Schema(description = "税分类")
    @ExcelProperty("税分类")
    private String taxCategory;

    @Schema(description = "项目类别")
    @ExcelProperty("项目类别")
    private String projectCategory;

    @Schema(description = "装运地点")
    @ExcelProperty("装运地点")
    private String shippingPlace;

    @Schema(description = "物料科目分配组")
    @ExcelProperty("物料科目分配组")
    private String materialAssignGroup;

    @Schema(description = "总额")
    @ExcelProperty("总额")
    private BigDecimal gross;

    @Schema(description = "金属元素名称", example = "王五")
    @ExcelProperty("金属元素名称")
    private String metalElementName;

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

    @Schema(description = "备注")
    @ExcelProperty("备注")
    private String remark;

    @Schema(description = "价格条件")
    @ExcelProperty("价格条件")
    private String priceCondition;

    @Schema(description = "创建时间")
    @ExcelProperty("创建时间")
    private LocalDateTime createTime;

    @Schema(description = "删除标识")
    @ExcelProperty("删除标识")
    private Boolean deleted;
    @ExcelProperty("金属元素缩写")
    @Schema(description = "金属元素缩写")
    private String elementAbbreviation;
    @ExcelProperty("金属元素名称")
    @Schema(description = "金属元素名称")
    private String elementName;
    @ExcelProperty("金属元素编码")
    @Schema(description = "金属元素编码")
    private String elementNumber;

}