package com.syjy.calculate.entity;

import lombok.Data;
import lombok.EqualsAndHashCode;
import java.io.Serializable;
import java.math.BigDecimal;

/**
 * 计算考核请求参数
 *
 * @author zcl
 * @version 1.0
 * @since 2022/11/18 10:16
 */
@Data
@EqualsAndHashCode(callSuper = false)
public class AssessmentRequest implements Serializable  {

    private static final long serialVersionUID = 1L;

    /**
     * 省调
     */
    private String province;

    /**
     * 场站类型:光/风(E1/E2)
     */
    private String electricType;

    /**
     * 场站编码
     */
    private String stationCode;

    /**
     * 额定容量
     */
    private BigDecimal ratedCapacity;

    /**
     * 发电量
     */
    private BigDecimal powerGeneration;

    /**
     * 中期上报率考
     */
    private BigDecimal midReportRate;

    /**
     * 短期上报率考
     */
    private BigDecimal shortReportRate;

    /**
     * 超短期上报率
     */
    private BigDecimal ultraShortReportRate;

    /**
     * 中期准确率
     */
    private BigDecimal midAccuracyRate;

    /**
     * 短期准确率
     */
    private BigDecimal shortAccuracyRate;

    /**
     * 超短期准确率
     */
    private BigDecimal ultraShortAccuracyRate;

    /**
     * 短期合格率
     */
    private BigDecimal shortPassRate;

    /**
     * 超短期合格率
     */
    private BigDecimal ultraShortPassRate;

    /**
     * 单机合格率考核
     */
    private BigDecimal singleMachinePassRate;

    /**
     * 偏差积分电量(万千瓦时)
     */
    private BigDecimal deviationPower;

    /**
     * 可用发电功率可用率
     */
    private BigDecimal ablePowerAccuracyRate;

    /**
     * 理论发电功率可用率
     */
    private BigDecimal theoryPowerAccuracyRate;

    /**
     * 测风塔可用率
     */
    private BigDecimal anemometerTowerAccuracyRate;

    /**
     * 装机容量可用率
     */
    private BigDecimal installedCapacityAccuracyRate;

    /**
     * 可用容量可用率
     */
    private BigDecimal availableCapacityAccuracyRate;

    /**
     * 构造函数设置值
     * @param province
     * @param electricType
     * @param stationCode
     * @param ratedCapacity
     * @param powerGeneration
     * @param midReportRate
     * @param shortReportRate
     * @param ultraShortReportRate
     * @param midAccuracyRate
     * @param shortAccuracyRate
     * @param ultraShortAccuracyRate
     * @param shortPassRate
     * @param ultraShortPassRate
     * @param singleMachinePassRate
     * @param deviationPower
     * @param ablePowerAccuracyRate
     * @param theoryPowerAccuracyRate
     * @param anemometerTowerAccuracyRate
     * @param installedCapacityAccuracyRate
     * @param availableCapacityAccuracyRate
     *
     */
    public AssessmentRequest(String province, String electricType, String stationCode ,BigDecimal ratedCapacity, BigDecimal powerGeneration, BigDecimal midReportRate, BigDecimal shortReportRate, BigDecimal ultraShortReportRate, BigDecimal midAccuracyRate , BigDecimal shortAccuracyRate ,BigDecimal ultraShortAccuracyRate ,BigDecimal shortPassRate,BigDecimal ultraShortPassRate,BigDecimal singleMachinePassRate,BigDecimal deviationPower,BigDecimal ablePowerAccuracyRate,BigDecimal theoryPowerAccuracyRate ,BigDecimal anemometerTowerAccuracyRate,BigDecimal installedCapacityAccuracyRate,BigDecimal availableCapacityAccuracyRate)
    {
        this.setProvince(province);
        this.setElectricType(electricType);
        this.setStationCode(stationCode);
        this.setRatedCapacity(ratedCapacity);
        this.setPowerGeneration(powerGeneration);
        this.setMidReportRate(midReportRate);
        this.setShortReportRate(shortReportRate);
        this.setUltraShortReportRate(ultraShortReportRate);
        this.setMidAccuracyRate(midAccuracyRate);
        this.setShortAccuracyRate(shortAccuracyRate);
        this.setUltraShortAccuracyRate(ultraShortAccuracyRate);
        this.setShortPassRate(shortPassRate);
        this.setUltraShortPassRate(ultraShortPassRate);
        this.setSingleMachinePassRate(singleMachinePassRate);
        this.setDeviationPower(deviationPower);
        this.setAblePowerAccuracyRate(ablePowerAccuracyRate);
        this.setTheoryPowerAccuracyRate(theoryPowerAccuracyRate);
        this.setAnemometerTowerAccuracyRate(anemometerTowerAccuracyRate);
        this.setInstalledCapacityAccuracyRate(installedCapacityAccuracyRate);
        this.setAvailableCapacityAccuracyRate(availableCapacityAccuracyRate);
    }

    public AssessmentRequest(){}

}
