package com.steerinfo.ems.emsgmpcjh.model;

import com.alibaba.fastjson.annotation.JSONField;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.steerinfo.framework.model.IBasePO;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.springframework.format.annotation.DateTimeFormat;

import java.math.BigDecimal;
import java.util.Date;

@ApiModel(value="国贸排产计划表")
public class EmsGmPcJh implements IBasePO<String> {
    /**
     * 主键(ID,VARCHAR,100)
     */
    @ApiModelProperty(value="主键",required=true)
    private String id;

    /**
     * 计划时间(JH_TIME,TIMESTAMP,7)
     */
    @ApiModelProperty(value="计划时间",required=false)
    @JSONField(format = "yyyy-MM-dd")
    private Date jhTime;

    /**
     * 状态（0已编辑1已下发2已接收）(STATE,VARCHAR,1)
     */
    @ApiModelProperty(value="状态（0已编辑1已下发2已接收）",required=false)
    private String state;

    /**
     * 钢种(GRADES,VARCHAR,100)
     */
    @ApiModelProperty(value="钢种",required=false)
    private String grades;

    /**
     * 规格(SPECIFICATIONS,VARCHAR,100)
     */
    @ApiModelProperty(value="规格",required=false)
    private String specifications;

    /**
     * 长度(LENGTHS,DECIMAL,0)
     */
    @ApiModelProperty(value="长度",required=false)
    private BigDecimal lengths;

    /**
     * 化学成分标准(CHEMICAL_STANDARD,VARCHAR,100)
     */
    @ApiModelProperty(value="化学成分标准",required=false)
    private String chemicalStandard;

    /**
     * 表面成分标准(SURFACE_STANDARD,VARCHAR,100)
     */
    @ApiModelProperty(value="表面成分标准",required=false)
        private String surfaceStandard;

    /**
     * 工序类型(WORKPROC_TYPE,VARCHAR,100)
     */
    @ApiModelProperty(value="工序类型",required=false)
    private String workprocType;

    /**
     * 断面(IATERAL_AREA,VARCHAR,100)
     */
    @ApiModelProperty(value="断面",required=false)
    private String iateralArea;

    /**
     * 长度*宽度(LENGTH_TIMES_WIDTH,VARCHAR,100)
     */
    @ApiModelProperty(value="长度*宽度",required=false)
    private String lengthTimesWidth;

    /**
     * 运输方式(TRANSPORT_TYPE,VARCHAR,100)
     */
    @ApiModelProperty(value="运输方式",required=false)
    private String transportType;

    /**
     * 接收时间(RECEIVE_TIME,TIMESTAMP,7)
     */
    @ApiModelProperty(value="接收时间",required=false)
    private Date receiveTime;

    /**
     * 创建人(CREATE_MAN,VARCHAR,100)
     */
    @ApiModelProperty(value="创建人",required=false)
    private String createMan;

    /**
     * 创建时间(CREATE_TIME,TIMESTAMP,7)
     */
    @ApiModelProperty(value="创建时间",required=false)
    private Date createTime;

    /**
     * 修改人(UPDATE_MAN,VARCHAR,100)
     */
    @ApiModelProperty(value="修改人",required=false)
    private String updateMan;

    @ApiModelProperty(value = "国贸审核人",required = false)
    private String gmReviewer;
    @ApiModelProperty(value = "国贸审核时间",required = false)
    private Date   gmReviewerTime;

    public String getGmReviewer() {
        return gmReviewer;
    }

    public void setGmReviewer(String gmReviewer) {
        this.gmReviewer = gmReviewer;
    }

    public Date getGmReviewerTime() {
        return gmReviewerTime;
    }

    public void setGmReviewerTime(Date gmReviewerTime) {
        this.gmReviewerTime = gmReviewerTime;
    }

    /**
     * 修改时间(UPDATE_TIME,TIMESTAMP,7)
     */
    @ApiModelProperty(value="修改时间",required=false)
    private Date updateTime;

    /**
     * 备注(MEMO,VARCHAR,100)
     */
    @ApiModelProperty(value="备注",required=false)
    private String memo;

    /**
     * 用途(PURPOSE,VARCHAR,100)
     */
    @ApiModelProperty(value="用途",required=false)
    private String purpose;

    /**
     * 单位id(UNITID,VARCHAR,20)
     */
    @ApiModelProperty(value="单位id",required=false)
    private String unitid;

    /**
     * 截面尺寸(DIMENSION,VARCHAR,100)
     */
    @ApiModelProperty(value="截面尺寸",required=false)
    private String dimension;

    /**
     * 可下发量(KXF_WEIGHT,DECIMAL,0)
     */
    @ApiModelProperty(value="可下发量",required=false)
    private BigDecimal kxfWeight;

    /**
     * 已下发量(YXF_WEIGHT,DECIMAL,0)
     */
    @ApiModelProperty(value="已下发量",required=false)
    private BigDecimal yxfWeight;

    /**
     * 计划量(PLAN_WEIGHT,DECIMAL,0)
     */
    @ApiModelProperty(value="计划量",required=false)
    private BigDecimal planWeight;

    @ApiModelProperty(value = "交货日期", required =false )
    @JSONField(format = "yyyy-MM-dd")
    private Date deliveryDate;

    public Date getDeliveryDate() {
        return deliveryDate;
    }

    public void setDeliveryDate(Date deliveryDate) {
        this.deliveryDate = deliveryDate;
    }

    private String type;

    public String getType() {
        return type;
    }

    public void setType(String type) {
        this.type = type;
    }

    private static final long serialVersionUID = 1L;

    public String getId() {
        return id;
    }

    public void setId(String id) {
        this.id = id == null ? null : id.trim();
    }

    public Date getJhTime() {
        return jhTime;
    }

    public void setJhTime(Date jhTime) {
        this.jhTime = jhTime;
    }

    public String getState() {
        return state;
    }

    public void setState(String state) {
        this.state = state == null ? null : state.trim();
    }

    public String getGrades() {
        return grades;
    }

    public void setGrades(String grades) {
        this.grades = grades == null ? null : grades.trim();
    }

    public String getSpecifications() {
        return specifications;
    }

    public void setSpecifications(String specifications) {
        this.specifications = specifications == null ? null : specifications.trim();
    }

    public BigDecimal getLengths() {
        return lengths;
    }

    public void setLengths(BigDecimal lengths) {
        this.lengths = lengths;
    }

    public String getChemicalStandard() {
        return chemicalStandard;
    }

    public void setChemicalStandard(String chemicalStandard) {
        this.chemicalStandard = chemicalStandard == null ? null : chemicalStandard.trim();
    }

    public String getSurfaceStandard() {
        return surfaceStandard;
    }

    public void setSurfaceStandard(String surfaceStandard) {
        this.surfaceStandard = surfaceStandard == null ? null : surfaceStandard.trim();
    }

    public String getWorkprocType() {
        return workprocType;
    }

    public void setWorkprocType(String workprocType) {
        this.workprocType = workprocType == null ? null : workprocType.trim();
    }

    public String getIateralArea() {
        return iateralArea;
    }

    public void setIateralArea(String iateralArea) {
        this.iateralArea = iateralArea == null ? null : iateralArea.trim();
    }

    public String getLengthTimesWidth() {
        return lengthTimesWidth;
    }

    public void setLengthTimesWidth(String lengthTimesWidth) {
        this.lengthTimesWidth = lengthTimesWidth == null ? null : lengthTimesWidth.trim();
    }

    public String getTransportType() {
        return transportType;
    }

    public void setTransportType(String transportType) {
        this.transportType = transportType == null ? null : transportType.trim();
    }

    public Date getReceiveTime() {
        return receiveTime;
    }

    public void setReceiveTime(Date receiveTime) {
        this.receiveTime = receiveTime;
    }

    public String getCreateMan() {
        return createMan;
    }

    public void setCreateMan(String createMan) {
        this.createMan = createMan == null ? null : createMan.trim();
    }

    public Date getCreateTime() {
        return createTime;
    }

    public void setCreateTime(Date createTime) {
        this.createTime = createTime;
    }

    public String getUpdateMan() {
        return updateMan;
    }

    public void setUpdateMan(String updateMan) {
        this.updateMan = updateMan == null ? null : updateMan.trim();
    }

    public Date getUpdateTime() {
        return updateTime;
    }

    public void setUpdateTime(Date updateTime) {
        this.updateTime = updateTime;
    }

    public String getMemo() {
        return memo;
    }

    public void setMemo(String memo) {
        this.memo = memo == null ? null : memo.trim();
    }

    public String getPurpose() {
        return purpose;
    }

    public void setPurpose(String purpose) {
        this.purpose = purpose == null ? null : purpose.trim();
    }

    public String getUnitid() {
        return unitid;
    }

    public void setUnitid(String unitid) {
        this.unitid = unitid == null ? null : unitid.trim();
    }

    public String getDimension() {
        return dimension;
    }

    public void setDimension(String dimension) {
        this.dimension = dimension == null ? null : dimension.trim();
    }

    public BigDecimal getKxfWeight() {
        return kxfWeight;
    }

    public void setKxfWeight(BigDecimal kxfWeight) {
        this.kxfWeight = kxfWeight;
    }

    public BigDecimal getYxfWeight() {
        return yxfWeight;
    }

    public void setYxfWeight(BigDecimal yxfWeight) {
        this.yxfWeight = yxfWeight;
    }

    public BigDecimal getPlanWeight() {
        return planWeight;
    }

    public void setPlanWeight(BigDecimal planWeight) {
        this.planWeight = planWeight;
    }
    private String startTime;

    public String getStartTime() {
        return startTime;
    }

    public void setStartTime(String startTime) {
        this.startTime = startTime;
    }

    public String getEndTime() {
        return endTime;
    }

    public void setEndTime(String endTime) {
        this.endTime = endTime;
    }

    private String endTime;

    @Override
    public String toString() {
        StringBuilder sb = new StringBuilder();
        sb.append(getClass().getSimpleName());
        sb.append(" [");
        sb.append("Hash = ").append(hashCode());
        sb.append(", id=").append(id);
        sb.append(", jhTime=").append(jhTime);
        sb.append(", state=").append(state);
        sb.append(", grades=").append(grades);
        sb.append(", specifications=").append(specifications);
        sb.append(", lengths=").append(lengths);
        sb.append(", chemicalStandard=").append(chemicalStandard);
        sb.append(", surfaceStandard=").append(surfaceStandard);
        sb.append(", workprocType=").append(workprocType);
        sb.append(", iateralArea=").append(iateralArea);
        sb.append(", lengthTimesWidth=").append(lengthTimesWidth);
        sb.append(", transportType=").append(transportType);
        sb.append(", receiveTime=").append(receiveTime);
        sb.append(", createMan=").append(createMan);
        sb.append(", createTime=").append(createTime);
        sb.append(", updateMan=").append(updateMan);
        sb.append(", updateTime=").append(updateTime);
        sb.append(", memo=").append(memo);
        sb.append(", purpose=").append(purpose);
        sb.append(", unitid=").append(unitid);
        sb.append(", dimension=").append(dimension);
        sb.append(", kxfWeight=").append(kxfWeight);
        sb.append(", yxfWeight=").append(yxfWeight);
        sb.append(", planWeight=").append(planWeight);
        sb.append(", serialVersionUID=").append(serialVersionUID);
        sb.append("]");
        return sb.toString();
    }
}