package com.zd.laboratory.service;

import com.zd.laboratory.domain.LabHazard;
import com.zd.laboratory.domain.dto.LabHazardDTO;
import com.zd.laboratory.domain.dto.LabHazardNewVo;
import com.zd.laboratory.domain.vo.LabHazardBigViewVO;
import com.zd.laboratory.domain.vo.LabHazardColumnarVO;
import com.zd.laboratory.domain.vo.LabHazardVO;

import java.util.List;
import java.util.Map;

/**
 * 危险源Service接口
 *
 * @author zd
 * @date 2021-09-01
 */
public interface ILabHazardService {
    /**
     * 查询危险源
     *
     * @param id 危险源主键
     * @return 危险源
     */
    public LabHazard selectLabHazardById(Long id);

    /**
     * 查询危险源列表
     *
     * @param labHazard 危险源
     * @return 危险源集合
     */
    public List<LabHazardNewVo> selectLabHazardList(LabHazard labHazard);

    /**
     * 新增危险源
     *
     * @param labHazard 危险源
     * @return 结果
     */
    public int insertLabHazard(LabHazard labHazard);

    /**
     * 修改危险源
     *
     * @param labHazard 危险源
     * @return 结果
     */
    public int updateLabHazard(LabHazard labHazard);

    /**
     * 批量删除危险源
     *
     * @param ids 需要删除的危险源主键集合
     * @return 结果
     */
    public int deleteLabHazardByIds(Long[] ids);

    /**
     * 删除危险源信息
     *
     * @param id 危险源主键
     * @return 结果
     */
    public int deleteLabHazardById(Long id);

    List<LabHazardDTO> selectLabHazardAndContainerList(LabHazardDTO labHazard);


    /**
     * 查询危险源下拉框列表
     *
     * @param labHazard 危险源
     * @return 危险源下拉框列表集合
     */
    public List<LabHazardVO> listByHazard(LabHazard labHazard);

    List<Map<String, Object>> queryRanking(Map<String, Object> params);

    List<Map<String, Object>> queryHazardColumnar(LabHazard labHazard);

    List<Map<String, Object>> queryHazardColumnarTop(LabHazard labHazard);

    List<LabHazardColumnarVO> queryHazardList(LabHazardVO labHazardVO);

    List<LabHazardBigViewVO> queryBigViewHazardList(LabHazardVO labHazardVO);

    int updateLabHazardLook(LabHazard labHazard);
}
