package com.xisc.pm.api.dto;

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

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

/**
 * 
 * @author 曾俊 jun.zeng@hand-china.com 2024-07-29 15:50:20
 *
 */
@Data
@ApiModel("生产合同抽取查询结果DTO")
public class PmProContFilterResposeDTO {

    private Long proContId;

    private String mscLineNo;
    private String furType;
    private BigDecimal compressMin;
    private Long onPdFlag;
    private String pdProgram;
    private String pdPlanner;
    private Long pdHoldFlag;
    private BigDecimal pdLackQty;
    @ApiModelProperty(value = "组板工序超投件数", required = true)
    private BigDecimal pdOverDevoQtyHistory;
    @ApiModelProperty(value = "轧制倍尺可否标记")
    private Long multiPlateFlag;
    @ApiModelProperty(value = "保温温度目标值")
    private BigDecimal keepTempAim;

    @ApiModelProperty(value = "切断方式代码")
    private String cutModeCode;

    @ApiModelProperty(value = "制品记号（边部形态）")
    private String prodSideMark;

    @ApiModelProperty(value = "取样方式代码")
    private String sampleModeCode;

    @ApiModelProperty(value = "超声探伤时期代码")
    private String ultStgCode;

    @ApiModelProperty(value = "钢板缓冷代码")
    private String coolCode;

    @ApiModelProperty(value = "探伤方式代码")
    private String ultDetectMethodCode;
    @ApiModelProperty(value = "厚度公差上限")
    private BigDecimal thickTolMax;
    @ApiModelProperty(value = "厚度公差下限")
    private BigDecimal thickTolMin;
    @ApiModelProperty(value = "AD控制模式代码", required = true)
    private String adModeCode;
    @ApiModelProperty(value = "头部切舍量", required = true)
    private BigDecimal headCut;
    @ApiModelProperty(value = "尾部切舍量", required = true)
    private BigDecimal tailCut;
    @ApiModelProperty(value = "剖分标记，1允许剖分，0不允许剖分")
    private String planerFlag;
    @ApiModelProperty(value = "轧制方向代码", required = true)
    private String rollDirectCode;
    @ApiModelProperty(value = "产品密度", required = true)
    private BigDecimal prodDensity;
    @ApiModelProperty(value = "订货单件目标重量", required = true)
    private BigDecimal orderUnitAimWt;
    @ApiModelProperty(value = "宽度余量", required = true)
    private BigDecimal widthAddv;

    @ApiModelProperty(value = "切边标记代码")
    private String trimCode;

    @ApiModelProperty(value = "工序记号（正火）", required = true)
    @NotBlank
    private String backlogNMark;
    @ApiModelProperty(value = "工序记号（淬火）", required = true)
    @NotBlank
    private String backlogQMark;
    @ApiModelProperty(value = "工序记号（回火）", required = true)
    @NotBlank
    private String backlogTMark;
    @ApiModelProperty(value = "工序记号（退火）", required = true)
    @NotBlank
    private String backlogAMark;
    @ApiModelProperty(value = "尾部有无试样", required = true)
    private String pickPatternCode;
    @ApiModelProperty(value = "头部试材长度", required = true)
    private BigDecimal sampleLenHead;
    @ApiModelProperty(value = "尾部试材长度", required = true)
    private BigDecimal sampleLenTail;
    @ApiModelProperty(value = "厚板品种代码", required = true)
    private String prodCodeHp;
    @ApiModelProperty(value = "厚板会检方式代码", required = true)
    private String checkMethodCode;
    
    @ApiModelProperty(value = "计重方式代码")
    private String wtMethodCode ;

    @ApiModelProperty(value = "项目代码", required = true)
    private String projectCode;

    @ApiModelProperty(value = "炼钢计划日期（YYYY-MM-DD）", required = true)
    private Date steelPlanDate;
    @ApiModelProperty(value = "最晚炼钢日期（YYYY-MM-DD）", required = true)
    private Date steelLatestDate;

    @ApiModelProperty("交货日期")
    private Date delivyDate;
    @ApiModelProperty("合同号")
    private String orderNo;
    @ApiModelProperty("奉送样标记")
    private String giveSampleCode;
    @ApiModelProperty("订货单件目标重量")
    private BigDecimal unitWtAim;
    @ApiModelProperty("订货厚度")
    private BigDecimal orderThick;
    @ApiModelProperty("订货宽度")
    private BigDecimal orderWidth;
    @ApiModelProperty("订货长度")
    private BigDecimal lenAim;
//    @ApiModelProperty("合同跟踪欠件")
//    private BigDecimal ordRemNum;
    @ApiModelProperty("订货件数")
    private BigDecimal orderQty;
    @ApiModelProperty("标准牌号")
    private String sgSign;
    @ApiModelProperty("轧制模式")
    private String rollMode;
    @ApiModelProperty("内部钢种")
    private String stNo ;
    @ApiModelProperty("AD类型代码")
    private String adTypeCode;
    @ApiModelProperty("收货用户中文名称")
    private String consignCustCname;
    @ApiModelProperty("交货地点名称")
    private String delivyPlaceName;
    @ApiModelProperty("交货件数正公差")
    private BigDecimal delivyNumTolPlus;
    @ApiModelProperty("交货件数负公差")
    private BigDecimal delivyNumTolMinus;
    @ApiModelProperty("控轧代码")
    private String ctrlRollCode;
    @ApiModelProperty("精炼路径代码")
    private String rfPath;
    @ApiModelProperty("组板形成总件数")
    private BigDecimal pdTotQty;
    @ApiModelProperty("紧急合同标记")
    private Long urgOrderFlag;
    @ApiModelProperty("二次开坯母材合同标记")
    private Long twoRollFlag;
    @ApiModelProperty("宽度上限")
    private BigDecimal widthMax;
    @ApiModelProperty("宽度下限")
    private BigDecimal widthMin;
    @ApiModelProperty("长度上限")
    private BigDecimal orderMaxLen;
    @ApiModelProperty("长度下限")
    private BigDecimal orderMinLen;
    
    @ApiModelProperty("热处理模式")
    private String heatTreatMode;
    
    @ApiModelProperty(value = "全程热处理模式", required = true)
    private String wholeHeatTreatmentType;
    
    @ApiModelProperty("超声探伤代码")
    private String ultCode;
    @ApiModelProperty("产销合同号")
    private String orderNoErp;
    @ApiModelProperty(value = "特殊喷印要求")
    private String specialPrint;
    @ApiModelProperty(value = "船体分段号")
    private String hullSectionNo;
    @ApiModelProperty(value = "是否分段管理")
    private String sectionManage;
    @ApiModelProperty(value = "涂漆标志，0为不喷，1为厂内喷漆，2为厂外喷漆")
    private String needLecquering;
    @ApiModelProperty(value = "尾量标记")
    private Long tailFlag;
    @ApiModelProperty(value = "合约尾量")
    private BigDecimal contWl;
    @ApiModelProperty(value = "合同性质代码", required = true)
    private String orderTypeCode;
    
    @ApiModelProperty(value = "全程工序代码")
    private String wholeBacklogCode;

    @ApiModelProperty("未选中原因")
    private String unSelectedReason;
    
    @ApiModelProperty("合同跟踪欠件")
    private BigDecimal ordRemNum;

    @ApiModelProperty("板坯位置代码")
    private String slabPlaceCode;

    @ApiModelProperty(value = "控轧代码第一位")
    private String ctrlRollCode1;

    @ApiModelProperty(value = "控轧代码第34位")
    private String ctrlRollCode34;

    @ApiModelProperty(value = "验收机关代码")
    private String accpAuthCode;

    @ApiModelProperty(value = "最终用户代码")
    private String finCustCode;
    
    @ApiModelProperty(value = "库存数量")
    private BigDecimal stockNum ;

    @ApiModelProperty(value = "合约欠量")
    private BigDecimal cotractNum;

    @ApiModelProperty(value = "可组板数")
    private BigDecimal userdBoardNum;

    @ApiModelProperty(value = "可组件数")
    private BigDecimal assemblyBoardNum;
    
    @ApiModelProperty(value = "热送标记", required = true)
    private String hotSendDiv;
    @ApiModelProperty(value = "热装标记", required = true)
    private Long hotChargeFlag;
    private String erpUtSpec1;
    private String erpUtSpec2;
    private String erpUtSpec3;
    private BigDecimal slabThkMin;
    private BigDecimal slabThkMax;

    @ApiModelProperty(value = "是否低倍要求")
    private Long macroSmpFlag;
}
