package com.patzn.lims.frame.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.web.Account;
import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.frame.entity.LmsFrameFile;
import com.patzn.lims.frame.entity.LmsFrameUnconformRegister;
import com.patzn.lims.frame.vo.LmsFrameUnconformRegisterVO;
import com.patzn.lims.workflow.FlowProcess;
import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletResponse;
import java.util.List;

/**
 * <p>
 * 不符合项登记 服务类
 * </p>
 *
 * @author patzn123
 * @since 2018-01-10
 */
public interface ILmsFrameUnconformRegisterService extends IBaseService<LmsFrameUnconformRegister> {

    Page<LmsFrameUnconformRegister> page(Page<LmsFrameUnconformRegister> page, LmsFrameUnconformRegister lmsFrameUnconformRegister);

    List<LmsFrameUnconformRegister> list(LmsFrameUnconformRegister lmsFrameUnconformRegister);

    LmsFrameUnconformRegisterVO getVOById(Long id);

    LmsFrameUnconformRegisterVO getTempVO();

    Boolean add(LmsFrameUnconformRegister lmsFrameUnconformRegister);

    Boolean delete(Long[] ids);

    LmsFrameFile uploadFile(MultipartFile file, LmsFrameUnconformRegister lmsFrameUnconformRegister);

    void downloadFile(Long id, HttpServletResponse response);

    Boolean deleteFile(Long id);

    List<FlowProcess>  submit(Long[] id, Account account);


    Boolean approve(String taskId, String status, String reason, String audit);

    boolean updateUnconformRegisterById(LmsFrameUnconformRegister lmsFrameUnconformRegister);
}
