//package com.zhyc.module.base.service;
//
//import java.util.List;
//import java.util.Map;
//
//import com.zhyc.module.base.domain.BreedRamFile;
//
///**
// * 种公羊档案Service接口
// *
// * @author zhyc
// * @date 2025-07-29
// */
//public interface IBreedRamFileService
//{
//    /**
//     * 查询种公羊档案
//     *
//     * @param id 种公羊档案主键
//     * @return 种公羊档案
//     */
//    public BreedRamFile selectBreedRamFileById(Long id);
//
//    /**
//     * 查询种公羊档案列表
//     *
//     * @param breedRamFile 种公羊档案
//     * @return 种公羊档案集合
//     */
//    public List<BreedRamFile> selectBreedRamFileList(BreedRamFile breedRamFile);
//
//    /**
//     * 新增种公羊档案
//     *
//     * @param breedRamFile 种公羊档案
//     * @return 结果
//     */
//    public int insertBreedRamFile(BreedRamFile breedRamFile);
//
//    /**
//     * 修改种公羊档案
//     *
//     * @param breedRamFile 种公羊档案
//     * @return 结果
//     */
//    public int updateBreedRamFile(BreedRamFile breedRamFile);
//
//    /**
//     * 批量删除种公羊档案
//     *
//     * @param ids 需要删除的种公羊档案主键集合
//     * @return 结果
//     */
//    public int deleteBreedRamFileByIds(Long[] ids);
//
//    /**
//     * 删除种公羊档案信息
//     *
//     * @param id 种公羊档案主键
//     * @return 结果
//     */
//    public int deleteBreedRamFileById(Long id);
//
//    /**
//     * 从sheep_file同步公羊数据到公羊档案
//     *
//     * @return 同步的记录数
//     */
//    public int syncFromSheepFile();
//
//    // ====================== Service接口中需要添加的方法 ======================
//
//    /**
//     * 根据普通耳号查询种公羊档案
//     *
//     * @param earNumber 普通耳号
//     * @return 种公羊档案
//     */
//    public BreedRamFile selectBreedRamFileByEarNumber(String earNumber);
//
//    /**
//     * 根据牧场ID查询种公羊档案列表
//     *
//     * @param ranchId 牧场ID
//     * @return 种公羊档案集合
//     */
//    public List<BreedRamFile> selectBreedRamFileListByRanchId(Long ranchId);
//
//    /**
//     * 根据羊舍ID查询种公羊档案列表
//     *
//     * @param sheepfoldId 羊舍ID
//     * @return 种公羊档案集合
//     */
//    public List<BreedRamFile> selectBreedRamFileListBySheepfoldId(Long sheepfoldId);
//
//    /**
//     * 查询核心羊群种公羊档案列表
//     *
//     * @param breedRamFile 种公羊档案
//     * @return 种公羊档案集合
//     */
//    public List<BreedRamFile> selectCoreFlockBreedRamFileList(BreedRamFile breedRamFile);
//
//    /**
//     * 查询种用种公羊档案列表
//     *
//     * @param breedRamFile 种公羊档案
//     * @return 种公羊档案集合
//     */
//    public List<BreedRamFile> selectBreedingUseBreedRamFileList(BreedRamFile breedRamFile);
//
//    /**
//     * 批量同步指定公羊的数据
//     *
//     * @param earNumbers 耳号列表
//     * @return 同步的记录数
//     */
//    public int syncSpecificRams(List<String> earNumbers);
//
//    /**
//     * 获取种公羊统计信息
//     *
//     * @return 统计信息
//     */
//    public Map<String, Object> getBreedRamStatistics();
//
//    // ============================================
//// 2. 在 IBreedRamFileService.java 接口中添加方法
//// ============================================
//
//    /**
//     * 根据普通耳号查询种公羊档案
//     *
//     * @param ordinaryEarNumber 普通耳号
//     * @return 种公羊档案
//     */
//    BreedRamFile selectBreedRamFileByOrdinaryEarNumber(String ordinaryEarNumber);
//}
package com.zhyc.module.base.service;

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

import com.zhyc.module.base.domain.BreedRamFile;
import com.zhyc.module.base.domain.ViewBreedRamFile;

/**
 * 种公羊档案Service接口
 *
 * @author zhyc
 * @date 2025-07-29
 */
public interface IBreedRamFileService
{
    // ========== 视图查询方法 ==========

    /**
     * 查询种公羊档案视图
     *
     * @param id 种公羊档案主键
     * @return 种公羊档案视图
     */
    public ViewBreedRamFile selectViewBreedRamFileById(Long id);

    /**
     * 查询种公羊档案视图列表
     *
     * @param viewBreedRamFile 种公羊档案视图
     * @return 种公羊档案视图集合
     */
    public List<ViewBreedRamFile> selectViewBreedRamFileList(ViewBreedRamFile viewBreedRamFile);

    /**
     * 根据普通耳号查询种公羊档案视图
     *
     * @param earNumber 普通耳号
     * @return 种公羊档案视图
     */
    public ViewBreedRamFile selectViewBreedRamFileByEarNumber(String earNumber);

    /**
     * 根据牧场ID查询种公羊档案视图列表
     *
     * @param ranchId 牧场ID
     * @return 种公羊档案视图集合
     */
    public List<ViewBreedRamFile> selectViewBreedRamFileListByRanchId(Long ranchId);

    /**
     * 根据羊舍ID查询种公羊档案视图列表
     *
     * @param sheepfoldId 羊舍ID
     * @return 种公羊档案视图集合
     */
    public List<ViewBreedRamFile> selectViewBreedRamFileListBySheepfoldId(Long sheepfoldId);

    /**
     * 查询核心羊群种公羊档案视图列表
     *
     * @param viewBreedRamFile 种公羊档案视图
     * @return 种公羊档案视图集合
     */
    public List<ViewBreedRamFile> selectCoreFlockViewBreedRamFileList(ViewBreedRamFile viewBreedRamFile);

    /**
     * 查询种用种公羊档案视图列表
     *
     * @param viewBreedRamFile 种公羊档案视图
     * @return 种公羊档案视图集合
     */
    public List<ViewBreedRamFile> selectBreedingUseViewBreedRamFileList(ViewBreedRamFile viewBreedRamFile);

    // ========== 表操作方法 ==========

    /**
     * 查询种公羊档案(表)
     *
     * @param id 种公羊档案主键
     * @return 种公羊档案
     */
    public BreedRamFile selectBreedRamFileById(Long id);

    /**
     * 查询种公羊档案列表(表)
     *
     * @param breedRamFile 种公羊档案
     * @return 种公羊档案集合
     */
    public List<BreedRamFile> selectBreedRamFileList(BreedRamFile breedRamFile);

    /**
     * 新增种公羊档案
     *
     * @param breedRamFile 种公羊档案
     * @return 结果
     */
    public int insertBreedRamFile(BreedRamFile breedRamFile);

    /**
     * 修改种公羊档案
     *
     * @param breedRamFile 种公羊档案
     * @return 结果
     */
    public int updateBreedRamFile(BreedRamFile breedRamFile);

    /**
     * 批量删除种公羊档案
     *
     * @param ids 需要删除的种公羊档案主键集合
     * @return 结果
     */
    public int deleteBreedRamFileByIds(Long[] ids);

    /**
     * 删除种公羊档案信息
     *
     * @param id 种公羊档案主键
     * @return 结果
     */
    public int deleteBreedRamFileById(Long id);

    /**
     * 从sheep_file同步公羊数据到公羊档案
     *
     * @return 同步的记录数
     */
    public int syncFromSheepFile();

    /**
     * 根据普通耳号查询种公羊档案(表)
     *
     * @param ordinaryEarNumber 普通耳号
     * @return 种公羊档案
     */
    public BreedRamFile selectBreedRamFileByOrdinaryEarNumber(String ordinaryEarNumber);

    /**
     * 根据牧场ID查询种公羊档案列表(表)
     *
     * @param ranchId 牧场ID
     * @return 种公羊档案集合
     */
    public List<BreedRamFile> selectBreedRamFileListByRanchId(Long ranchId);

    /**
     * 根据羊舍ID查询种公羊档案列表(表)
     *
     * @param sheepfoldId 羊舍ID
     * @return 种公羊档案集合
     */
    public List<BreedRamFile> selectBreedRamFileListBySheepfoldId(Long sheepfoldId);

    /**
     * 查询核心羊群种公羊档案列表(表)
     *
     * @param breedRamFile 种公羊档案
     * @return 种公羊档案集合
     */
    public List<BreedRamFile> selectCoreFlockBreedRamFileList(BreedRamFile breedRamFile);

    /**
     * 查询种用种公羊档案列表(表)
     *
     * @param breedRamFile 种公羊档案
     * @return 种公羊档案集合
     */
    public List<BreedRamFile> selectBreedingUseBreedRamFileList(BreedRamFile breedRamFile);

    /**
     * 批量同步指定公羊的数据
     *
     * @param earNumbers 耳号列表
     * @return 同步的记录数
     */
    public int syncSpecificRams(List<String> earNumbers);

    /**
     * 获取种公羊统计信息
     *
     * @return 统计信息
     */
    public Map<String, Object> getBreedRamStatistics();
}