package com.ruoyi.web.v1.service;

import com.ruoyi.web.v1.DTO.EntranceReportDTO;
import com.ruoyi.web.v1.DTO.PurchaserProduceTotalDTO;
import com.ruoyi.web.v1.DTO.SlaughterReportDTO;
import com.ruoyi.web.v1.model.request.*;
import com.ruoyi.web.v1.model.response.*;

import javax.servlet.http.HttpServletResponse;
import java.util.List;
import java.util.Map;

/**
 * 数据报表Service接口
 *
 * @author coede
 * @date 2025-03-28
 */
public interface IDataReportService {
    /**
     * 入场统计报表
     * @return 结果
     */
    List<EntranceReportDTO> selectEntranceReport(ReqEntranceReport reqEntranceReport);

    /**
     * 生产统计报表
     * @return 结果
     */
    List<SlaughterReportDTO> selectSlaughterReport(ReqSlaughterReport reqSlaughterReport);

    /**
     * 称重统计报表
     * @return 结果
     */
    List<PurchaserProduceTotalDTO> selectPurchaserProduceTotal(ReqGetPorkSideProduceRecord req);

    /**
     * 生猪屠宰情况日汇总表  2025-10-09
     *
     * @param req 查询条件
     * @return 集合
     */
    List<GetDailySlaughterReportResp> selectDailySlaughterReport(GetDailySlaughterReportReq req);

    /**
     * 生猪入场查验情况表  2025-10-15
     *
     * @param req 查询条件
     * @return 集合
     */
    public List<GetDailyEntranceReportResp> selectDailyEntranceReport(GetDailyEntranceReportReq req);

    /**
     * 违禁药物检测及屠宰检验情况表  2025-10-10
     *
     * @param req 查询条件
     * @return 集合
     */
    List<GetDailyDrugCheckAndSlaughterReportResp> selectDailyDrugCheckAndSlaughterReport(GetDailyDrugCheckAndSlaughterReportReq req);

    /**
     * 生猪屠宰环节无害化处理表  2025-10-11
     *
     * @param req 查询条件
     * @return 集合
     */
    List<GetDailyHarmlessReportResp> selectDailyHarmlessReport(GetDailyHarmlessReportReq req);

    /**
     * 生猪产品出场情况表  2025-10-12
     *
     * @param req 查询条件
     * @return 集合
     */
     List<GetDailyOutputReportResp> selectDailyOutputReport(GetDailyOutputReportReq req);

    List<JsStockInfo> selectStockReport(ExportReportReq exportConfig);

    List<GetZhuanYunReportResp> getZhuanYunReport(GetDailyOutputReportReq req);
    List<GetZhuanYunReportResp> selectzhuanYunReport(ExportReportReq exportConfig);

    List<GetZhaoHuiResp> getZhaoHuiReport(GetDailyOutputReportReq req);

    List<GetZhaoHuiResp> selectzhaoHuiReport(ExportReportReq exportConfig);

    List<GetZaiQianResp> getZaiQianReport(GetDailyOutputReportReq req);


    List<GetZaiQianResp> selectzaiQianReport(ExportReportReq exportConfig);

    List<GetYangPinResp> getYangPinReport(GetDailyOutputReportReq req);

    List<GetYangPinResp> selectyangPinReport(ExportReportReq exportConfig);

    List<JingYangPinResp> getDaiZaiReport(GetDailyOutputReportReq req);

    List<JingYangPinResp> selectdaiZaiReport(ExportReportReq exportConfig);

    List<RunChagnResp> getRuChangReport(GetDailyOutputReportReq req);

    List<RunChagnResp> selectruChangReport(ExportReportReq exportConfig);

    List<ChuChagnResp> getChuChangReport(GetDailyOutputReportReq req);

    List<ChuChagnResp> selectchuChangReport(ExportReportReq exportConfig);


    List<FuJianResp> getFuJianReport(GetDailyOutputReportReq req);

    List<FuJianResp> selectFuJianReport(ExportReportReq exportConfig);

    List<ZaiHouResp> getZaiHouReport(GetDailyOutputReportReq req);

    List<ZaiHouResp> selectzaiHouReport(ExportReportReq exportConfig);


    List<XunChaRespDto> selectXunChaReport(ExportReportReq exportConfig, HttpServletResponse response);

    List<XunChaDel> getXunChaReport(GetDailyOutputReportReq req);

    List<GysResp> gysReport(GetDailyOutputReportReq req);

    List<TuZaiShengChanResp> tuzaiShengChanReport(GetDailyOutputReportReq req);

    List<TuZaiShengChanResp> selecttuzaiShengChanReport(ExportReportReq exportConfig);
}
