package com.energy.manage.service.domain.vo.units;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;

import java.util.List;

/**
 * 显示部件相关信息
 */
@Getter
@Setter
@ApiModel("显示部件相关信息")
public class UnitVo {

    /**
     * 机型编号
     */
    @ApiModelProperty("机型编号")
    private String millTypeCode;

    @ApiModelProperty("主轴相关参数")
    UnitBearingsVo unitBearingsVo;


    @ApiModelProperty("齿轮箱相关参数")
    UnitGearVo unitGearVo;


    @ApiModelProperty("发电机相关参数")
    UnitDynamoVo unitDynamoVo;


    /**
     * 齿轮箱相关参数
     */
    @Setter
    @Getter
    @ApiModel("齿轮箱相关")
    public static class UnitGearVo{

        /**
         * 主键
         */
        @ApiModelProperty("主键")
        private Integer id;

        /**
         * 部件编号
         */
        @ApiModelProperty("部件编号")
        private String code;

        /**
         * 润滑油品牌
         */
        @ApiModelProperty("润滑油品牌")
        private String lubricantBrand;
        /**
         * 润滑油型号
         */
        @ApiModelProperty("润滑油型号")
        private String lubricantModel;


        /**
         * 齿轮箱轴承集合
         */
        @ApiModelProperty("齿轮箱轴承集合")
        List<UnitGearboxBearingsVo> unitGearboxBearingsList;

        /**
         * 齿轮箱结构集合
         */
        @ApiModelProperty("齿轮箱结构集合")
        List<UnitGearboxStructureVo> unitGearboxStructureList;


    }

    /**
     * 齿轮箱结构表
     */
    @Setter
    @Getter
    @ApiModel("齿轮箱结构表")
    public static class UnitGearboxStructureVo{

        @ApiModelProperty("主键")
        private Integer id;

        /**
         * 齿轮箱总表编号
         */
        @ApiModelProperty("齿轮箱总表编号")
        private String gearboxCode;
        /**
         * 齿轮箱结构类型;1.行星轮2.平行轮
         */
        @ApiModelProperty("齿轮箱结构类型;1.行星轮2.平行轮")
        private Integer gearboxStructure;
        /**
         * 齿轮箱结构等级;sort_num1,2......
         */
        @ApiModelProperty("齿轮箱结构等级;sort_num1,2......")
        private Integer planetaryGearGrade;
        /**
         * 大齿轮齿数
         */
        @ApiModelProperty("大齿轮齿数")
        private String largeGearTeethCount;
        /**
         * 小齿轮齿数
         */
        @ApiModelProperty("小齿轮齿数")
        private String smallGearTeethCount;
        /**
         * 轴承品牌
         */
        @ApiModelProperty("轴承品牌")
        private String bearingBrand;
        /**
         * 轴承型号
         */
        @ApiModelProperty("轴承型号")
        private String bearingModel;
        /**
         * 齿圈齿数
         */
        @ApiModelProperty("齿圈齿数")
        private String gearRingTeethCount;
        /**
         * 太阳轮齿数
         */
        @ApiModelProperty("太阳轮齿数")
        private String sunWheelTeethCount;
        /**
         * 行星轮个数
         */
        @ApiModelProperty("行星轮个数")
        private String planetWheelCount;
        /**
         * 行星轮齿数
         */
        @ApiModelProperty("行星轮齿数")
        private String planetWheelTeethCount;
        /**
         * 太阳轮轴承品牌
         */
        @ApiModelProperty("太阳轮轴承品牌")
        private String sunWheelBearingBrand;
        /**
         * 太阳轮轴承型号
         */
        @ApiModelProperty("太阳轮轴承型号")
        private String sunWheelBearingModel;


    }


    /**
     * 齿轮箱轴承
     */
    @Setter
    @Getter
    @ApiModel
    public static class UnitGearboxBearingsVo{

        @ApiModelProperty("主键")
        private Integer id;

        /**
         * 齿轮箱编号
         */
        @ApiModelProperty("齿轮箱编号")
        private String gearboxCode;
        /**
         * 齿轮箱轴承类型1.低速轴，2.低速中间轴3.高速轴
         */
        @ApiModelProperty("齿轮箱轴承类型1.低速轴，2.低速中间轴3.高速轴")
        private Integer parallelWheelGrade;
        /**
         * 齿轮箱轴承编号
         */
        @ApiModelProperty("齿轮箱轴承编号")
        private String gearboxBearingNumber;
        /**
         * 齿轮箱轴承级别1.2.3
         */
        @ApiModelProperty("齿轮箱轴承级别1.2.3")
        private String gearboxBearingLevel;
        /**
         * 轴承品牌
         */
        @ApiModelProperty("轴承品牌")
        private String bearingBrand;
        /**
         * 轴承型号
         */
        @ApiModelProperty("轴承型号")
        private String bearingModel;
        /**
         * 齿圈齿数
         */
        @ApiModelProperty("齿圈齿数")
        private String gearRingTeethCount;
        /**
         * 轴承-RS品牌
         */
        @ApiModelProperty("轴承-RS品牌")
        private String bearingRsBrand;
        /**
         * 轴承-RS型号
         */
        @ApiModelProperty("轴承-RS型号")
        private String bearingRsModel;
        /**
         * 轴承-GS品牌
         */
        @ApiModelProperty("轴承-GS品牌")
        private String bearingGsBrand;
        /**
         * 轴承-GS型号
         */
        @ApiModelProperty("轴承-GS型号")
        private String bearingGsModel;


    }



    /**
     * 主轴相关参数
     */
    @Setter
    @Getter
    @ApiModel
    public static class UnitBearingsVo {

        /**
         * 主键
         */
        @ApiModelProperty("主键")
        private Integer id;

        /**
         * 主轴部件编号
         */
        @ApiModelProperty("主轴部件编号")
        private String code;

        /**
         * 润滑油品牌
         */
        @ApiModelProperty("润滑油品牌")
        private String lubricantBrand;
        /**
         * 润滑油型号
         */
        @ApiModelProperty("润滑油型号")
        private String lubricantModel;
        /**
         * 前轴承品牌
         */
        @ApiModelProperty("前轴承品牌")
        private String frontBearingBrand;
        /**
         * 前轴承型号
         */
        @ApiModelProperty("前轴承型号")
        private String frontBearingModel;
        /**
         * 后轴承品牌
         */
        @ApiModelProperty("后轴承品牌")
        private String rearBearingBrand;
        /**
         * 后轴承型号
         */
        @ApiModelProperty("后轴承型号")
        private String rearBearingModel;
        /**
         * 删除状态
         */
        @ApiModelProperty("删除状态")
        private Integer delState;

    }


    /**
     * 发电机相关参数
     */
    @Setter
    @Getter
    @ApiModel
    public static class UnitDynamoVo {

        /**
         * 主键
         */
        @ApiModelProperty("主键")
        private Integer id;

        /**
         * 极对数
         */
        @ApiModelProperty("极对数")
        private Integer polePairs;
        /**
         * 冷却方式
         */
        @ApiModelProperty("冷却方式")
        private Integer coolingMethod;
        /**
         * 润滑油品牌
         */
        @ApiModelProperty("润滑油品牌")
        private String lubricantBrand;
        /**
         * 润滑油型号
         */
        @ApiModelProperty("润滑油型号")
        private String lubricantModel;
        /**
         * 驱动端轴承品牌
         */
        @ApiModelProperty("驱动端轴承品牌")
        private String driveEndBearingBrand;
        /**
         * 驱动端轴承型号
         */
        @ApiModelProperty("驱动端轴承型号")
        private String driveEndBearingModel;
        /**
         * 非驱动端轴承品牌
         */
        @ApiModelProperty("非驱动端轴承品牌")
        private String nonDriveEndBearingBrand;
        /**
         * 非驱动端轴承型号
         */
        @ApiModelProperty("非驱动端轴承型号")
        private String nonDriveEndBearingModel;


    }


}
