package com.huatek.busi.service.impl.dataoutput.impls;

import java.time.LocalDate;
import java.util.List;
import java.util.Map;

import org.springframework.stereotype.Component;

import com.google.common.collect.Lists;
import com.huatek.busi.common.CacMonitorTypeCode;
import com.huatek.busi.common.SiteConstants.SiteTreeEnum;
import com.huatek.busi.service.impl.dataoutput.helper.OptExecutor;
import com.huatek.busi.vo.dataoutput.OutputEquipmentVo;

/**
 * 局放输出
 * 
 * @author anker_cheng
 * @date 2019/10/14
 */
@Component
@OptExecutor(mainEquipmentType = "111", subEquipmentType = "021")
@OptExecutor(mainEquipmentType = "211", subEquipmentType = "011")
@OptExecutor(mainEquipmentType = "511", subEquipmentType = "011")
public class TransformerPdExecutor extends AbstractDataOutputExecutor {

    @Override
    protected Map<String, Object> getParams(OutputEquipmentVo vo, LocalDate day) {
        Map<String, Object> params = super.getParams(vo, day);
        if (SiteTreeEnum.BYQ_EQM.getValue().equals(vo.getMainEquipmentType())) {
            params.put("cacMonitorTypeCode", CacMonitorTypeCode.TRANSFORMER_PD.getCode());
        } else if (SiteTreeEnum.GIS_HL_EQM.getValue().equals(vo.getMainEquipmentType())) {
            params.put("cacMonitorTypeCode", CacMonitorTypeCode.GIS_PD.getCode());
        } else if (SiteTreeEnum.OTHER_EQM.getValue().equals(vo.getMainEquipmentType())) {
            params.put("cacMonitorTypeCode", CacMonitorTypeCode.ELE_PD.getCode());
        }
        return params;
    }

    @Override
    protected List<String> getKeys() {
        return Lists.newArrayList("sensorId", "timeStamp", "phase", "dischargeCapacity", "dischargePosition",
            "pulseCount","dschType","paDschAlm");
    }
}
