package com.xisc.pm.api.dto;

import com.fasterxml.jackson.annotation.JsonInclude;
import io.choerodon.mybatis.annotation.ModifyAudit;
import io.choerodon.mybatis.annotation.VersionAudit;
import io.choerodon.mybatis.domain.AuditDomain;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.Table;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;

/**
 * 自动替代配置表(PmAutoSubSetting)实体类
 *
 * @author BKGY
 * @since 2024-12-27 08:56:21
 */

@ApiModel("自动替代配置表")
@Data
public class PmAutoSubSettingDTO extends AuditDomain implements Serializable {


    @ApiModelProperty("主键ID")
    private Long id;

    @ApiModelProperty(value = "最低替代率")
    private BigDecimal substitutionRate;

    @ApiModelProperty(value = "最大剩余长度")
    private BigDecimal residueLen;

    @ApiModelProperty(value = "板坯长度起")
    private BigDecimal matLenMin;

    @ApiModelProperty(value = "板坯长度止")
    private BigDecimal matLenMax;

    @ApiModelProperty(value = "板坯宽度起")
    @NotNull
    private BigDecimal matWidthMin;

    @ApiModelProperty(value = "板坯宽度止")
    private BigDecimal matWidthMax;

    @ApiModelProperty(value = "板坯厚度起")
    private BigDecimal matThickMin;

    @ApiModelProperty(value = "板坯厚度止")
    private BigDecimal matThickMax;

    @ApiModelProperty(value = "订单宽度起")
    private BigDecimal orderWidthMin;

    @ApiModelProperty(value = "订单宽度止")
    private BigDecimal orderWidthMax;

    @ApiModelProperty(value = "订单厚度起")
    private BigDecimal orderThickMin;

    @ApiModelProperty(value = "订单厚度止")
    private BigDecimal orderThickMax;

    @ApiModelProperty(value = "订单交货期起")
    private Date delivyDateFrom;

    @ApiModelProperty(value = "订单交货期止")
    private Date delivyDateTo;

    @ApiModelProperty(value = "选择钢种信息")
    private String isUseSt;

    @ApiModelProperty(value = "可用仓库")
    private List<String> useableDstock;

    @ApiModelProperty(value = "是否启动")
    private String isStartFlag;

    @ApiModelProperty(value = "启动时间起")
    private Date startTime;

    @ApiModelProperty(value = "启动时间止")
    private Date endTime;

    @ApiModelProperty(value = "优先模式")
    private List<String> priMode;

    @ApiModelProperty(value = "库存最低成材率")
    private BigDecimal stockRate;

    @ApiModelProperty(value = "库存时间")
    private Long stockDay;

    @ApiModelProperty(value = "交货期最低成材率")
    private BigDecimal deliveryRate;

    @ApiModelProperty(value = "现货价格")
    private BigDecimal xhCost;

    @ApiModelProperty(value = "废钢价格")
    private BigDecimal fgCost;

    @ApiModelProperty(value = "交货期偏移量")
    private Long deliveryOffsetDay;

    @ApiModelProperty(value = "租户ID")
    private Long tenantId;

    @ApiModelProperty(value = "触发周期")
    private Long triggerCycle;

    @ApiModelProperty(value = "超投条件")
    private List<String> overshootCondition;

    @ApiModelProperty(value = "版本管理行锁")
    private Long  objectVersionNumber;

    private List<StockCode> useableDstockLov;

    public static class StockCode{
        public String stockCode;

    }


}



