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

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.zt.plat.framework.common.pojo.PageParam;
import java.math.BigDecimal;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;

import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;

@Schema(description = "管理后台 - 来料加工订单明细分页 Request VO")
@Data
public class OriginalMaterialProcessingDetailPageReqVO extends PageParam {

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

    @Schema(description = "交货起始日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] deliveryCargoBeginDate;

    @Schema(description = "交货截止日期")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] deliveryCargoEndDate;

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

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

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

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

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

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

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

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

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

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

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

    @Schema(description = "创建时间")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] createTime;


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

    @Schema(description = "金属元素名称")
    private String elementName;

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

}