package com.cf.imes.module.executor.util.deviseData.dataTwo;

import com.alibaba.fastjson.JSONObject;
import com.cf.imes.framework.es.core.dal.ESDocument;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.math.BigDecimal;
import java.util.List;
import java.util.Map;

/**
 * CAD板件信息详情
 */
@Data
@Builder
@AllArgsConstructor
@NoArgsConstructor
public class PlateDetail{
//    板名称
    private String name;
//    板id
    private Long plateId;
//    板编号
    private String plateNo;
//    自定义板号
    private String customPlateNo;

    private Integer texture; //纹路 纹路(0正纹1可翻转2反纹)
    private Integer typographicFace; //排版面 排钻类型(0正面1反面2随意面)
    private Integer openDoorType; //开门类型 0非门板，1左开，2右开，3上翻，4下翻 字典转换
    private String boardType; // 小板类型


//    板件所属信息
    private String roomsName; //房间名称
    private String roomNo; // 房间号
    private String bodyName; //柜体名
    private String bodyNo; // 柜体号
//    柜体 长 宽 深
    private Double width;
    private Double height;
    private Double depth;

//    柜体成倍拆单的倍数
    private Integer multiNum;


//    板材所属加工组
    private String group;// 板件加工组Group的名称,可以有多个
//    加工组具体信息
    private List<Group> groupList;

//    成品长宽、面积
    private BigDecimal plateWidth;
    private BigDecimal plateLength;
    private BigDecimal acreage;

//    开料长宽、面积
    private BigDecimal splitLength;
    private BigDecimal splitWidth;
    private BigDecimal sealAcreage;

//    是否异形
    private Boolean isUnRegular;
//    封边，用于矩形
    private BigDecimal sealLeft;
    private BigDecimal sealRight;
    private BigDecimal sealUp;
    private BigDecimal sealDown;


//    偏移量
    private BigDecimal offsetX;
    private BigDecimal offsetY;

//    大板基本信息
    private BoardInfo boardInfo;
//    配件基本信息
    private List<PartsInfo> partsInfos;
//    排钻类型
    private List<DrillsInfo> drillsInfos;

    private Double throughHoleCount; // 挖孔的孔数
    private Double throughModelCount; // 挖穿的造型数

    private Boolean has2DModel; // 是否有二维刀路
    private Boolean has3DModel; // 是否有三维刀路

//    轮廓数据、造型数据

    private List<PointDetail> pointDetail ; //点明细，表示小板外围轮廓的几个转折点（不含封边）
    private List<PointDetail> rawPointDetail ; //原始点明细（含封边）

    private List<HoleDetail> holeDetail ; //孔明细，表示板上的孔
    private List<ModelDetail> contourDetail ; //造型明细

    private List<HoleDetail> sideHoleDetail;//侧面孔明细

//   备注
    private Map<String,String> remark;// 板件备注 (生产数据接口中）
    private Map<String,String> sideRemark;// 封边备注

    private String extraRemark; // 扩展备注(包含铰链备注、订单板件流水号)（板材明细中）
    private String specialRemarkDei; // 特殊备注(Json字符串)
    private String extraHandleRemark; // 拉手备注
    private String drillsRemark; // 排钻备注(Json字符串)
    private String infoRemark; // 板其他备注(Json字符串)
    private String remarkJsonDei; // 板件备注(Json字符串)

    private String remarkJson; // 普通备注（板材数据中）
    private String specialRemark; // 特殊备注（板材数据中）
}
