package com.casic.missiles.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.GeneralApprovalDTO;
import com.casic.missiles.dto.*;
import com.casic.missiles.dto.flowable.ApprovalDeleteRequest;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* @Description: 通用审批处理Service
* @Author: wangpeng
* @Date: 2023/8/15 9:50
*/
public interface IGeneralApprovalService<O extends GeneralApprovalDTO, T extends GeneralApprovalDTO, R extends BaseApprovalListRequest, S extends BaseApprovalSubmitRequest> extends IService<T> {
Page<O> listPage(Page<O> page, R queryRequest) throws Exception;
ReturnDTO draftUpdate(T request);
ReturnDTO draftDelete(Long id);
ReturnDTO draftBatchDelete(List<Long> ids);
ReturnDTO submit(S submitRequest);
ReturnDTO approvalRefuse(BaseApprovalRefuseRequest request);
ReturnDTO approvalRevoke(BaseApprovalRevokeRequest request);
ReturnDTO approvalDelete(ApprovalDeleteRequest request);
ReturnDTO failUpdate(T request);
List<O> listExport(R request);
List<O> listExportByIds(List<Long> ids);
List<O> exportFileList(R request, HttpServletResponse response) throws Exception;
}