package com.casic.missiles.service.business;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.dto.business.labExecutive.*;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.model.business.BusinessLabExecutiveInfo;

import java.util.List;

/**
 * <p>
 * 业务管理-实验室检定信息记录表（用于流程中的实验室分配及后续检定过程查询） 服务类
 * </p>
 *
 * @author wangpeng
 * @since 2023-02-02
 */
public interface IBusinessLabExecutiveInfoService extends IService<BusinessLabExecutiveInfo> {

    Page<SampleHandOutListResponse> handOutListPage(Page<SampleHandOutListResponse> page, SampleHandOutListRequest handOutListRequest) throws Exception;

    List<SampleAmountResponse> handOutAmount();

    SampleHandOutDetailResponse handOutListDetail(SampleHandOutDetailRequest SampleHandOutDetailRequest) throws Exception;

    List<SampleHandOutInitListResponse> handOutInitList(SampleHandOutInitListRequest handOutInitListRequest);

    ReturnDTO handOut(SampleHandOutRequest handOutRequest);

    Page<SampleLabExecutiveListResponse> deptLabExecutiveListPage(Page<SampleLabExecutiveListResponse> page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception;

    Page<SampleLabExecutiveListResponse> myLabExecutiveListPage(Page<SampleLabExecutiveListResponse> page, SampleLabExecutiveListRequest labExecutiveListRequest) throws Exception;

    List<SampleAmountResponse> myExecutiveAmount();

    ReturnDTO sampleReceive(List<SampleOperateRequest> requestList);

    ReturnDTO sampleExecutiveComplete(List<SampleOperateRequest> requestList);

    ReturnDTO updateExecutiveList(UpdateExecutiveListRequest requestList);

    ReturnDTO updateExecutive(UpdateExecutiveRequest request);

    ExecutiveDetailResponse executiveDetail(ExecutiveDetailRequest request) throws Exception;

    ReturnDTO sampleExecutiveSendBack(ExecutiveSendBackRequest request);

    ReturnDTO allocateStaff(SampleAllocateRequest sampleAllocateRequest);
}
