package com.zhyc.module.base.service;

import java.util.List;

import com.zhyc.module.base.domain.BasSheep;

/**
 * 羊只基本信息Service接口
 * 
 * @author ruoyi
 * @date 2025-07-15
 */
public interface IBasSheepService 
{
    /**
     * 查询羊只基本信息
     * 
     * @param id 羊只基本信息主键
     * @return 羊只基本信息
     */
    public BasSheep selectBasSheepById(Long id);

    /**
     * 查询羊只基本信息列表
     * 
     * @param basSheep 羊只基本信息
     * @return 羊只基本信息集合
     */
    public List<BasSheep> selectBasSheepList(BasSheep basSheep);

    /**
     * 羊只查询耳号信息
     *
     * @param earNumbers 耳号
     * @return 结果
     */
    public List<String> searchEarNumbers(String earNumbers);
    /**
     * 新增羊只基本信息
     * 
     * @param basSheep 羊只基本信息
     * @return 结果
     */
    public int insertBasSheep(BasSheep basSheep);

    /**
     * 修改羊只基本信息
     * 
     * @param basSheep 羊只基本信息
     * @return 结果
     */
    public int updateBasSheep(BasSheep basSheep);

    /**
     * 批量删除羊只基本信息
     * 
     * @param ids 需要删除的羊只基本信息主键集合
     * @return 结果
     */
    public int deleteBasSheepByIds(Long[] ids);

    /**
     * 删除羊只基本信息信息
     * 
     * @param id 羊只基本信息主键
     * @return 结果
     */
    public int deleteBasSheepById(Long id);

    /**
     * 根据羊只耳号获取羊只
     */
    BasSheep selectBasSheepByManageTags(String trim);
    /**
     * 根据管理耳号列表批量查询羊只
     */
    List<BasSheep> selectBasSheepByManageTagsList(List<String> manageTagsList);



    /**
     * 根据牧场ID获取羊只列表
     */
    List<BasSheep> getSheepByRanchId(Long ranchId);

    List<BasSheep> selectBasSheepListByIds(List<Long> ids);

    //校验新管理/电子耳号
    boolean existsByTag(String tag, Integer earType);
}
