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

import com.zt.plat.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.Set;

import static com.zt.plat.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "原始物料处理分页查询ReqVO")
@Data
public class OriginalMaterialProcessingPageReqVO extends PageParam {
    @Schema(description = "ERP订单号")
    private String orderSAPNumber;

    @Schema(description = "订单号")
    private String systemOrderNumber;

    @Schema(description = "公司编码;推送ERP（必须）")
    private String cpName;

    @Schema(description = "客商编码;推送ERP（必须）")
    private String supplierNumber;

    @Schema(description = "客商名称", example = "芋艿")
    private String supplierName;

    @Schema(description = "订单类型(字典:PRCH_ORD_TP);推送ERP（必须）", example = "2")
    private String type;

    @Schema(description = "凭证日期;推送ERP（必须）")
    @DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
    private LocalDateTime[] voucherDate;

    @Schema(description = "采购组织编码;推送ERP（必须）")
    private String purchaseOrganizationCustomsDeclaration;

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

    @Schema(description = "收货工厂编码;推送ERP（必须）")
    private String receiveFactoryNumber;

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

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

    @Schema(description = "采购组编码(字典:PRCH_GRP_TP);推送ERP（必须）")
    private String purchaseGroup;

    @Schema(description = "货币码(字典:CUR);推送ERP（必须）")
    private String currencyNumber;

    @Schema(description = "汇率;推送ERP")
    private BigDecimal exchangeRate;

    @Schema(description = "合同纸质合同号;推送ERP（必须）")
    private String paperContractNumber;

    @Schema(description = "小协议号;推送ERP")
    private String agreementNumber;

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

    @Schema(description = "代理方编码;推送ERP")
    private String agentNumber;

    @Schema(description = "代理方名称", example = "张三")
    private String agentName;

    @Schema(description = "订单编码")
    private String orderNumber;

    @Schema(description = "系统合同编号")
    private String contractNumber;

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

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

    @Schema(description = "合同名称", example = "赵六")
    private String contractName;

    @Schema(description = "小户头号")
    private String tenantNumber;

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

    @Schema(description = "ERP公司编号")
    private String erpPurchaseCompanyNumber;

    @Schema(description = "ERP公司名称", example = "王五")
    private String erpPurchaseCompanyName;

    @Schema(description = "ERP客商公司编码")
    private String erpSalesCompanyNumber;

    @Schema(description = "ERP客商公司名称", example = "芋艿")
    private String erpSalesCompanyName;

    @Schema(description = "采购组织名称", example = "赵六")
    private String purchaseOrganizationName;

    @Schema(description = "ERP状态(字典: ERP_REQ_STS)", example = "2")
    private String erpStatus;

    @Schema(description = "请求ERP失败原因")
    private String cause;

    @Schema(description = "订单状态(字典:PRCH_ORD_STS)", example = "2")
    private String status;

    @Schema(description = "采购组名称", example = "张三")
    private String purchaseGroupName;
    @Schema(description = "订单类型，(字典：SPLY_BSN_TP)")
    private String splyBsnTp;
    @Schema(description = "相关订单ID")
    private Long relatedOrderId;


}
