package com.hdkj.lt.si.dao;

import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.hdkj.lt.core.bizms.modle.dto.StateEstimation;
import com.hdkj.lt.modle.dto.svg.AppendSwitchDTO;
import com.hdkj.lt.modle.dto.svg.LineDeviceDTO;
import com.hdkj.lt.modle.dto.svg.StationDeviceDTO;
import com.hdkj.lt.modle.po.DistLineSwitchStatusPO;
import com.hdkj.lt.modle.po.FhzgDistMappingFilePO;
import com.hdkj.lt.modle.vo.svg.FeederBaseVO;
import com.hdkj.lt.si.modle.TransferSceneVO;
import org.apache.ibatis.annotations.Mapper;

import java.util.List;

/**
 * @Description
 * @Author wcx
 * @Date 2025/5/15 20:09
 * @Version 1.0
 */
@Mapper
public interface DistMappingFileMapper extends BaseMapper<FhzgDistMappingFilePO> {

    List<FeederBaseVO> getDeviceInfoById(String feederId);

    List<AppendSwitchDTO> getSwitchInfoById(Long objId, String objType);

    void deletePlanDistMappingFile(Long objId, String fileType);

    void savePlanDistMappingFile(FhzgDistMappingFilePO distFile, Long objId);

    void deleteFaultDistMappingFile(Long objId, String fileType);

    void saveFaultDistMappingFile(FhzgDistMappingFilePO distFile, Long objId);

    void updatePlanSchemeFileIdById(Long schemeId, String fileId);

    void updateFaultSchemeFileIdById(Long schemeId, String fileId);

    void updateOperationAbnormalityFileIdById(Long oaId, String fileId);

    void updateOperationAbnormalitySchemeFileIdById(Long schemeId, String fileId);

    void updateLimitSchemeFileFileIdById(Long schemeId, String fileId);

    void updateLimitFileFileIdById(Long schemeId, String fileId);

    List<FeederBaseVO> getDeviceInfoByObjId(Long objId, String objType);

    List<LineDeviceDTO> getLineSwitchInfo(Long objId);

    void deleteDistLineSwitchStatus(Long objId);

    void insertDistLineSwitchStatus(List<DistLineSwitchStatusPO> lineSwitchList);

    void deleteDistLineDynamicSvgDirectCurrent(String objId);

    void saveDistLineDynamicSvgDirectCurrent(String clJsonStr, String kgJsonStr, String objId);

    List<String> getLineInfo(String cityShort);

    List<TransferSceneVO> getNonLineSceneInfo(String cityShort);

    List<TransferSceneVO> getLineSvgResetInfo();

    void updateLineSvgReset(String feeder, Long objId, String objType);

    List<LineDeviceDTO> getTieSwitchInfoByFeeder(List<String> feederIds);

    List<StationDeviceDTO> getFeederAndSwitchInfoByStation(List<String> stationIds);

    List<LineDeviceDTO> getLineSwitchSectionDetails(String startKgId, String endKgId, List<String> kgPsrTypes);

    List<StateEstimation.StateEstimationSwitchResult> getAutoSwitchInfo(List<String> lineIds);



}
