package com.hdkj.lt.bf.entity.dto;

import com.fasterxml.jackson.databind.annotation.JsonSerialize;
import com.hdkj.lt.base.serializer.BigDecimalSerializer;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import java.io.Serializable;
import java.math.BigDecimal;

/**
 * @author luorui
 * @date 2025/5/14 16:42
 */
@Data
@NoArgsConstructor
@AllArgsConstructor
public class FhzgPlanTransferSchemeDTO  implements Serializable {

    /**
     * 转供方案ID
     */
    private Long id;

    /**
     * 计划停电ID(fhzg_plan_power_cut.id)
     */
    private Long planId;

    /**
     * 方案名称
     */
    private String schemeName;

    /**
     * 方案评分
     */
    @JsonSerialize(using = BigDecimalSerializer.Keep2DecimalSerializer.class)
    private BigDecimal evaluationScore;

    /**
     * 方案选定状态 1-选定,0-未选定
     */
    private String schemeState;

    /**
     * 开关动作次数(计算推演平台breakerOperationInfo动作开关计数)
     */
    private Integer switchOperationCount;

    /**
     * 区域内的可行性转供数
     */
    @JsonSerialize(using = BigDecimalSerializer.Keep6DecimalSerializer.class)
    private BigDecimal  feasibleTransfer;

    /**
     * 区域内的所有转供数
     */
    @JsonSerialize(using = BigDecimalSerializer.Keep6DecimalSerializer.class)
    private BigDecimal totalTransfer;

    /**
     * 负荷恢复(计算推演平台给定supplyArea信息计算，可行的转供区域负荷/所有的转供区域*100%)
     */
    @JsonSerialize(using = BigDecimalSerializer.Keep2DecimalSerializer.class)
    private BigDecimal loadRecovery;

    /**
     * 损失时户(时·户,计算推演平台给定supplyArea信息计算，∑用户数*检修时长+冷倒损失用户数*冷到预计时间h(1min/20min)
     */
    @JsonSerialize(using = BigDecimalSerializer.Keep2DecimalSerializer.class)
    private BigDecimal lossCustHours;

    /**
     * 损失用户
     */
    private Integer lossUsers;

    /**
     * 方案校验结果(1-通过，0-不通过)
     */
    private String schemeCheck;

    /**
     * 方案类型，1-推荐方案，0-校验失败方案
     */
    private String schemeType;

    /**
     * 方案评分，标签
     */
    private String schemeEvaluationTag;

    /**
     * 计划编码
     */
    private String planNo;

    /**
     * 附件ID
     */
    private Long fileId;

}
