package com.energy.manage.service.service.anemometertower;


import com.energy.manage.common.base.Page;
import com.energy.manage.common.po.anemometertower.AnemometerTowerPO;
import com.energy.manage.service.domain.dto.anemometertower.*;
import com.energy.manage.service.domain.vo.anemometertower.*;

import java.util.List;

/**
 * 测风塔数据接口
 */
public interface AnemometerTowerService {


    /**
     * 创建测风塔数据
     * @param anemometerTowerCreateDto
     * @return
     */
    boolean createAnemometerTower(AnemometerTowerCreateDto anemometerTowerCreateDto);

    /**
     * 删除测风塔数据
     * @param anemometerTowerDelDto
     * @return
     */
    boolean delAnemometerTower(AnemometerTowerDelDto anemometerTowerDelDto);

    /**
     * 修改测风塔信息
     * @param anemometerTowerUpdateDto
     * @return
     */
    boolean updateAnemometerTower(AnemometerTowerUpdateDto anemometerTowerUpdateDto);


    /**
     * 修改测风塔状态
     * @param anemometerTowerStateDto
     * @return
     */
    boolean updateAnemometerTowerState(AnemometerTowerStateDto anemometerTowerStateDto);


    /**
     * 查询测风塔分页信息
     * @param anemometerTowerPageDto
     * @return
     */
    Page<AnemometerTowerPageVo> getAnemometerTowerPage(AnemometerTowerPageDto anemometerTowerPageDto);


    /**
     * 批量绑定测风塔层高数据
     * @param anemometerTowerHeightDto
     * @return
     */
    boolean bathAnemometerTowerHeight(AnemometerTowerHeightDto anemometerTowerHeightDto);


    /**
     * 查询测风塔数据详情对象
     * @param anemometerTowerDto
     * @return
     */
    AnemometerTowerVo getAnemometerTowerVo(AnemometerTowerDto anemometerTowerDto);


    /**
     * 查询测风塔下层高数据
     * @param anemometerTowerDto
     * @return
     */
    AnemometerTowerHeightVo getAnemometerTowerHeight(AnemometerTowerDto anemometerTowerDto);


    /**
     * 批量保存测风塔风场和测风塔关系
     * @param anemometerTowerRelationDtos
     * @return
     */
    boolean bathAnemometerTowerRelation(List<AnemometerTowerRelationDto> anemometerTowerRelationDtos);


    /**
     * 风场编号查询测风塔信息
     * @param fieldCode
     * @return
     */
    List<AnemometerTowerByFieldVo> getAnemometerTowerByField(String fieldCode);


    /**
     * 通过风场编号删除测风塔
     * @param fieldCode
     * @return
     */
    boolean deltAnemometerTowerRelationByField(String fieldCode);

    /**
     * 通过测风塔名称查询对象
     * @param anemometerTowerName
     * @return
     */
    AnemometerTowerPO getAnemometerTowerPOByanemometerTowerName(String anemometerTowerName);


    /**
     * 查询测风塔集合
     * @return
     */
    List<AnemometerTowerNameVo> getAnemometerTowerNameList();



}
