package com.cf.imes.module.executor.dal.dataobject.plate;

import com.cf.imes.framework.organ.core.db.OrganBaseDO;
import lombok.*;
import java.util.*;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.cf.imes.framework.mybatis.core.dataobject.BaseDO;

/**
 * 生产单板件 DO
 *
 * @author 晨丰科技
 */
@TableName("order_plate")
@KeySequence("order_plate_seq") // 用于 Oracle、PostgreSQL、Kingbase、DB2、H2 数据库的主键自增。如果是 MySQL 等数据库，可不写。
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
@Builder
@NoArgsConstructor
@AllArgsConstructor
public class PlateDO extends BaseDO {

    /**
     * 板件 ID
     */
    @TableId
    private Long id;
    // 组织 ID
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Long organId;
    /**
     * 生产单号
     */
    private Long orderId;
    /**
     * 板名称
     */
    private String name;
    /**
     * 自定义板编号,设计有板编号，则保留设计板编号；设计没有且在机台设置中设置了自定义板编号规则，则按规则自动生成
     */
    private String plateNo;
    /**
     * 板类型，0 层板 1 立板 2 背板
     */
    private Integer type;
    /**
     * 商品 ID
     */
    private Long goodsId;
    /**
     * 宽度
     */
    private BigDecimal width;
    /**
     * 高度
     */
    private BigDecimal height;
    /**
     * 厚度
     */
    private BigDecimal thickness;
    /**
     * 拆单宽度
     */
    private BigDecimal splitWidth;
    /**
     * 拆单高度
     */
    private BigDecimal splitHeight;
    /**
     * 拆单厚度
     */
    private BigDecimal splitThickness;
    /**
     * 左封边厚度
     */
    private BigDecimal sealLeft;
    /**
     * 右封边厚度
     */
    private BigDecimal sealRight;
    /**
     * 上封边厚度
     */
    private BigDecimal sealUp;
    /**
     * 下封边厚度
     */
    private BigDecimal sealDown;
    /**
     * 面积
     */
    private BigDecimal area;
    /**
     * 纹路类型，0 正纹 1 可翻转 2 反纹
     */
    private Integer texture;
    /**
     * 孔面类型，0 正面 1 反面 2 侧面
     */
    private Integer holeFace;
    /**
     * 排孔类型，0 正纹 1 反面 2 随意面
     */
    private Integer holeArrange;
    /**
     * 异型孔数量
     */
    private Integer unregularPointCount;
    /**
     * 正面孔数量
     */
    private Integer frontHoleCount;
    /**
     * 背面孔数量
     */
    private Integer backHoleCount;
    /**
     * 侧面孔数量
     */
    private Integer sideHoleCount;
    /**
     * 正面造型量
     */
    private Integer frontModelCount;
    /**
     * 背面造型量
     */
    private Integer backModelCount;
    /**
     * 是否门板
     */
    private Boolean isDoor;
    /**
     * 开门类型，0 无 1 左 2 右 3 上 4 下
     */
    private Integer openDoorType;
    /**
     * 异型偏移 x
     */
    private BigDecimal offsetX;
    /**
     * 异型偏移 y
     */
    private BigDecimal offsetY;
    /**
     * 是否孤形对角
     */
    private Boolean isArcAcross;
    /**
     * 模块类型 ID
     */
    private Long moduleTypeId;
    /**
     * 是否异性
     */
    private Boolean isSpecialShaped;
    /**
     * 是否造型
     */
    private Boolean isSculpt;
    /**
     * 排单过滤类型，1 有挖穿造型 2 有挖穿孔 4 有二维刀路 8 可叠
     */
    private Integer filterType;
    /**
     * 备注
     */
    private String remark;
    /**
     * 是否作废
     */
    private Boolean isCancel;
    /**
     * 是否删除
     */
    private Boolean deleted;

}