package com.ruoyi.project.production.service;

import java.io.IOException;
import java.util.List;

import com.ruoyi.project.production.controller.vo.DailyAnalysisDataVO;
import com.ruoyi.project.production.domain.TDailyProductionReport;
import org.springframework.web.multipart.MultipartFile;

/**
 * 每日生产报告Service接口
 * 
 * @author ruoyi
 * @date 2022-08-23
 */
public interface ITDailyProductionReportService 
{
    /**
     * 查询日期最新的每日生产报告
     *
     * @return 每日生产报告
     */
    public TDailyProductionReport selectTDailyProductionReportByMaxDate();

    /**
     * 查询每日生产报告
     * 
     * @param id 每日生产报告ID
     * @return 每日生产报告
     */
    public TDailyProductionReport selectTDailyProductionReportById(Long id);

    /**
     * 查询每日生产报告列表
     * 
     * @param tDailyProductionReport 每日生产报告
     * @return 每日生产报告集合
     */
    public List<TDailyProductionReport> selectTDailyProductionReportList(TDailyProductionReport tDailyProductionReport);
    public List<TDailyProductionReport> selectTDailyProductionReportListMonthly(TDailyProductionReport tDailyProductionReport);

    /**
     * 新增每日生产报告
     * 
     * @param tDailyProductionReport 每日生产报告
     * @return 结果
     */
    public int insertTDailyProductionReport(TDailyProductionReport tDailyProductionReport);

    /**
     * 修改每日生产报告
     * 
     * @param tDailyProductionReport 每日生产报告
     * @return 结果
     */
    public int updateTDailyProductionReport(TDailyProductionReport tDailyProductionReport);

    /**
     * 批量删除每日生产报告
     * 
     * @param ids 需要删除的每日生产报告ID
     * @return 结果
     */
    public int deleteTDailyProductionReportByIds(Long[] ids);

    /**
     * 删除每日生产报告信息
     * 
     * @param id 每日生产报告ID
     * @return 结果
     */
    public int deleteTDailyProductionReportById(Long id);

    /**
     * 导入每日生产报告数据
     *
     * @param file 用户上传的文件
     * @return 结果
     */
    public String importData(MultipartFile file) throws IOException;

    List<DailyAnalysisDataVO> selectAnalysisData(String fieldName, String startDate, String endDate);
}
