package com.xzzn.ems.domain.vo;

import com.fasterxml.jackson.annotation.JsonFormat;
import com.xzzn.common.annotation.Excel;

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

/**
 * 单个PCS详细数据
 *
 * @author xzzn
 * @date 2025-06-24
 */
public class PcsDetailInfoVo {

    /** 通讯状态 */
    private String communicationStatus;

    /** 数据更新时间 */
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private Date dataUpdateTime;

    /** 工作状态 */
    private String workStatus;

    /** 并网状态 */
    private String gridStatus;

    /** 设备状态 */
    private String deviceStatus;

    /** 控制模式 */
    private String controlMode;

    /** 总交流有功电率 (kW) */
    private BigDecimal totalActivePower;

    /** 当天交流充电量 (kWh) */
    private BigDecimal dailyAcChargeEnergy;

    /** A相电压 (V) */
    private BigDecimal aPhaseVoltage;

    /** A相电流 (A) */
    private BigDecimal aPhaseCurrent;

    /** 总交流无功电率 (kVar) */
    private BigDecimal totalReactivePower;

    /** 当天交流放电量 (kWh) */
    @Excel(name = " (kWh)")
    private BigDecimal dailyAcDischargeEnergy;

    /** B相电压 (V) */
    private BigDecimal bPhaseVoltage;

    /** B相电流 (A) */
    private BigDecimal bPhaseCurrent;

    /** 总交流视在功率 (kVA) */
    private BigDecimal totalApparentPower;

    /** PCS模块温度 (℃) */
    private BigDecimal pcsModuleTemperature;

    /** C相电压 (V) */
    private BigDecimal cPhaseVoltage;

    /** C相电流 (A) */
    private BigDecimal cPhaseCurrent;

    /** 总交流功率因数 */
    private BigDecimal totalPowerFactor;

    /** PCS环境温度 (℃) */
    private BigDecimal pcsEnvironmentTemperature;

    /** 交流频率 (Hz) */
    private BigDecimal acFrequency;

    /** 站点id */
    private String siteId;

    /** 设备唯一标识符 */
    private String deviceId;

    /** 设备名称 */
    private String deviceName;

    /** 报警个数 */
    private int alarmNum;

    private List<PcsBranchInfo> pcsBranchInfoList;

    public String getDeviceId() {
        return deviceId;
    }

    public void setDeviceId(String deviceId) {
        this.deviceId = deviceId;
    }

    public String getSiteId() {
        return siteId;
    }

    public void setSiteId(String siteId) {
        this.siteId = siteId;
    }

    public BigDecimal getAcFrequency() {
        return acFrequency;
    }

    public void setAcFrequency(BigDecimal acFrequency) {
        this.acFrequency = acFrequency;
    }

    public BigDecimal getPcsEnvironmentTemperature() {
        return pcsEnvironmentTemperature;
    }

    public void setPcsEnvironmentTemperature(BigDecimal pcsEnvironmentTemperature) {
        this.pcsEnvironmentTemperature = pcsEnvironmentTemperature;
    }

    public BigDecimal getTotalPowerFactor() {
        return totalPowerFactor;
    }

    public void setTotalPowerFactor(BigDecimal totalPowerFactor) {
        this.totalPowerFactor = totalPowerFactor;
    }

    public BigDecimal getcPhaseCurrent() {
        return cPhaseCurrent;
    }

    public void setcPhaseCurrent(BigDecimal cPhaseCurrent) {
        this.cPhaseCurrent = cPhaseCurrent;
    }

    public BigDecimal getcPhaseVoltage() {
        return cPhaseVoltage;
    }

    public void setcPhaseVoltage(BigDecimal cPhaseVoltage) {
        this.cPhaseVoltage = cPhaseVoltage;
    }

    public BigDecimal getPcsModuleTemperature() {
        return pcsModuleTemperature;
    }

    public void setPcsModuleTemperature(BigDecimal pcsModuleTemperature) {
        this.pcsModuleTemperature = pcsModuleTemperature;
    }

    public BigDecimal getTotalApparentPower() {
        return totalApparentPower;
    }

    public void setTotalApparentPower(BigDecimal totalApparentPower) {
        this.totalApparentPower = totalApparentPower;
    }

    public BigDecimal getbPhaseCurrent() {
        return bPhaseCurrent;
    }

    public void setbPhaseCurrent(BigDecimal bPhaseCurrent) {
        this.bPhaseCurrent = bPhaseCurrent;
    }

    public BigDecimal getbPhaseVoltage() {
        return bPhaseVoltage;
    }

    public void setbPhaseVoltage(BigDecimal bPhaseVoltage) {
        this.bPhaseVoltage = bPhaseVoltage;
    }

    public BigDecimal getDailyAcDischargeEnergy() {
        return dailyAcDischargeEnergy;
    }

    public void setDailyAcDischargeEnergy(BigDecimal dailyAcDischargeEnergy) {
        this.dailyAcDischargeEnergy = dailyAcDischargeEnergy;
    }

    public BigDecimal getTotalReactivePower() {
        return totalReactivePower;
    }

    public void setTotalReactivePower(BigDecimal totalReactivePower) {
        this.totalReactivePower = totalReactivePower;
    }

    public BigDecimal getaPhaseCurrent() {
        return aPhaseCurrent;
    }

    public void setaPhaseCurrent(BigDecimal aPhaseCurrent) {
        this.aPhaseCurrent = aPhaseCurrent;
    }

    public BigDecimal getaPhaseVoltage() {
        return aPhaseVoltage;
    }

    public void setaPhaseVoltage(BigDecimal aPhaseVoltage) {
        this.aPhaseVoltage = aPhaseVoltage;
    }

    public BigDecimal getDailyAcChargeEnergy() {
        return dailyAcChargeEnergy;
    }

    public void setDailyAcChargeEnergy(BigDecimal dailyAcChargeEnergy) {
        this.dailyAcChargeEnergy = dailyAcChargeEnergy;
    }

    public BigDecimal getTotalActivePower() {
        return totalActivePower;
    }

    public void setTotalActivePower(BigDecimal totalActivePower) {
        this.totalActivePower = totalActivePower;
    }

    public String getControlMode() {
        return controlMode;
    }

    public void setControlMode(String controlMode) {
        this.controlMode = controlMode;
    }

    public String getDeviceStatus() {
        return deviceStatus;
    }

    public void setDeviceStatus(String deviceStatus) {
        this.deviceStatus = deviceStatus;
    }

    public String getGridStatus() {
        return gridStatus;
    }

    public void setGridStatus(String gridStatus) {
        this.gridStatus = gridStatus;
    }

    public String getWorkStatus() {
        return workStatus;
    }

    public void setWorkStatus(String workStatus) {
        this.workStatus = workStatus;
    }

    public Date getDataUpdateTime() {
        return dataUpdateTime;
    }

    public void setDataUpdateTime(Date dataUpdateTime) {
        this.dataUpdateTime = dataUpdateTime;
    }

    public List<PcsBranchInfo> getPcsBranchInfoList() {
        return pcsBranchInfoList;
    }

    public String getCommunicationStatus() {
        return communicationStatus;
    }

    public void setCommunicationStatus(String communicationStatus) {
        this.communicationStatus = communicationStatus;
    }

    public void setPcsBranchInfoList(List<PcsBranchInfo> pcsBranchInfoList) {
        this.pcsBranchInfoList = pcsBranchInfoList;
    }

    public String getDeviceName() {
        return deviceName;
    }

    public void setDeviceName(String deviceName) {
        this.deviceName = deviceName;
    }

    public int getAlarmNum() {
        return alarmNum;
    }

    public void setAlarmNum(int alarmNum) {
        this.alarmNum = alarmNum;
    }
}
