package com.ruoyi.project.production.service;

import java.util.List;

import com.ruoyi.framework.web.domain.AjaxResult;
import com.ruoyi.project.production.controller.vo.MonthlyAnalysisDataVO;
import com.ruoyi.project.production.controller.vo.MonthlyAnalysisQueryVO;
import com.ruoyi.project.production.controller.vo.MonthlyUpdateVO;
import com.ruoyi.project.production.domain.TMonthlyProductionReport;
import com.ruoyi.project.production.service.impl.vo.MonthlyProductionReportVO;

/**
 * 每月生产报告Service接口
 * 
 * @author ruoyi
 * @date 2022-10-31
 */
public interface ITMonthlyProductionReportService 
{
    /**
     * 查询每月生产报告
     * 
     * @param id 每月生产报告ID
     * @return 每月生产报告
     */
    public TMonthlyProductionReport selectTMonthlyProductionReportById(Long id);

    /**
     * 查询每月生产报告列表
     * 
     * @param tMonthlyProductionReport 每月生产报告
     * @return 每月生产报告集合
     */
    public List<TMonthlyProductionReport> selectTMonthlyProductionReportList(TMonthlyProductionReport tMonthlyProductionReport);

    /**
     * 新增每月生产报告
     * 
     * @param tMonthlyProductionReport 每月生产报告
     * @return 结果
     */
    public int insertTMonthlyProductionReport(TMonthlyProductionReport tMonthlyProductionReport);

    /**
     * 修改每月生产报告
     * 
     * @param tMonthlyProductionReport 每月生产报告
     * @return 结果
     */
    public int updateTMonthlyProductionReport(TMonthlyProductionReport tMonthlyProductionReport);

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

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

    /**
     * 按年份查询Cracker Raw Material
     */
    public List<MonthlyProductionReportVO> selectCrackerRawMaterialByYear(Long year);

    /**
     * 按年份查询Cracker Output Product
     */
    public List<MonthlyProductionReportVO> selectCrackerOutputProductByYear(Long year);

    /**
     * 按年份查询Aromatics Raw Material
     */
    public List<MonthlyProductionReportVO> selectAromaticsRawMaterialByYear(Long year);

    /**
     * 按年份查询Aromatics Output Product
     */
    public List<MonthlyProductionReportVO> selectAromaticsOutputProductByYear(Long year);

    /**
     * 按年份查询Eligible Product Rate
     */
    public List<MonthlyProductionReportVO> selectEligibleProductRateByYear(Long year);

    /**
     * 按年份查询Product Yield
     */
    public List<MonthlyProductionReportVO> selectProductYieldByYear(Long year);

    /**
     * 按年份查询Cracker Utility Consumption
     */
    public List<MonthlyProductionReportVO> selectCrackerUtilityConsumptionByYear(Long year);

    /**
     * 按年份查询Cracker Energy Consumption
     */
    public List<MonthlyProductionReportVO> selectCrackerEnergyConsumptionByYear(Long year);

    /**
     * 按年份查询Aromatics Utility Consumption
     */
    public List<MonthlyProductionReportVO> selectAromaticsUtilityConsumptionByYear(Long year);

    /**
     * 按年份查询Aromatics Energy Consumption
     */
    public List<MonthlyProductionReportVO> selectAromaticsEnergyConsumptionByYear(Long year);

    /**
     * 按年份查询Plant Load
     */
    public List<MonthlyProductionReportVO> selectPlantLoadByYear(Long year);

    /**
     * 按年份查询Cost Fr Ethylene
     */
    public List<MonthlyProductionReportVO> selectCostFrEthyleneByYear(Long year);

    /**
     * 按年份查询Runing Rate
     */
    public List<MonthlyProductionReportVO> selectRuningRateByYear(Long year);

    /**
     * 按年份查询Shoudown Hour
     */
    public List<MonthlyProductionReportVO> selectShoudownHourByYear(Long year);

    /**
     * 按年份查询Otherside
     */
    public List<MonthlyProductionReportVO> selectOthersideByYear(Long year);

    /**
     * 按年份查询Chemical Consume
     */
    public List<MonthlyProductionReportVO> selectChemicalConsumeByYear(Long year);

    /**
     * 按年份查询SCTUUtility Consumption
     */
    public List<MonthlyProductionReportVO> selectSCTUUtilityConsumptionByYear(Long year);

    /**
     * 按年份查询SUB Utility Consumption
     */
    public List<MonthlyProductionReportVO> selectSUBUtilityConsumptionByYear(Long year);

    /**
     * 按年份查询SCTF Utility Consumption
     */
    public List<MonthlyProductionReportVO> selectSCTFUtilityConsumptionByYear(Long year);

    /**
     * 按年份查询KBI
     */
    public List<MonthlyProductionReportVO> selectKbiByYear(Long year);

    /**
     * 按年份查询Summary
     */
    public List<MonthlyProductionReportVO> selectSummaryByYear(Long year);

    /**
     * 查询趋势分析数据
     *
     * @param monthlyAnalysisQueryVO 查询参数
     * @return
     */
    List<MonthlyAnalysisDataVO> selectAnalysisData(MonthlyAnalysisQueryVO monthlyAnalysisQueryVO);

    /**
     * 修改Eligible Product Rate
     */
    public int updateEligibleProductRate(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Cracker Utility Consumption
     */
    public int updateCrackerUtilityConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Aromatics Utility Consumption
     */
    public int updateAromaticsUtilityConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Shoudown Hour
     */
    public int updateShoudownHour(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Runing Rate
     */
    public int updateRuningRate(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Chemical Consume
     */
    public int updateChemicalConsume(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Cost Fr Ethylene
     */
    public int updateCostFrEthylene(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改SUB Utility Consumption
     */
    public int updateSUBUtilityConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改SCTF Utility Consumption
     */
    public int updateSctfUtilityConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改KBI
     */
    public int updateKbi(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改修改Cracker Raw Material
     */
    public int updateCrackerRawMaterial(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Cracker Output Product
     */
    public int updateCrackerOutputProduct(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Aromatics Raw Material
     */
    public int updateAromaticsRawMaterial(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Aromatics Output Product
     */
    public int updateAromaticsOutputProduct(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Product Yield
     */
    public int updateProductYield(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Cracker Energy Consumption
     */
    public int updateCrackerEnergyConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Aromatics Energy Consumption
     */
    public int updateAromaticsEnergyConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Plant Load
     */
    public int updatePlantLoad(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Otherside
     */
    public int updateOtherside(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改SCTU Utility Consumption
     */
    public int updateSctuUtilityConsumption(MonthlyUpdateVO monthlyUpdateVO);

    /**
     * 修改Summary
     */
    public int updateSummary(MonthlyUpdateVO monthlyUpdateVO);


    public AjaxResult export(Long year);
}
