package com.zd.laboratory.mapper;

import com.zd.laboratory.domain.LabRiskPlan;
import com.zd.laboratory.domain.dto.LabRiskPlanDTO;
import com.zd.laboratory.domain.vo.LabRiskPlanVO;

import java.util.List;

/**
 * 风险预案Mapper接口
 *
 * @author zd
 * @date 2021-09-03
 */
public interface LabRiskPlanMapper {
    /**
     * 查询风险预案
     *
     * @param id 风险预案主键
     * @return 风险预案
     */
    public LabRiskPlan selectLabRiskPlanById(Long id);

    /**
     * 查询风险预案列表
     *
     * @param labRiskPlan 风险预案
     * @return 风险预案集合
     */
    public List<LabRiskPlan> selectLabRiskPlanList(LabRiskPlan labRiskPlan);

    /**
     * 新增风险预案
     *
     * @param labRiskPlan 风险预案
     * @return 结果
     */
    public int insertLabRiskPlan(LabRiskPlan labRiskPlan);

    /**
     * 修改风险预案
     *
     * @param labRiskPlan 风险预案
     * @return 结果
     */
    public int updateLabRiskPlan(LabRiskPlan labRiskPlan);

    /**
     * 删除风险预案
     *
     * @param id 风险预案主键
     * @return 结果
     */
    public int deleteLabRiskPlanById(Long id);

    /**
     * 批量删除风险预案
     *
     * @param ids 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteLabRiskPlanByIds(Long[] ids);

    List<LabRiskPlanDTO> selectLabRiskPlanStatisticList(LabRiskPlanDTO labRiskPlan);

    List<LabRiskPlan> selectLabRiskPlanBySubjectList(LabRiskPlanVO labRiskPlanVo);

    /**
     * 查询实验室详情预案统计
     * @param subId 实验室ID
     */
    List<com.zd.system.api.laboratory.domain.vo.LabRiskPlanVO> selectRiskPlanCountBySubId(Long subId);
}
