package com.ruoyi.project.production.mapper;

import java.util.List;
import com.ruoyi.framework.aspectj.lang.annotation.DataScope;
import com.ruoyi.project.production.domain.TMonthlyProductionPrice;
import com.ruoyi.project.production.domain.TMonthlyProductionReport;
import org.apache.ibatis.annotations.Param;

/**
 * 生产月报单价维护Mapper接口
 * 
 * @author ruoyi
 * @date 2022-11-18
 */
public interface TMonthlyProductionPriceMapper 
{
    /**
     * 查询单价
     *
     * @param reportYear    年份
     * @param reportMonth   月份
     * @return
     */
    public TMonthlyProductionPrice selectTMonthlyProductionPriceByDate(
            @Param("reportYear")int reportYear,
            @Param("reportMonth")int reportMonth
    );

    /**
     * 查询生产月报单价维护
     * 
     * @param id 生产月报单价维护ID
     * @return 生产月报单价维护
     */
    public TMonthlyProductionPrice selectTMonthlyProductionPriceById(Long id);

    /**
     * 查询生产月报单价维护列表
     * 
     * @param tMonthlyProductionPrice 生产月报单价维护
     * @return 生产月报单价维护集合
     */
    @DataScope(deptAlias = "d")
    public List<TMonthlyProductionPrice> selectTMonthlyProductionPriceList(TMonthlyProductionPrice tMonthlyProductionPrice);

    /**
     * 新增生产月报单价维护
     * 
     * @param tMonthlyProductionPrice 生产月报单价维护
     * @return 结果
     */
    public int insertTMonthlyProductionPrice(TMonthlyProductionPrice tMonthlyProductionPrice);

    /**
     * 修改生产月报单价维护
     * 
     * @param tMonthlyProductionPrice 生产月报单价维护
     * @return 结果
     */
    public int updateTMonthlyProductionPrice(TMonthlyProductionPrice tMonthlyProductionPrice);

    /**
     * 删除生产月报单价维护
     * 
     * @param id 生产月报单价维护ID
     * @return 结果
     */
    public int deleteTMonthlyProductionPriceById(Long id);

    /**
     * 批量删除生产月报单价维护
     * 
     * @param ids 需要删除的数据ID
     * @return 结果
     */
    public int deleteTMonthlyProductionPriceByIds(Long[] ids);

    List<TMonthlyProductionPrice> selectPriceByYear(Long year);

    /**
     * 查询单价记录是否已存在
     * 返回结果==0表示不存在，>=0表示已存在
     *
     * @param reportYear    年份
     * @param reportMonth   月份
     * @return
     */
    public int selectTMonthlyProductionPriceCountByDate(
            @Param("reportYear")int reportYear,
            @Param("reportMonth")int reportMonth
    );
}
