package com.xisc.pm.common.dto;

import io.swagger.annotations.ApiModelProperty;
import lombok.Data;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;

/**
 * @author 纪文桃 wentao.ji01@hand-china.com
 * @date 2024/10/18 15:44
 * @description
 */
@Data
public class ProductionPlanningApiDTO {
    @ApiModelProperty(value = "厂别（A 宽厚板 C 5米板）", required = true)
    @NotBlank
    private String mainBacklogCode;

    @ApiModelProperty(value = "制造命令号(计划炉号)", required = true)
    @NotBlank
    private String pono;

    @ApiModelProperty(value = "年", required = true)
    @NotNull
    private Long yearId;

    @ApiModelProperty(value = "连铸顺序号")
    private Long ccSeq;

    @ApiModelProperty(value = "内部钢种")
    @NotBlank
    private String stNo;

    @ApiModelProperty(value = "牌号（钢级）")
    @NotBlank
    private String sgSign;

    @ApiModelProperty(value = "计划浇次号")
    private String planCastLotNo;

    @ApiModelProperty(value = "浇次分割号")
    private Long castLotDivNo;

    @ApiModelProperty(value = "浇次内炉数")
    private Long castLotSum;

    @ApiModelProperty(value = "实绩浇次号")
    private String castLotNo;

    @ApiModelProperty(value = "连铸机号")
    @NotBlank
    private String ccmNo;

    @ApiModelProperty(value = "结晶器厚")
    @NotBlank
    private BigDecimal moldThick;

    @ApiModelProperty(value = "结晶器宽")
    @NotBlank
    private BigDecimal moldWidth;

    @ApiModelProperty(value = "开浇炉标记（T:开浇炉 W:尾炉）")
    private String restrandFlg;

    @ApiModelProperty(value = "计划精炼路径代码")
    private String planRefineRouteCode;

    @ApiModelProperty(value = "实绩精炼路径代码")
    private String refineRouteCode;

    @ApiModelProperty(value = "计划出钢重量")
    @NotBlank
    private BigDecimal planTapWt;

    @ApiModelProperty(value = "计划生产日期(yyyy-MM-dd)")
    private Date planDate;

    @ApiModelProperty(value = "连铸计划生产时间(yyyy-MM-dd HH:mm:ss)")
    @NotBlank
    private Date ccReqTime;

    @ApiModelProperty(value = "钢水返送代码")
    private String steelReturnCode;

    @ApiModelProperty(value = "热送标记")
    private String hotSendFlag;

    @ApiModelProperty(value = "热装标记")
    private String hotChargeFlag;

    @ApiModelProperty(value = "方板坯区分标记(0:板坯 1:方坯)", required = true)
    @NotNull
    private Long isBloom;

    @ApiModelProperty(value = "中间包更换标记（0:不更换 1:更换）", required = true)
    private Long tdChgFlg;

    @ApiModelProperty(value = "下发时间(yyyy-MM-dd HH:mm:ss)")
    private Date sendTime;

    @ApiModelProperty(value = "见证标识")
    private String witnessPointStatus;

    @ApiModelProperty(value = "连铸机类型：（1：板坯，2：备坯，3：方坯，4，外卖坯，5：钢锭）注：1,2,4都属于板坯。")
    private String ccType;

    @ApiModelProperty(value = "废钢类型")
    private String scrapSteelType;
}