package com.zt.plat.module.qms.business.bus.service;

import java.util.*;
import jakarta.validation.*;
import com.zt.plat.framework.common.pojo.PageResult;
import com.zt.plat.module.qms.business.bus.controller.vo.*;
import com.zt.plat.module.qms.business.bus.dal.dataobject.BusinessSampleEntrustUnStandardProjectDO;
import com.zt.plat.framework.common.pojo.PageParam;

/**
 * 委检登记样品检测项目表(无标准) Service 接口
 *
 * @author 后台管理
 */
public interface BusinessSampleEntrustUnStandardProjectService {

    /**
     * 创建委检登记样品检测项目表(无标准)
     *
     * @param createReqVO 创建信息
     * @return 编号
     */
    BusinessSampleEntrustUnStandardProjectRespVO createBusinessSampleEntrustUnStandardProject(@Valid BusinessSampleEntrustUnStandardProjectSaveReqVO createReqVO);

    /**
     * 更新委检登记样品检测项目表(无标准)
     *
     * @param updateReqVO 更新信息
     */
    void updateBusinessSampleEntrustUnStandardProject(@Valid BusinessSampleEntrustUnStandardProjectSaveReqVO updateReqVO);

    /**
     * 删除委检登记样品检测项目表(无标准)
     *
     * @param id 编号
     */
    void deleteBusinessSampleEntrustUnStandardProject(Long id);

    /**
    * 批量删除委检登记样品检测项目表(无标准)
    *
    * @param ids 编号
    */
    void deleteBusinessSampleEntrustUnStandardProjectListByIds(List<Long> ids);

    /**
     * 获得委检登记样品检测项目表(无标准)
     *
     * @param id 编号
     * @return 委检登记样品检测项目表(无标准)
     */
    BusinessSampleEntrustUnStandardProjectDO getBusinessSampleEntrustUnStandardProject(Long id);

    /**
     * 获得委检登记样品检测项目表(无标准)分页
     *
     * @param pageReqVO 分页查询
     * @return 委检登记样品检测项目表(无标准)分页
     */
    PageResult<BusinessSampleEntrustUnStandardProjectDO> getBusinessSampleEntrustUnStandardProjectPage(BusinessSampleEntrustUnStandardProjectPageReqVO pageReqVO);

    /**
     * 获得委检登记样品检测项目表(无标准)列表
     * @param reqVO
     * @return
     */
	List<BusinessSampleEntrustUnStandardProjectExtendRespVO> getBusinessSampleEntrustUnStandardProjectList(BusinessSampleEntrustUnStandardProjectPageReqVO reqVO);

    /**
     * 根据主样id查询非标准的检测项目列表
     * @param businessBaseSampleId
     * @return
     */
	List<BusinessSampleEntrustUnStandardProjectExtendRespVO> listByBusinessBaseSampleId(Long businessBaseSampleId);

	/**
	 * 保存分析部门
	 * @param reqVO
	 */
	void saveAssayDept(BusinessSampleEntrustUnStandardProjectAssayDeptSaveReqVO reqVO);

}