package com.srs.diagnostic.service;

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

import com.baomidou.mybatisplus.extension.service.IService;
import com.srs.common.core.domain.AjaxResult;
import com.srs.diagnostic.domain.DiaReportItems;
import com.srs.diagnostic.domain.DiaReportStandards;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.RequestBody;

/**
 * 诊断报告标准Service接口
 *
 * @author LSD
 * @date 2025-06-21
 */
public interface IDiaReportStandardsService extends IService<DiaReportStandards> {

    public List<Map<String, Object>> countClassItemFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countClassFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countGradeItemFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countGradeFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countMajorItemFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countMajorFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countDeptFinishNumByRelId(DiaReportStandards params) ;

    public List<Map<String, Object>> countDeptItemFinishNumByRelId(DiaReportStandards params) ;

    public Map<String,Object> countItemFinishNumByRelId(DiaReportStandards param) ;

    public Map<String, Object> countFinishNumByRelId(DiaReportStandards param) ;

    public List<DiaReportItems> countItemFinishByRelId(Long relId) ;

    public AjaxResult xgEditStandard(List<DiaReportStandards> diaReportStandards);

    public AjaxResult xwEditStandard(List<DiaReportStandards> diaReportStandards);

    public AjaxResult stuEditStandard(List<DiaReportStandards> diaReportStandards);

    public List<DiaReportItems> getItemByReportId(Long reportId) ;

    public List<DiaReportItems> getXgItemByReportId(Long relId,Long reportId) ;

    public List<DiaReportItems> getXwItemByReportId(Long relId , Long reportId);

    public List<DiaReportItems> getStuItemByReportId(Long deptId,Long relId , Long reportId);

    /**
     * 查询诊断报告标准
     *
     * @param standardId 诊断报告标准主键
     * @return 诊断报告标准
     */
    public DiaReportStandards selectDiaReportStandardsByStandardId(Long standardId);

    /**
     * 查询诊断报告标准列表
     *
     * @param diaReportStandards 诊断报告标准
     * @return 诊断报告标准集合
     */
    List<DiaReportStandards> selectDiaReportStandardsList(DiaReportStandards diaReportStandards);

    /**
     * 新增诊断报告标准
     *
     * @param diaReportStandards 诊断报告标准
     * @return 结果
     */
    int insertDiaReportStandards(DiaReportStandards diaReportStandards);

    /**
     * 修改诊断报告标准
     *
     * @param diaReportStandards 诊断报告标准
     * @return 结果
     */
    int updateDiaReportStandards(DiaReportStandards diaReportStandards);

    /**
     * 批量删除诊断报告标准
     *
     * @param standardIds 需要删除的诊断报告标准主键集合
     * @return 结果
     */
    int deleteDiaReportStandardsByStandardIds(Long[] standardIds);

    /**
     * 删除诊断报告标准信息
     *
     * @param standardId 诊断报告标准主键
     * @return 结果
     */
    int deleteDiaReportStandardsByStandardId(Long standardId);
}
