package com.zd.laboratory.mapper;

import java.util.List;

import com.zd.laboratory.domain.LabControl;
import com.zd.laboratory.domain.vo.LabBigViewGroupVO;
import com.zd.laboratory.domain.vo.LabControlVO;
import com.zd.laboratory.domain.vo.LabRiskPlanListVO;

/**
 * 控制记录Mapper接口
 *
 * @author zd
 * @date 2021-09-07
 */
public interface LabControlMapper {
    /**
     * 查询控制记录
     *
     * @param id 控制记录主键
     * @return 控制记录
     */
    public LabControl selectLabControlById(Long id);

    /**
     * 查询控制记录列表
     *
     * @param labControl 控制记录
     * @return 控制记录集合
     */
    public List<LabControlVO> selectLabControlList(LabControlVO labControl);

    /**
     * 新增控制记录
     *
     * @param labControl 控制记录
     * @return 结果
     */
    public int insertLabControl(LabControl labControl);

    /**
     * 修改控制记录
     *
     * @param labControl 控制记录
     * @return 结果
     */
    public int updateLabControl(LabControl labControl);

    /**
     * 删除控制记录
     *
     * @param id 控制记录主键
     * @return 结果
     */
    public int deleteLabControlById(Long id);

    /**
     * 批量删除控制记录
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLabControlByIds(Long[] ids);


    /**
     * 查询根据年倒推12个月的信息统计
     *
     * @return 控制记录集合
     */
    public List<LabBigViewGroupVO> getYearControlInfo(LabControl labControl);

    /**
     * 查询预案统计次数列表
     *
     * @return 控制记录集合
     */
    public List<LabRiskPlanListVO> getRiskPlanList(LabControlVO labControlVO);
}
