package com.cf.imes.module.executor.controller.admin.plan.vo;

import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.util.List;


/**
 * @author Beal
 */
@NoArgsConstructor
@Data
public class PlanOptimizeDataDTO {

    @Schema(description ="AreaID")
    private int areaID;
    @Schema(description ="AreaName")
    private String areaName;
    @Schema(description ="PlanOrder")
    private PlanOrderBean planOrder;
    @Schema(description ="MetrialList")
    private List<MetrialListBean> metrialList;
    @Schema(description ="OrderList")
    private List<OrderListBean> orderList;
    @Schema(description ="ConfigList")
    private List<ConfigListBean> configList;
    @Schema(description ="SourceType")
    private int sourceType;
    @Schema(description ="BlockList")
    private List<BlockListBean> blockList;
    @Schema(description ="BlockDetailList")
    private List<BlockDetailListBean> blockDetailList;
    @Schema(description ="AreaDeleted")
    private boolean areaDeleted;

    @NoArgsConstructor
    @Data
    public static class PlanOrderBean {
        @Schema(description ="ID")
        private int iD;
        @Schema(description ="WorkAreaID")
        private int workAreaID;
        @Schema(description ="PlanCode")
        private String planCode;
        @Schema(description ="CreateTime")
        private String createTime;
        @Schema(description ="CreatorID")
        private int creatorID;
        @Schema(description ="State")
        private int state;
        @Schema(description ="PlanTime")
        private String planTime;
        @Schema(description ="CompanyID")
        private int companyID;
        @Schema(description ="Remark")
        private String remark;
        @Schema(description ="IsSelected")
        private boolean isSelected;
    }

    @NoArgsConstructor
    @Data
    public static class MetrialListBean {
        @Schema(description ="OrderNo")
        private String orderNo;
        @Schema(description ="GoodsID")
        private int goodsID;
        @Schema(description ="GoodsName")
        private String goodsName;
        @Schema(description ="Specification")
        private String specification;
        @Schema(description ="Metrial")
        private String metrial;
        @Schema(description ="Color")
        private String color;
        @Schema(description ="Brank")
        private String brank;
        @Schema(description ="Width")
        private int width;
        @Schema(description ="Length")
        private int length;
        @Schema(description ="Thickness")
        private int thickness;
        @Schema(description ="Border")
        private int border;
        @Schema(description ="CutDia")
        private int cutDia;
        @Schema(description ="CutGap")
        private int cutGap;
        @Schema(description ="IsSorted")
        private boolean isSorted;
        @Schema(description ="BoardCount")
        private int boardCount;
        @Schema(description ="MinBoardID")
        private int minBoardID;
        @Schema(description ="MaxBoardID")
        private int maxBoardID;
        @Schema(description ="AvgLyr_All")
        private double avgLyr_All;
        @Schema(description ="AvgLyr_NoLastOne")
        private double avgLyr_NoLastOne;
        @Schema(description ="Lyr_LastOne")
        private double lyr_LastOne;
        @Schema(description ="CompanyID")
        private int companyID;
        @Schema(description ="UsedBoardMessage")
        private List<UsedBoardMessageBean> usedBoardMessage;
        @Schema(description ="BlockPlaceMessage")
        private List<BlockPlaceMessageBean> blockPlaceMessage;
        @Schema(description ="State")
        private int state;
        @Schema(description ="HasWave")
        private boolean hasWave;
        @Schema(description ="OrgWidth")
        private int orgWidth;
        @Schema(description ="OrgLength")
        private int orgLength;
        @Schema(description ="PreCutValue")
        private int preCutValue;
        @Schema(description ="HelpCut")
        private boolean helpCut;
        @Schema(description ="SameKnifeHelpCutGap")
        private int sameKnifeHelpCutGap;
        @Schema(description ="CutKnifeID")
        private int cutKnifeID;
        @Schema(description ="HelpKnifeID")
        private int helpKnifeID;
        @Schema(description ="BoardCount_Remain")
        private int boardCount_Remain;
        @Schema(description ="RemainBoardMessage")
        private String remainBoardMessage;
        @Schema(description ="ScrapBoardList")
        private List<?> scrapBoardList;
        @Schema(description ="LastSaveDate")
        private String lastSaveDate;

        @NoArgsConstructor
        @Data
        public static class UsedBoardMessageBean {
            @Schema(description ="Bi")
            private int bi;
            @Schema(description ="W")
            private int w;
            @Schema(description ="L")
            private int l;
            @Schema(description ="Si")
            private int si;
            @Schema(description ="So")
            private String so;
            @Schema(description ="No")
            private String no;
            @Schema(description ="LK")
            private boolean lK;
            private Object scrapPts;
            private List<?> scrapBlocks;
            @Schema(description ="LE")
            private boolean lE;
            @Schema(description ="RE")
            private boolean rE;
        }

        @NoArgsConstructor
        @Data
        public static class BlockPlaceMessageBean {
            private Object zzInfo;
            @Schema(description ="Bi")
            private int bi;
            @Schema(description ="Bo")
            private long bo;
            @Schema(description ="X")
            private int x;
            @Schema(description ="Y")
            private int y;
            @Schema(description ="Pi")
            private int pi;
            @Schema(description ="Ps")
            private int ps;
            @Schema(description ="Ci")
            private int ci;
            @Schema(description ="Ca")
            private int ca;
            @Schema(description ="CP")
            private int cP;
            private boolean iA;
            private boolean iO;
            @Schema(description ="Dh")
            private boolean dh;
            @Schema(description ="Dm")
            private boolean dm;
            @Schema(description ="OF")
            private int oF;
            private int type;
            private List<?> points;
            @Schema(description ="OrgSizeOutOff")
            private OrgSizeOutOffBean orgSizeOutOff;
            @Schema(description ="SizeOutOff")
            private SizeOutOffBean sizeOutOff;
            @Schema(description ="PlaceOffX")
            private double placeOffX;
            @Schema(description ="PlaceOffY")
            private double placeOffY;

            @NoArgsConstructor
            @Data
            public static class OrgSizeOutOffBean {
                private int left;
                private int right;
                private int upper;
                private int under;
                private int width;
                private int length;
                private int outWidth;
                private int outLength;
                private boolean hasDone;
            }

            @NoArgsConstructor
            @Data
            public static class SizeOutOffBean {
                private double left;
                private double right;
                private double upper;
                private double under;
                private int width;
                private int length;
                private int outWidth;
                private int outLength;
                private boolean hasDone;
            }
        }
    }

    @NoArgsConstructor
    @Data
    public static class OrderListBean {
        @Schema(description ="CustomerID")
        private int customerID;
        @Schema(description ="CustomerName")
        private String customerName;
        @Schema(description ="CustomerPhone")
        private String customerPhone;
        @Schema(description ="SaleDate")
        private String saleDate;
        @Schema(description ="SalePersonNo")
        private int salePersonNo;
        @Schema(description ="Consignee")
        private String consignee;
        @Schema(description ="ConsigneePhone")
        private String consigneePhone;
        @Schema(description ="ConsigneeAddress")
        private String consigneeAddress;
        @Schema(description ="OrderState")
        private int orderState;
        @Schema(description ="OrderMoney")
        private double orderMoney;
        @Schema(description ="Remark")
        private String remark;
        @Schema(description ="CustomOrderNo")
        private String customOrderNo;
        @Schema(description ="DeliveryDate")
        private String deliveryDate;
        @Schema(description ="PushConfig")
        private boolean pushConfig;
        @Schema(description ="OfferListStr")
        private Object offerListStr;
        @Schema(description ="CancelState")
        private int cancelState;
        @Schema(description ="ItemList")
        private Object itemList;
        @Schema(description ="GoodsList")
        private Object goodsList;
        @Schema(description ="OfferList")
        private Object offerList;
        @Schema(description ="TotalOrderOfferList")
        private Object totalOrderOfferList;
        @Schema(description ="BlockList")
        private Object blockList;
        @Schema(description ="DataBlockList")
        private Object dataBlockList;
        @Schema(description ="ObjectList")
        private Object objectList;
        @Schema(description ="DataObjectList")
        private Object dataObjectList;
        @Schema(description ="GoodsInfoList")
        private Object goodsInfoList;
        @Schema(description ="OrderProcessList")
        private Object orderProcessList;
        @Schema(description ="EditFun")
        private OrderListBean.EditFunBean editFun;
        @Schema(description ="SalePerson")
        private String salePerson;
        @Schema(description ="CdUserID")
        private int cdUserID;
        @Schema(description ="CdUser")
        private String cdUser;
        @Schema(description ="OrderNo")
        private long orderNo;
        @Schema(description ="CreateTime")
        private String createTime;
        @Schema(description ="CompanyID")
        private int companyID;
        @Schema(description ="SchduleDeliveryDate")
        private String schduleDeliveryDate;
        @Schema(description ="OrderType")
        private int orderType;
        @Schema(description ="OrderSort")
        private int orderSort;
        @Schema(description ="CadDataType")
        private int cadDataType;
        @Schema(description ="Deleted")
        private boolean deleted;
        @Schema(description ="ProcessState")
        private Object processState;

        @NoArgsConstructor
        @Data
        public static class EditFunBean {
            private int customer;
        }
    }

    @NoArgsConstructor
    @Data
    public static class ConfigListBean {
        @Schema(description ="Type")
        private int type;
        @Schema(description ="Setting")
        private ConfigListBean.SettingBean setting;
        @Schema(description ="MachineID")
        private int machineID;

        @NoArgsConstructor
        @Data
        public static class SettingBean {
            @Schema(description ="UseWorkPanelSize")
            private boolean useWorkPanelSize;
            @Schema(description ="BoardWidth")
            private int boardWidth;
            @Schema(description ="BoardLength")
            private int boardLength;
            @Schema(description ="BoardSizeList")
            private List<?> boardSizeList;
            @Schema(description ="BoardBorder")
            private int boardBorder;
            @Schema(description ="BoardBorder_B")
            private int boardBorder_B;
            @Schema(description ="CutBorderOff1")
            private int cutBorderOff1;
            @Schema(description ="CutBorderOff2")
            private int cutBorderOff2;
            @Schema(description ="KnifeDia")
            private int knifeDia;
            @Schema(description ="CutGap")
            private int cutGap;
            @Schema(description ="PreCutValue")
            private int preCutValue;
            @Schema(description ="OriginPointPosition")
            private int originPointPosition;
            @Schema(description ="WidthSideAxis")
            private int widthSideAxis;
            @Schema(description ="LengthSideAxis")
            private int lengthSideAxis;
            @Schema(description ="LocatorPosition")
            private int locatorPosition;
            @Schema(description ="UseLocator4Place")
            private boolean useLocator4Place;
            @Schema(description ="OffsetX_Board1")
            private int offsetX_Board1;
            @Schema(description ="OffsetY_Board1")
            private int offsetY_Board1;
            @Schema(description ="LocatorPosition_Block")
            private int locatorPosition_Block;
            @Schema(description ="OffsetX_Block")
            private int offsetX_Block;
            @Schema(description ="OffsetY_Block")
            private int offsetY_Block;
            private int scrapBlockSquare;
            private int srcapBlockWidthMin;
            private int scrapBlockWidthMax;
            @Schema(description ="FreeHeight")
            private int freeHeight;
            @Schema(description ="FreeLocationX")
            private int freeLocationX;
            @Schema(description ="FreeLocationY")
            private int freeLocationY;
            @Schema(description ="FreeSpeed")
            private int freeSpeed;
            @Schema(description ="WorkStartHeight")
            private int workStartHeight;
            @Schema(description ="WorkStartSpeed")
            private int workStartSpeed;
            @Schema(description ="WorkStartDistance")
            private int workStartDistance;
            @Schema(description ="WorkPreDistance")
            private int workPreDistance;
            @Schema(description ="WorkSpeed")
            private int workSpeed;
            @Schema(description ="WorkCornerSpeed")
            private int workCornerSpeed;
            @Schema(description ="WorkEndSpeed")
            private int workEndSpeed;
            @Schema(description ="WorkEndDistace")
            private int workEndDistace;
            private int sameBorderHighSpeed;
            private int innerCornerDistence;
            private int innerCornerSpeed;
            @Schema(description ="HoleFreeSpeed")
            private int holeFreeSpeed;
            @Schema(description ="HoleFirstDepth")
            private int holeFirstDepth;
            @Schema(description ="HoleFirstSpeed")
            private int holeFirstSpeed;
            @Schema(description ="HoleSpeed")
            private int holeSpeed;
            @Schema(description ="ModelSpeed")
            private int modelSpeed;
            @Schema(description ="AllowDoubleHoleFirstSort")
            private boolean allowDoubleHoleFirstSort;
            @Schema(description ="YuLiaoBoardDo2FaceBlock")
            private boolean yuLiaoBoardDo2FaceBlock;
            @Schema(description ="ShowDoubleHoleFirst4Place")
            private boolean showDoubleHoleFirst4Place;
            @Schema(description ="AutoSortingMinWidth")
            private int autoSortingMinWidth;
            @Schema(description ="FirstCutBorderInFaceB")
            private boolean firstCutBorderInFaceB;
            @Schema(description ="TongHoleOnlyOneTime")
            private boolean tongHoleOnlyOneTime;
            @Schema(description ="TongHoleUseTwoTime")
            private boolean tongHoleUseTwoTime;
            @Schema(description ="TongKongDoBackFace")
            private boolean tongKongDoBackFace;
            @Schema(description ="AllowDoubleSplit")
            private boolean allowDoubleSplit;
            @Schema(description ="SplitThickness")
            private int splitThickness;
            @Schema(description ="SplitDepth")
            private int splitDepth;
            @Schema(description ="LimitDouleSplit")
            private boolean limitDouleSplit;
            @Schema(description ="DoubleSplitWidth")
            private int doubleSplitWidth;
            @Schema(description ="DoubleSplitLength")
            private int doubleSplitLength;
            @Schema(description ="SplitBlockSeqIds")
            private String splitBlockSeqIds;
            @Schema(description ="UseDianZiJuMethod")
            private boolean useDianZiJuMethod;
            @Schema(description ="DisposeCutBlock")
            private boolean disposeCutBlock;
            @Schema(description ="ThroughModelSkewCutLength")
            private int throughModelSkewCutLength;
            @Schema(description ="UseNewSort")
            private boolean useNewSort;
            @Schema(description ="UseOrgSortInYX")
            private boolean useOrgSortInYX;
            @Schema(description ="CutBlockInModelFirst")
            private boolean cutBlockInModelFirst;
            @Schema(description ="LastBoardReplace")
            private boolean lastBoardReplace;
            @Schema(description ="LastBoardReplaceTime")
            private int lastBoardReplaceTime;
            @Schema(description ="HelpCutKnifeNo")
            private int helpCutKnifeNo;
            @Schema(description ="HelpCutKnifeDepth")
            private int helpCutKnifeDepth;
            @Schema(description ="HelpCutKnifeWaitingCode")
            private String helpCutKnifeWaitingCode;
            @Schema(description ="HelpCutKnifeWaitingCode2")
            private String helpCutKnifeWaitingCode2;
            @Schema(description ="UseSecodeKnifeBlockName")
            private String useSecodeKnifeBlockName;
            @Schema(description ="UseSecondKnifeBlockWidth")
            private int useSecondKnifeBlockWidth;
            @Schema(description ="UseSecondKnifeBlockLength")
            private int useSecondKnifeBlockLength;
            @Schema(description ="UseSameKnifeToHelpCut")
            private boolean useSameKnifeToHelpCut;
            @Schema(description ="UseSameKnifeToHelpCutGap")
            private int useSameKnifeToHelpCutGap;
            @Schema(description ="UseNewKnifeModule")
            private boolean useNewKnifeModule;
            @Schema(description ="KnifeIDForHole")
            private int knifeIDForHole;
            @Schema(description ="Knifes4Hole")
            private String knifes4Hole;
            @Schema(description ="ModelKnifeGroup")
            private List<?> modelKnifeGroup;
            @Schema(description ="KnifeList")
            private List<KnifeListBean> knifeList;
            @Schema(description ="ExportOrderPathName")
            private String exportOrderPathName;
            @Schema(description ="ExportBoardPathName")
            private String exportBoardPathName;
            @Schema(description ="BoardFileA")
            private String boardFileA;
            @Schema(description ="BoardFileB")
            private String boardFileB;
            @Schema(description ="BlockFile")
            private String blockFile;
            @Schema(description ="NcFileHead")
            private String ncFileHead;
            @Schema(description ="NcFileEnd")
            private String ncFileEnd;
            @Schema(description ="NcFileHead_B")
            private String ncFileHead_B;
            @Schema(description ="NcFileEnd_B")
            private String ncFileEnd_B;
            @Schema(description ="NcFileHead_Block")
            private String ncFileHead_Block;
            @Schema(description ="NcFileEnd_Block")
            private String ncFileEnd_Block;
            @Schema(description ="RegularBlockFilletCurve")
            private boolean regularBlockFilletCurve;
            @Schema(description ="UnregularBlockFilletCurve")
            private boolean unregularBlockFilletCurve;
            @Schema(description ="DealCircleWithIJ")
            private boolean dealCircleWithIJ;
            @Schema(description ="IsTurnOverG2G3")
            private boolean isTurnOverG2G3;
            @Schema(description ="ArcLineMaxLength")
            private int arcLineMaxLength;
            @Schema(description ="AllowNCComments")
            private boolean allowNCComments;
            @Schema(description ="AllowAddGcodeEndChar")
            private boolean allowAddGcodeEndChar;
            @Schema(description ="GcodeEndChar")
            private String gcodeEndChar;
            @Schema(description ="NcFileIsGB2312")
            private boolean ncFileIsGB2312;
            @Schema(description ="NcFileIsUtfBom")
            private boolean ncFileIsUtfBom;
            @Schema(description ="AllowExportNC_BackFace")
            private boolean allowExportNC_BackFace;
            @Schema(description ="OneBoardFile")
            private boolean oneBoardFile;
            @Schema(description ="AllowExportNC_block")
            private boolean allowExportNC_block;
            @Schema(description ="AllowExportDataFile")
            private boolean allowExportDataFile;
            @Schema(description ="AllowExportBoardDxf")
            private boolean allowExportBoardDxf;
            private boolean isNcSimpleXYZ;
            private boolean showTwoWorkSpace;
            private boolean showChooseCutKnife;
            private boolean showPriorFacing;
            private boolean showAutoLoadBoard;
            private boolean showHoleGroup;
            private boolean showAutoNotePrinter;
            private boolean showCustomBlockNo;
            private boolean showMachine;
            @Schema(description ="AllowDoubleWorkSpace")
            private boolean allowDoubleWorkSpace;
            @Schema(description ="SameOriginPointPosition")
            private boolean sameOriginPointPosition;
            @Schema(description ="OffsetX_WorkNum2")
            private int offsetX_WorkNum2;
            @Schema(description ="OffsetY_WorkNum2")
            private int offsetY_WorkNum2;
            @Schema(description ="OriginPointPosition2")
            private int originPointPosition2;
            @Schema(description ="WidthSideAxis2")
            private int widthSideAxis2;
            @Schema(description ="LengthSideAxis2")
            private int lengthSideAxis2;
            @Schema(description ="LocatorPosition2")
            private int locatorPosition2;
            @Schema(description ="OffsetX_Board2")
            private int offsetX_Board2;
            @Schema(description ="OffsetY_Board2")
            private int offsetY_Board2;
            @Schema(description ="AllowCombineNCWithDoubleWorkSpace")
            private boolean allowCombineNCWithDoubleWorkSpace;
            @Schema(description ="CombineNCFileName")
            private String combineNCFileName;
            @Schema(description ="IsOddNumInWorkSpace1")
            private boolean isOddNumInWorkSpace1;
            @Schema(description ="IsHoleBlockInSpace1")
            private boolean isHoleBlockInSpace1;
            @Schema(description ="NcFileHead_WorkSpace2")
            private String ncFileHead_WorkSpace2;
            @Schema(description ="NcFileEnd_WorkSpace2")
            private String ncFileEnd_WorkSpace2;
            @Schema(description ="NcFileHead_B_WorkSpace2")
            private String ncFileHead_B_WorkSpace2;
            @Schema(description ="NcFileEnd_B_WorkSpace2")
            private String ncFileEnd_B_WorkSpace2;
            @Schema(description ="AllowChangeCutKnifeWithThickness")
            private boolean allowChangeCutKnifeWithThickness;
            @Schema(description ="AllowChangeCutKnifeWidthID")
            private boolean allowChangeCutKnifeWidthID;
            @Schema(description ="BoardKnifeList")
            private List<?> boardKnifeList;
            @Schema(description ="IsPriorFacing_RoleNum")
            private int isPriorFacing_RoleNum;
            @Schema(description ="DisPloseHoleRole")
            private boolean disPloseHoleRole;
            @Schema(description ="IsIgnore_HolingModeling")
            private boolean isIgnore_HolingModeling;
            @Schema(description ="IsForceHoling_MultiSide_Minimum")
            private boolean isForceHoling_MultiSide_Minimum;
            @Schema(description ="IgnoreValue_MultiSide_Minimum")
            private int ignoreValue_MultiSide_Minimum;
            @Schema(description ="IsForceHoling_SingleSide_Minimum")
            private boolean isForceHoling_SingleSide_Minimum;
            @Schema(description ="IgnoreValue_SingleSide_Minimum")
            private int ignoreValue_SingleSide_Minimum;
            @Schema(description ="IsForceHoling_SingleSide_Maximum")
            private boolean isForceHoling_SingleSide_Maximum;
            @Schema(description ="IgnoreValue_SingleSide_Maximum")
            private int ignoreValue_SingleSide_Maximum;
            @Schema(description ="IsForceHoling_MultiSide_Maximun")
            private boolean isForceHoling_MultiSide_Maximun;
            @Schema(description ="IgnoreValue_MultiSide_Maximun")
            private int ignoreValue_MultiSide_Maximun;
            @Schema(description ="IsForceHoling_UnRegularBlock")
            private boolean isForceHoling_UnRegularBlock;
            @Schema(description ="IsForceHoling_HasModel")
            private boolean isForceHoling_HasModel;
            @Schema(description ="IsIgnore_Modeling")
            private boolean isIgnore_Modeling;
            private boolean doModel_hasModel;
            private boolean doModel_UnRegular;
            private boolean doModel_twoSmall;
            private int doModel_twoSmall_Value;
            private boolean doModel_oneSmall;
            private int doModel_oneSmall_Value;
            private boolean doModel_twoBig;
            private int doModel_twoBig_Value;
            private boolean doModel_oneBig;
            private int doModel_oneBig_Value;
            @Schema(description ="AllowChangeIgnore")
            private boolean allowChangeIgnore;
            @Schema(description ="IsFoceModeling_hasModel")
            private boolean isFoceModeling_hasModel;
            @Schema(description ="IsFoceModeling_SameHoling")
            private boolean isFoceModeling_SameHoling;
            @Schema(description ="IsFoceModeling_MultiLine")
            private boolean isFoceModeling_MultiLine;
            @Schema(description ="IsForceModeling_Arc")
            private boolean isForceModeling_Arc;
            @Schema(description ="IsForceModeling_Through")
            private boolean isForceModeling_Through;
            @Schema(description ="IsPriorFacing_KaiLiaoMian")
            private boolean isPriorFacing_KaiLiaoMian;
            @Schema(description ="IsPriorFacing_Reverse")
            private boolean isPriorFacing_Reverse;
            @Schema(description ="IsPriorFacing_SingleModel")
            private boolean isPriorFacing_SingleModel;
            @Schema(description ="IsPriorFacing_SingleModel_Front")
            private boolean isPriorFacing_SingleModel_Front;
            @Schema(description ="IsPriorFacing_DoubleModel")
            private boolean isPriorFacing_DoubleModel;
            @Schema(description ="IsPriorFacing_DoubleModel_Front")
            private boolean isPriorFacing_DoubleModel_Front;
            @Schema(description ="IsPriorFacing_SingleHole")
            private boolean isPriorFacing_SingleHole;
            @Schema(description ="IsPriorFacing_SingleHole_Front")
            private boolean isPriorFacing_SingleHole_Front;
            @Schema(description ="IsPriorFacing_BigHole")
            private boolean isPriorFacing_BigHole;
            @Schema(description ="IsPriorFacing_BigHole_Front")
            private boolean isPriorFacing_BigHole_Front;
            @Schema(description ="IsPriorFacing_DoubleHole")
            private boolean isPriorFacing_DoubleHole;
            @Schema(description ="IsPriorFacing_DoubleHole_More")
            private boolean isPriorFacing_DoubleHole_More;
            @Schema(description ="IsPriorFacing_CustomFunction")
            private String isPriorFacing_CustomFunction;
            private int wr6_OverRun_WdthS;
            private int wr6_OverRun_WdthE;
            private int wr6_OverRun_LengthS;
            private int wr6_OverRun_LengthE;
            private boolean wr6_OverRun_hasThroghModel;
            private int wr6_OverRun_hasThroghModel_r;
            private int wr6_OverRun_hasThroghModel_size;
            private boolean wr6_OverRun_UnRegular;
            private boolean wr6_OverRun_hasCorner;
            private int wr6_OverRun_MaxChamferR;
            private int wr6_OverRun_MaxInnerLength;
            private boolean wr6_OverRun_hasOneRightAngle;
            private boolean wr6_OverRun_hasOneBorder;
            private String wr6_OverRun_WorkGroups;
            private String wr6_OverRun_BlockNames;
            private boolean wr6_unModel_all;
            private boolean wr6_unModel_isThrogh;
            private boolean wr6_unModel_isArc;
            private boolean wr6_unModel_hasMulLines;
            private boolean wr6_unModel_checkRadius;
            private String wr6_unModel_isRadius;
            private boolean wr6_unModel_checkName;
            private String wr6_unModel_isName;
            private boolean wr6_unModel_checkDepth;
            private String wr6_unModel_isDepth;
            private boolean wr6_unModel_isVKnifeModel;
            private boolean wr6_unModel_is3VModell;
            private boolean wr6_unModel_isLaChao;
            private boolean wr6_unModel_notLaChao;
            private int wr6_laChao_maxWidth;
            private int wr6_lachao_minLength;
            private boolean wr6_unHole_all;
            private boolean wr6_unHole_checkRadius;
            private String wr6_unHole_isRadius;
            private boolean wr6_unHole_checkType;
            private String wr6_unHole_isType;
            private boolean wr6_unHole_checkDepth;
            private String wr6_unHole_isDepth;
            private boolean wr6_unHole_isThrogh;
            private boolean wr6_unHole_isNoHoleKnife;
            private boolean wr6_dragUndo_m2m;
            private boolean wr6_dragUndo_m2m_2face;
            private boolean wr6_dragUndo_m2h;
            private boolean wr6_dragUndo_m2h_2face;
            private boolean wr6_dragUndo_h2m;
            private boolean wr6_dragUndo_h2m_2face;
            private boolean wr6_dragUndo_h2h;
            private boolean wr6_dragUndo_h2h_2face;
            private boolean wr6_cncDo_modelR;
            private String wr6_cncDo_modelR_str;
            private boolean wr6_cncDo_modelD;
            private String wr6_cncDo_modelD_str;
            private boolean wr6_cncDo_holeR;
            private String wr6_cncDo_holeR_str;
            private boolean wr6_cncDo_holeD;
            private String wr6_cncDo_holeD_str;
            private int wr6_doStyle_1Face;
            private boolean wr6_doStyle_1Face_hole;
            private boolean wr6_doStyle_1Face_model;
            private boolean wr6_doStyle_1Face_face;
            private boolean wr6_doStyle_1Face_pbm;
            private boolean wr6_doStyle_1Face_sideHole;
            private int wr6_doStyle_2Face;
            private boolean wr6_doStyle_2Face_hole;
            private boolean wr6_doStyle_2Face_model;
            private String wr6_doStyle_2Face_role;
            private String wr6_turnFace_roleSeq;
            private boolean wr6_CustomFun_use;
            private String wr6_CustomFun_text;
            @Schema(description ="AllowHoleToModel")
            private boolean allowHoleToModel;
            @Schema(description ="HoleToModelKnifes")
            private List<?> holeToModelKnifes;
            @Schema(description ="IsLoadBoardBeforeFileHead")
            private boolean isLoadBoardBeforeFileHead;
            @Schema(description ="NcLoadBoard")
            private String ncLoadBoard;
            @Schema(description ="NcFileHoleBegin")
            private String ncFileHoleBegin;
            @Schema(description ="NcFileHoleEnd")
            private String ncFileHoleEnd;
            @Schema(description ="HolingByKnifeDia")
            private boolean holingByKnifeDia;
            @Schema(description ="NoteAutoPrinter")
            private boolean noteAutoPrinter;
            @Schema(description ="NoteAutoPrinterScrapBorad")
            private boolean noteAutoPrinterScrapBorad;
            @Schema(description ="NoteNcName")
            private String noteNcName;
            @Schema(description ="NotePicName")
            private String notePicName;
            @Schema(description ="NotePicType")
            private String notePicType;
            @Schema(description ="NotePicBit")
            private String notePicBit;
            @Schema(description ="NotePrintOnFaceA")
            private boolean notePrintOnFaceA;
            @Schema(description ="NotePositionAvoidHole")
            private boolean notePositionAvoidHole;
            @Schema(description ="NoteWidth")
            private int noteWidth;
            @Schema(description ="NOteHeight")
            private int nOteHeight;
            @Schema(description ="NoteContent")
            private String noteContent;
            @Schema(description ="NotePushInNcFile")
            private boolean notePushInNcFile;
            @Schema(description ="NoteGB2312")
            private boolean noteGB2312;
            @Schema(description ="NoteUtf8Bom")
            private boolean noteUtf8Bom;
            @Schema(description ="NoteOtherExport")
            private boolean noteOtherExport;
            @Schema(description ="NoteOtherFun")
            private String noteOtherFun;
            @Schema(description ="AllowBlockNo_Note")
            private boolean allowBlockNo_Note;
            @Schema(description ="BlockNo_Note")
            private String blockNo_Note;
            @Schema(description ="BoardName")
            private String boardName;
            @Schema(description ="MinBlockWidth")
            private int minBlockWidth;
            @Schema(description ="MinHoleRadius")
            private int minHoleRadius;
            @Schema(description ="MinHoleDepth")
            private int minHoleDepth;
            @Schema(description ="MinModelDepth")
            private int minModelDepth;
            @Schema(description ="MinModelRadius")
            private int minModelRadius;
            @Schema(description ="MaxBorderThickness")
            private int maxBorderThickness;
            @Schema(description ="Ignore2in1SideHole")
            private boolean ignore2in1SideHole;
            @Schema(description ="Ignore2in1SideHoleGap")
            private double ignore2in1SideHoleGap;
            private boolean canReloadPlaceInfo;
            @Schema(description ="MiniumSpaceSize")
            private int miniumSpaceSize;
            @Schema(description ="NeatenSpaceGap")
            private int neatenSpaceGap;
            @Schema(description ="ResetPositionWithLocator")
            private boolean resetPositionWithLocator;
            @Schema(description ="NcNumberFixNumber")
            private int ncNumberFixNumber;
            @Schema(description ="NcFileRemoveEmptyLine")
            private boolean ncFileRemoveEmptyLine;
            @Schema(description ="HoleWaitingCode")
            private String holeWaitingCode;
            private int prevRunActionCount;
            @Schema(description ="ShearBorderFaceA")
            private boolean shearBorderFaceA;
            @Schema(description ="DelayDoCountBeforeChangeKnife")
            private int delayDoCountBeforeChangeKnife;
            @Schema(description ="DelayCodeBeforeChangeKnife")
            private String delayCodeBeforeChangeKnife;
            @Schema(description ="UseBoardFaceZ")
            private boolean useBoardFaceZ;
            @Schema(description ="PushNcLineIDStr")
            private PushNcLineIDStrBean pushNcLineIDStr;
            @Schema(description ="ReverseModelPoints")
            private boolean reverseModelPoints;
            @Schema(description ="DisPoseModelInBoardBorderWidth")
            private int disPoseModelInBoardBorderWidth;
            @Schema(description ="DisPoseModelInBoardFace")
            private int disPoseModelInBoardFace;
            @Schema(description ="DisPoseModelInBoardBorderForCNC")
            private boolean disPoseModelInBoardBorderForCNC;
            @Schema(description ="DisPoseModelInBoardReverse")
            private boolean disPoseModelInBoardReverse;
            @Schema(description ="EnableFaceWithDoingRate")
            private boolean enableFaceWithDoingRate;
            @Schema(description ="EnableFaceByCncDoing")
            private boolean enableFaceByCncDoing;
            @Schema(description ="DoingRate")
            private int doingRate;
            @Schema(description ="PerHoleTime")
            private double perHoleTime;
            @Schema(description ="PerModelTime")
            private int perModelTime;
            @Schema(description ="EnableNotePrintAutoPosition")
            private boolean enableNotePrintAutoPosition;
            @Schema(description ="EnabaleModelOutSize")
            private boolean enabaleModelOutSize;
            @Schema(description ="Enable2VModelOutSize")
            private boolean enable2VModelOutSize;
            @Schema(description ="OverlapGap")
            private double overlapGap;
            @Schema(description ="EnableUnPlacedBlockWithABoard")
            private boolean enableUnPlacedBlockWithABoard;
            @Schema(description ="UnregularSizeLimit")
            private int unregularSizeLimit;
            @Schema(description ="ManagerPassword")
            private String managerPassword;
            @Schema(description ="Remark")
            private String remark;
            @Schema(description ="EnableRectScrapBlock")
            private boolean enableRectScrapBlock;
            @Schema(description ="RectScrapBlockFlag")
            private int rectScrapBlockFlag;
            @Schema(description ="EnableShatterWaste")
            private boolean enableShatterWaste;
            @Schema(description ="ShatterWastelenth")
            private int shatterWastelenth;
            @Schema(description ="ShatterWasteRetain")
            private double shatterWasteRetain;
            @Schema(description ="NcFileBeginCutBlock")
            private String ncFileBeginCutBlock;
            @Schema(description ="NcFileEndCutBlock")
            private String ncFileEndCutBlock;
            private String wr6_cncDo_BlockNames;
            private String wr6_cncDo_WorkGroups;
            private boolean wr6_cncDo_model_wc;
            private boolean wr6_cncDo_hole_wc;
            @Schema(description ="ModelPointControl")
            private int modelPointControl;
            @Schema(description ="ModelCutRedundancy")
            private int modelCutRedundancy;
            @Schema(description ="WebQueryPageSize")
            private int webQueryPageSize;
            @Schema(description ="ExportRootPath")
            private String exportRootPath;
            @Schema(description ="AllowSelectExportPath")
            private boolean allowSelectExportPath;
            @Schema(description ="AllowExportImage")
            private boolean allowExportImage;
            @Schema(description ="ManualSortingCornerWidth")
            private int manualSortingCornerWidth;
            @Schema(description ="AllowOppositeDealChuanHole")
            private boolean allowOppositeDealChuanHole;
            @Schema(description ="UseSecodeKnifeBlockNames")
            private Object useSecodeKnifeBlockNames;

            @NoArgsConstructor
            @Data
            public static class PushNcLineIDStrBean {
                private boolean enable;
                private int beginLine;
                private int endLine;
                private boolean ignoreEmptyLine;
                private String format;
                private int lineID;
            }

            @NoArgsConstructor
            @Data
            public static class KnifeListBean {
                @Schema(description ="KnifeID")
                private int knifeID;
                @Schema(description ="KnifeName")
                private String knifeName;
                @Schema(description ="AxleID")
                private int axleID;
                @Schema(description ="AllowCut")
                private boolean allowCut;
                @Schema(description ="AllowHole")
                private boolean allowHole;
                @Schema(description ="AllowModel")
                private boolean allowModel;
                @Schema(description ="AllowPrevRun")
                private boolean allowPrevRun;
                @Schema(description ="Diameter")
                private int diameter;
                @Schema(description ="Diameter2")
                private int diameter2;
                @Schema(description ="Length")
                private int length;
                @Schema(description ="GroupType")
                private String groupType;
                @Schema(description ="OffsetX")
                private int offsetX;
                @Schema(description ="OffsetY")
                private int offsetY;
                @Schema(description ="OffsetZ")
                private int offsetZ;
                @Schema(description ="VKnifAngle")
                private int vKnifAngle;
                @Schema(description ="Speed")
                private int speed;
                @Schema(description ="PushDepthIncres")
                private String pushDepthIncres;
                @Schema(description ="RunCode")
                private String runCode;
                @Schema(description ="SwitchCode")
                private String switchCode;
                @Schema(description ="StopCode")
                private String stopCode;
                @Schema(description ="IsAdvanceHole")
                private boolean isAdvanceHole;
                @Schema(description ="RePlaceKnifeID")
                private int rePlaceKnifeID;
                @Schema(description ="AdvanceHoleCode")
                private String advanceHoleCode;
                @Schema(description ="AdvanceHolePoints")
                private List<?> advanceHolePoints;
                @Schema(description ="IsAdvanceHoleGroup")
                private boolean isAdvanceHoleGroup;
                @Schema(description ="IsOutBlockDown")
                private boolean isOutBlockDown;
            }
        }
    }

    @NoArgsConstructor
    @Data
    public static class BlockListBean {
        @Schema(description ="RoomName")
        private String roomName;
        @Schema(description ="BoxName")
        private String boxName;
        @Schema(description ="OrderNo")
        private long orderNo;
        @Schema(description ="BlockID")
        private int blockID;
        @Schema(description ="GoodsID")
        private int goodsID;
        @Schema(description ="OldBlockID")
        private int oldBlockID;
        @Schema(description ="BlockNo")
        private long blockNo;
        @Schema(description ="NoteNo")
        private String noteNo;
        @Schema(description ="BlockName")
        private String blockName;
        @Schema(description ="Width")
        private int width;
        @Schema(description ="Length")
        private int length;
        @Schema(description ="Thickness")
        private int thickness;
        @Schema(description ="Area")
        private double area;
        @Schema(description ="IsHXDJX")
        private boolean isHXDJX;
        @Schema(description ="BorderLeft")
        private int borderLeft;
        @Schema(description ="BorderRight")
        private int borderRight;
        @Schema(description ="BorderUpper")
        private int borderUpper;
        @Schema(description ="BorderUnder")
        private int borderUnder;
        @Schema(description ="Wave")
        private int wave;
        @Schema(description ="PaiKong")
        private int paiKong;
        @Schema(description ="BorderLengthLight")
        private int borderLengthLight;
        @Schema(description ="BorderLengthHeavy")
        private int borderLengthHeavy;
        @Schema(description ="RemarkJson")
        private String remarkJson;
        @Schema(description ="CadDataType")
        private int cadDataType;
        @Schema(description ="ProcessGroupName")
        private String processGroupName;
        @Schema(description ="Type")
        private String type;
        @Schema(description ="OpenDoorType")
        private int openDoorType;
        @Schema(description ="ExtraRemark")
        private BlockListBean.ExtraRemarkBean extraRemark;
        @Schema(description ="ItemID")
        private int itemID;
        @Schema(description ="IsUnRegular")
        private boolean isUnRegular;
        @Schema(description ="IsModel")
        private boolean isModel;
        @Schema(description ="BoxGroupNumber")
        private int boxGroupNumber;
        @Schema(description ="BoxNumber")
        private int boxNumber;
        @Schema(description ="BoxMultNumber")
        private int boxMultNumber;

        @NoArgsConstructor
        @Data
        public static class ExtraRemarkBean {
            private ExtraBean extra;

            @NoArgsConstructor
            @Data
            public static class ExtraBean {
                private String boardType;
                private int throughHoleCount;
                private int throughModelCount;
                private boolean has2DModel;
                private boolean has3DModel;
                private String composingFace;
                private List<?> processList;
            }
        }
    }

    @NoArgsConstructor
    @Data
    public static class BlockDetailListBean {
        @Schema(description ="ID")
        private int iD;
        @Schema(description ="OrderNo")
        private long orderNo;
        @Schema(description ="PointDetail")
        private List<?> pointDetail;
        @Schema(description ="ModelDetail")
        private List<?> modelDetail;
        @Schema(description ="HoleDetail")
        private List<?> holeDetail;
        @Schema(description ="OffSet")
        private BlockDetailListBean.OffSetBean offSet;
        @Schema(description ="NewVersion")
        private boolean newVersion;
        @Schema(description ="OrgPointDetail")
        private List<?> orgPointDetail;
        @Schema(description ="KaiLiaoSize")
        private BlockDetailListBean.KaiLiaoSizeBean kaiLiaoSize;
        @Schema(description ="SideModelDetail")
        private List<?> sideModelDetail;
        @Schema(description ="SideHoleDetail")
        private List<?> sideHoleDetail;

        @NoArgsConstructor
        @Data
        public static class OffSetBean {
            private int x;
            private int y;
            private int z;
        }

        @NoArgsConstructor
        @Data
        public static class KaiLiaoSizeBean {
            private int width;
            private int height;
        }
    }
}
