package digital.laboratory.platform.reagent.service;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
import digital.laboratory.platform.reagent.dto.AcceptanceRecordFormDTO;
import digital.laboratory.platform.reagent.dto.AuditAndApproveDTO;
import digital.laboratory.platform.reagent.entity.AcceptanceRecordForm;
import digital.laboratory.platform.reagent.vo.AcceptanceRecordFormVO;

/**
 * (验收记录表)服务类
 *
 * @author Zhang Xiaolong created at  2023-03-10
 * @describe (验收记录表) 服务类
 */
public interface AcceptanceRecordFormService extends IService<AcceptanceRecordForm> {

    AcceptanceRecordForm editFrom(AcceptanceRecordFormDTO acceptanceRecordFormDTO);

    AcceptanceRecordForm addForm(String reagentConsumableId, String supplierId);

    AcceptanceRecordForm commitForm(AcceptanceRecordFormDTO acceptanceRecordFormDTO);

    IPage<AcceptanceRecordFormVO> getAcceptanceRecordFormVOPage(IPage<AcceptanceRecordForm> page, QueryWrapper<AcceptanceRecordForm> qw);

    AcceptanceRecordFormVO getAcceptanceRecordFormVO(String acceptanceRecordFormId);

    AcceptanceRecordForm primaryAudit(AuditAndApproveDTO auditAndApproveDTO, DLPUser dlpUser);

    AcceptanceRecordForm secondaryAudit(AuditAndApproveDTO auditAndApproveDTO, DLPUser dlpUser);

    AcceptanceRecordForm threeLevelAudit(AuditAndApproveDTO auditAndApproveDTO, DLPUser dlpUser);
}
