package com.xisc.pm.domain.vo;

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

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 质量模块订单信息
 * 
 * @author jun.zeng
 *
 */
@Data
public class QdOrderVO implements Serializable {

    private static final long serialVersionUID = -8079424741584855716L;

    @NotBlank(message = "合同号")
    private String orderNo;
    
    @NotNull(message = "订货重量")
    private BigDecimal orderWt;
    
    @NotNull(message = "订货件数")
    private BigDecimal orderQty;
    
    @ApiModelProperty(value = "交货件数正公差")
    private BigDecimal delivyNumTolPlus;
    
    @ApiModelProperty(value = "交货件数负公差")
    private BigDecimal delivyNumTolMinus;
    
    @ApiModelProperty(value = "订货单件目标重量")
    private BigDecimal orderUnitAimWt;
    
    @ApiModelProperty(value = "订货单件最大重量")
    private BigDecimal orderUnitMaxWt;
    
    @ApiModelProperty(value = "订货单件最小重量")
    private BigDecimal orderUnitMinWt;
    
    @NotBlank(message = "合同性质代码")
    private String orderTypeCode;
    
    @ApiModelProperty(value = "紧急合同标记")
    private String urgOrderFlag;
    
    @NotBlank(message = "交货日期")
    private String delivyDate;
    
    @ApiModelProperty(value = "出口标记")
    private String exportFlag;
    
    @NotBlank(message = "产品规范码")
    private String psc;
    
    @NotBlank(message = "冶金规范码")
    private String msc;
    
    @NotBlank(message = "产品最终用途码")
    private String apn;
    
    @NotBlank(message = "标准")
    private String sgStd;
    
    @NotBlank(message = "标准牌号")
    private String sgSign;
    
    @ApiModelProperty(value = "牌号代码")
    private String sgCode;
    
    @ApiModelProperty(value = "新试号")
    private String newTestNo;
    
    @NotNull(message = "订货厚度")
    private BigDecimal orderThick;
    
    @NotNull(message = "订货宽度")
    private BigDecimal orderWidth;
    
    @ApiModelProperty(value = "最终用户代码")
    private String finCustCode;
    
    @ApiModelProperty(value = "订货长度上限")
    private BigDecimal orderMaxLen;
    
    @ApiModelProperty(value = "订货长度下限")
    private BigDecimal orderMinLen;
    
    @ApiModelProperty(value = "订货最大短尺")
    private BigDecimal orderShortMax;
    
    @ApiModelProperty(value = "订货最小短尺")
    private BigDecimal orderShortMin;
    
    @ApiModelProperty(value = "订货短尺率")
    private BigDecimal orderShortRate;
    
    @ApiModelProperty(value = "产销合同号")
    private String orderNoErp;
    
    @ApiModelProperty(value = "订货用户中文名称")
    private String orderCustCname;
    
    @NotBlank(message = "收货用户中文名称")
    private String consignCustCname;
    
    @NotBlank(message = "交货地点名称")
    private String delivyPlaceName;
    
    @ApiModelProperty(value = "运输方式代码")
    private String trnpModeCode;
    
    @ApiModelProperty(value = "剖分标记，1允许剖分，0不允许剖分")
    private String planerFlag;
    
    @ApiModelProperty(value = "湘重合同标记")
    private String xzFlag;
    
    @NotNull(message = "订货长度")
    private BigDecimal orderLen;
    
    @NotNull(message = "宽度区分")
    private String widthDiv;
    
    @ApiModelProperty(value = "宽度上限")
    private BigDecimal widthMax;
    
    @ApiModelProperty(value = "宽度下限")
    private BigDecimal widthMin;
    
    @NotNull(message = "长度区分")
    private String lenDiv;
    
    @NotBlank(message = "厚板品种代码")
    private String prodCodeHp;
    
    @NotNull(message = "厚度公差上限")
    private BigDecimal thickTolMax;
    
    @NotNull(message = "厚度公差下限")
    private BigDecimal thickTolMin;
    
    @ApiModelProperty(value = "宽度公差上限")
    private BigDecimal widthTolMax;
    
    @ApiModelProperty(value = "宽度公差下限")
    private BigDecimal widthTolMin;
    
    @ApiModelProperty(value = "长度公差上限")
    private BigDecimal lenTolMax;
    
    @ApiModelProperty(value = "长度公差下限")
    private BigDecimal lenTolMin;

    @ApiModelProperty(value = "头部试材长度")
    private BigDecimal sampleLenHead;
    

    @ApiModelProperty(value = "尾部试材长度")
    private BigDecimal sampleLenTail;
    
    @ApiModelProperty(value = "宽度余量")
    private BigDecimal widthAddv;
    
    @ApiModelProperty(value = "楔形板代码")
    private String shpCode;
    
    @ApiModelProperty(value = "船体分段号")
    private String hullSectionNo;
    
    @ApiModelProperty(value = "是否分段管理")
    private String sectionManage;
    
    @ApiModelProperty(value = "工程代码")
    private String projectCode;

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

    @ApiModelProperty(value = "试材采取方式代码")
    private String pickPatternCode;
    
    @ApiModelProperty(value = "验收机关代码")
    private String accpAuthCode;
    
    @ApiModelProperty(value = "验收方式代码")
    private String accptModeCode;
    
    @ApiModelProperty(value = "厚板会检方式代码")
    private String checkMethodCode;
    
    @ApiModelProperty(value = "会检材标记")
    private String sampleCheckFlag;
    
    @ApiModelProperty("制品记号（试验片SR）")
    private String prodSrMark;

    @ApiModelProperty("制品记号（边部形态））")
    private String prodSideMark;
    
    @ApiModelProperty("制品记号（抛丸涂漆）")
    private String prodShotMark;
    
    @ApiModelProperty("制品记号（试验片正火）")
    private String prodNMark;
    
    @ApiModelProperty("制品记号（试验片淬火）")
    private String prodQMark;
    
    @ApiModelProperty("制品记号（试验片回火）")
    private String prodTMark;
    
    @ApiModelProperty("制品记号（试验片退火）")
    private String prodAMark;
    
    @ApiModelProperty("工序记号（超声探伤）")
    private String backlogUtMark;
    
    @ApiModelProperty("工序记号（正火）")
    private String backlogNMark;
    
    @ApiModelProperty("工序记号（淬火）")
    private String backlogQMark;
    
    @ApiModelProperty("工序记号（回火）")
    private String backlogTMark;
    
    @ApiModelProperty("工序记号（退火）")
    private String backlogAMark;
    
    @ApiModelProperty("工序记号（脱磁）")
    private String backlogDemagMark;
    
    @ApiModelProperty("工序记号（PT探伤）")
    private String backlogPtMark;
    
    @ApiModelProperty("工序记号（MT探伤）")
    private String backlogMtMark;
    
    @ApiModelProperty("工序记号（TMCP）")
    private String backlogTmcpMark;
    
    @ApiModelProperty(value = "涂漆标志")
    private String needLecquering;
    
    @ApiModelProperty("抛丸涂漆代码")
    private String shotPaintCode;
    
    @ApiModelProperty(value = "奉送样标记代码")
    private String giveSampleCode;
    
    @ApiModelProperty(value = "奉送试材长度")
    private BigDecimal sampleLenGive;
    
    @ApiModelProperty(value = "成品抛丸标记")
    private String shotFlag;
    
    @NotBlank(message = "切边标记代码")
    private String trimCode;
    
    @ApiModelProperty(value = "抗拉强度最大值")
    private BigDecimal tsMax;
    
    @ApiModelProperty(value = "抗拉强度最小值")
    private BigDecimal tsMin;
    
    @NotNull(message = "产品密度")
    private BigDecimal prodDensity;
    
    @ApiModelProperty(value = "是否钢锭轧制")
    private String ingotRoll;
    
    @ApiModelProperty(value = "特殊喷印要求")
    private String specialPrint;

    @ApiModelProperty(value = "二次压母材合同标记")
    private Long twoRollMark = 0L;
    @ApiModelProperty(value = "二次压本合同标记")
    private Long twoRollOrderMark = 0L;
}
