package com.jwipc.inquiry.dto;

import com.alibaba.excel.annotation.ExcelIgnoreUnannotated;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;

/**
 * <p>
 * 价格信息记录主表
 * </p>
 *
 * @author shenyang.ou
 * @since 2024-02-28
 */
@Data
//加入这个注解后只有加了@ExcelProperty才会参与读写
@ExcelIgnoreUnannotated
public class PriceInfoImportDTO implements Serializable {
    private Long id;

    /**
     * 价格信息记录编码
     */
    @ExcelProperty("定价记录号")
    private String priceCode;

    /**
     * 供应商编码
     */
    @ExcelProperty("供应商")
    private String supplierCode;

    /**
     * 供应商名称
     */
    @ExcelProperty("供应商名称")
    private String supplierName;

    /**
     * 采购组织
     */
    @ExcelProperty("采购组织")
    private String purchaseOrgCode;

    /**
     * 最终价格
     */
    @ExcelProperty("采购原币价格（含税）")
    private String lastPriceStr;
    private BigDecimal lastPrice;

    /**
     * 生效日期
     */
    @ExcelProperty("有效期起始日")
    private String effectDateStr;
    private LocalDateTime effectDate;


    /**
     * 失效日期
     */
    @ExcelProperty("有效截至日")
    private String invalidDateStr;
    private LocalDateTime invalidDate;

    /**
     * 采购组编码
     */
    @ExcelProperty("采购组")
    private String purchaseGroupCode;

    /**
     * 公司编码
     */
    private String companyCode;

    /**
     * 工厂编码
     */
    @ExcelProperty("工厂")
    private String factoryCode;

    /**
     * 物料编码
     */
    @ExcelProperty("物料编码")
    private String materialCode;

    /**
     * 物料名称
     */
    @ExcelProperty("描述")
    private String materialName;

    /**
     * 物料组编码
     */
    @ExcelProperty("物料组")
    private String materialGroupCode;

    /**
     * 物料组名称
     */
    private String materialGroupName;

    /**
     * 含税价格
     */
    private BigDecimal taxPrice;

    /**
     * 未税价格
     */
    private BigDecimal noTaxPrice;

    /**
     * 转换后价格
     */
    @ExcelProperty("本币未税价格")
    private String conversionPriceStr;

    private BigDecimal conversionPrice;

    /**
     * 采购订单单位
     */
    @ExcelProperty("订单单位")
    private String orderUnit;

    /**
     * eccn信息，供应商国别是美国的必填
     */
    @ExcelProperty("ECCN码")
    private String eccn;

    /**
     * 价格单位
     */
    @ExcelProperty("价格单位")
    private String priceUnitStr;

    private Integer priceUnit;

    /**
     * 税率编码
     */
    @ExcelProperty("税代码")
    private String taxCode;

    /**
     * 货币编码（取字典curreny）
     */
    @ExcelProperty("币种")
    private String currencyCode;

    /**
     * 备注
     */
    private String remark;

    /**
     * 价格信息记录状态1:新建2:已生成合同3:未同步4:已同步5:同步失败
     */
    private Integer status;

    /**
     * 采购类型
     */
    @ExcelProperty("信息类别")
    private String purchaseType;

    /**
     * 数据来源1：询报价2：招投标
     */
    private Integer sourceType;

    /**
     * 寻源编码：询报价或者招投标编码
     */
    private String sourceCode;

    /**
     * 最小订货量
     */
    @ExcelProperty("MOQ")
    private Long moq;

    /**
     * 最小包装量
     */
    @ExcelProperty("MPQ")
    private Long mpq;

    /**
     * 采购周期(天)
     */
    private Long leadTime;

    /**
     * 结算方式
     */
    private String settlementModes;

    /**
     * 申请单号-行号
     */
    private String applyCode;

    /**
     * 价格类型 1:一次性，2：长期有效
     */
    private Integer contractType;

    /**
     * 付款方式
     */
    private String paymentWay;

    /**
     * 付款条件
     */
    @ExcelProperty("付款条件")
    private String paymentMethod;

    /**
     * 失效备注
     */
    private String invalidRemark;

    /**
     * 阶梯数量1
     */
    @ExcelProperty("阶梯1数量")
    private String stageNum1Str;
    private BigDecimal stageNum1;

    /**
     * 阶梯数量2
     */
    @ExcelProperty("阶梯2数量")
    private String stageNum2Str;
    private BigDecimal stageNum2;

    /**
     * 阶梯数量3
     */
    @ExcelProperty("阶梯3数量")
    private String stageNum3Str;
    private BigDecimal stageNum3;

    /**
     * 阶梯数量4
     */
    @ExcelProperty("阶梯4数量")
    private String stageNum4Str;
    private BigDecimal stageNum4;

    /**
     * 阶梯数量5
     */
    @ExcelProperty("阶梯5数量")
    private String stageNum5Str;
    private BigDecimal stageNum5;

    /**
     * 阶梯价格1
     */
    @ExcelProperty("阶梯1价格")
    private String stagePrice1Str;
    private BigDecimal stagePrice1;

    /**
     * 阶梯价格2
     */
    @ExcelProperty("阶梯2价格")
    private String stagePrice2Str;
    private BigDecimal stagePrice2;

    /**
     * 阶梯价格3
     */
    @ExcelProperty("阶梯3价格")
    private String stagePrice3Str;
    private BigDecimal stagePrice3;

    /**
     * 阶梯价格4
     */
    @ExcelProperty("阶梯4价格")
    private String stagePrice4Str;
    private BigDecimal stagePrice4;

    /**
     * 阶梯价格5
     */
    @ExcelProperty("阶梯5价格")
    private String stagePrice5Str;
    private BigDecimal stagePrice5;

    /**
     * ERP处理状态 S:成功 E:失败
     */
    private String processState;

    /**
     * ERP处理反馈
     */
    private String processMsg;

    /**
     * ERP处理日期
     */
    private LocalDateTime processDate;

    /**
     * ERP存放code
     */
    private String erpSrmCode;

    /**
     * 配额
     */
    @ExcelProperty("配额")
    private String quotaStr;
    private BigDecimal quota;

    /**
     * 创建时间
     */
    private LocalDateTime createTime;

    /**
     * 创建人
     */
    private Long createUser;
    private String createUserName;

    /**
     * 修改日期
     */
    private LocalDateTime updateTime;

    /**
     * 修改人
     */
    private Long updateUser;

    /**
     * 汇率
     */
    @ExcelProperty("汇率")
    private String exchangeRateStr;
    private BigDecimal exchangeRate;

    /**
     * 器件分类编码（OA接口用到）
     */
    private String purchaseCategoryCode;

    /**
     * 是否现货；0-否；1-是；（OA接口用到）
     */
    private Integer spotFlag;

    /**
     * 事业部是否同意；0-否；1-是；（OA接口用到）
     */
    private Integer businessAgreeFlag;

    /**
     * 客户是否承担；0-否；1-是；（OA接口用到）
     */
    private Integer customerBearFlag;

    /**
     * 承担比例%（OA接口用到）
     */
    private BigDecimal bearRatio;

    /**
     * 制造商型号（OA接口用到）
     */
    @ExcelProperty("制造商型号")
    private String mpn;

    /**
     * 制造商中文（OA接口用到）
     */
    private String manufacturer;

    /**
     * 制造商英文（OA接口用到）
     */
    @ExcelProperty("制造商英文")
    private String manufacturerEn;

    /**
     * 国系（OA接口用到）
     */
    @ExcelProperty("国系")
    private String countryName;

    /**
     * 潮湿等级（OA接口用到）
     */
    @ExcelProperty("潮湿等级")
    private String msl;

    /**
     * 取消窗（OA接口用到）
     */
    private String cancelWindow;

    /**
     * 推迟窗（OA接口用到）
     */
    private String delayWindow;

    /**
     * 风险等级（OA接口用到）
     */
    @ExcelProperty("风险等级")
    private String riskLevel;

    /**
     * 物流代理费（OA接口用到）
     */
    @ExcelProperty("物流服务费")
    private String logisticsAgencyFeeStr;
    private BigDecimal logisticsAgencyFee;

    /**
     * 关税（OA接口用到）
     */
    @ExcelProperty("关税")
    private String tariffStr;
    private BigDecimal tariff;


    /**
     * 转询价单标记    0-未转  1-已转
     */
    private Integer inquiryFlag;

    /**
     * 询价单号
     */
    private String enquiryCode;

    /**
     * 询价单行
     */
    private String enquiryItemCode;

    @ExcelProperty("物料基本单位")
    private String extend1;
    @ExcelProperty("旧物料编码")
    private String extend2;
    @ExcelProperty("基于收货的发票校验标识")
    private String extend3;
    @ExcelProperty("版本")
    private String extend4;
    @ExcelProperty("L/T")
    private String extend5;
    @ExcelProperty("选型等级")
    private String extend6;
}
