package com.casic.missiles.service.equipment;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.casic.missiles.dto.BaseApprovalSubmitRequest;
import com.casic.missiles.dto.IdDTO;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.equipment.StateManageResponse;
import com.casic.missiles.dto.flowable.ApprovalDeleteRequest;
import com.casic.missiles.dto.equipment.EquipmentApplyProcessRequest;
import com.casic.missiles.dto.equipment.EquipmentApplyRequest;
import com.casic.missiles.model.equipment.EquipmentApply;

import javax.servlet.http.HttpServletResponse;

public interface IEquipmentApplyService extends IService<EquipmentApply> {

    Page<EquipmentApply> equipmentApplyList(Page<EquipmentApply> page, EquipmentApplyRequest request) throws Exception;

    Object equipmentApplyInfo(IdDTO idDTO) throws Exception;

    ReturnDTO addEquipmentApply(EquipmentApply equipmentApply);

    ReturnDTO deleteEquipmentApply(ApprovalDeleteRequest request);

    ReturnDTO updateEquipmentApply(EquipmentApply equipmentApply);

    void exportList(EquipmentApplyRequest request, HttpServletResponse response) throws Exception;

    ReturnDTO borrowEquipmentApply(IdDTO idDto);

    ReturnDTO returnEquipmentApply(IdDTO idDto);

    ReturnDTO updateProcessResult(EquipmentApplyProcessRequest request);

    ReturnDTO submitEquipmentApply(BaseApprovalSubmitRequest request);

    ReturnDTO failUpdate(EquipmentApply equipmentApply);
}
