package com.bonus.bracelet.mapper;

import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.entity.bracelet.vo.*;
import org.apache.ibatis.annotations.MapKey;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository;

import java.util.List;
import java.util.Map;

/**
 * EngineeringMapper
 */
@Repository(value = "EngineeringMapper")
public interface EngineeringMapper {

    /**
     * 工程列表
     * @param data
     * @return
     */
    List<EngineeringVo> getEngineeringLists(EngineeringVo data);

    /**
     * 根据工程id获得杆塔详细信息
     * @param vo
     * @return
     */
    public List<GtVo> selectGtById(GtVo vo);

    /**
     * 新增时杆塔编码是否重复
     * @param vo
     * @return
     */
    GtVo isCodeExist(GtVo vo);

    /**
     * 新增杆塔信息
     * @param vo
     * @return
     */
    int addGt(GtVo vo);

    /**
     * 根据杆塔id获得详细信息
     * @param gtId
     * @return
     */
    public GtVo selectGtId(Integer gtId);

    /**
     * 判断杆塔编号是否存在
     *
     * @param vo
     * @return int

     */
    GtVo isExist(GtVo vo);

    /**
     * 修改杆塔信息
     * @param vo
     * @return
     */
    int updateGt(GtVo vo);

     /**
     * 删除杆塔信息
     * @param gtId
     * @return
     */
    int deleteGt(int gtId);

     /**
     * 根据工程id获得详细信息
     * @param proId
     * @return
     */
    public EngineeringVo getEngineeringInfo(Long proId);


    /**
     * 判断工程名称是否存在
     *
     * @param vo
     * @return int

     */
    EngineeringVo isNameExist(EngineeringVo vo);

    /**
     * 修改工程信息
     * @param vo
     * @return
     */
       int updatePro(EngineeringVo vo);

    /**
     * 新增时工程名称是否重复
     * @param vo
     * @return
     */
    EngineeringVo isAddNameExist(EngineeringVo vo);

    /**
     * 新增工程信息
     * @param vo
     * @return
     */
    int addPro(EngineeringVo vo);

    /**
     * 删除工程信息
     * @param proId
     * @return
     */
    int deletePro(Long proId);

    /**
     * 杆塔编号是否存在
     *
     * @param vo
     * @return List<Map < String, String>>
     */
    @MapKey("id")
    List<Map<String, String>> gtCodeIsExist(GtVo vo);

    /**
     * 批量导出工程数据
     * @param ids
     * @return
     */
    public List<EngineeringVo> getEngineeringSomeLists(int[] ids);

    /**
     * 批量导出杆塔数据
     * @param ids
     * @return
     */
    public List<GtVo> getExportGtSomeLists(@Param("ids") int[] ids, @Param("proId") int proId);
}
