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.IdDTO;
import com.casic.missiles.dto.ReturnDTO;
import com.casic.missiles.dto.equipment.EquipmentOrSampleDto;
import com.casic.missiles.dto.equipment.FixedAssetRequest;
import com.casic.missiles.dto.equipment.RemindQuantityDTO;
import com.casic.missiles.model.equipment.EquipmentFixedAssets;
import com.casic.missiles.model.equipment.EquipmentStateChangeLog;
import com.casic.missiles.model.equipment.EquipmentUseLog;

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

/**
 * <p>
 *  服务类
 * </p>
 *
 * @author cuicheng
 * @since 2022-12-07
 */
public interface IEquipmentFixedAssetsService extends IService<EquipmentFixedAssets> {
    Page<EquipmentFixedAssets> listPage(Page<EquipmentFixedAssets> page, FixedAssetRequest request) throws Exception;

    ReturnDTO addFixedAsset(EquipmentFixedAssets meterFixedAssets);

    ReturnDTO deleteByFixedAssetId(Long id);

    ReturnDTO removeStandardSupportEquipment(Long id);

    ReturnDTO removeCalibrationTestEquipment(Long id);

    ReturnDTO removeMeasureAccount(Long id);

    ReturnDTO updateFixedAsset(EquipmentFixedAssets meterFixedAssets);

    ReturnDTO querySelectList();

    List<EquipmentFixedAssets> list(FixedAssetRequest request) throws Exception;

    ReturnDTO addFixedAssetList(List<EquipmentFixedAssets> meterFixedAssetsList) throws Exception;

    EquipmentFixedAssets getById(Long id) throws Exception;

    ReturnDTO queryListByDept(Long id) throws Exception;

    List<EquipmentFixedAssets> list(List<Long> ids);

    ReturnDTO<EquipmentUseLog> queryUseLogList(Long id) throws Exception;

    ReturnDTO<EquipmentStateChangeLog> queryStateChangeLogList(Long id) throws Exception;

    Page<EquipmentOrSampleDto> queryEquipment(Page<EquipmentOrSampleDto> page, EquipmentOrSampleDto request) throws Exception;

    Page<EquipmentFixedAssets> remindListPage(Page<EquipmentFixedAssets> page, FixedAssetRequest request) throws Exception;

    RemindQuantityDTO remindQuantity();

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

    ReturnDTO remindWorker(IdDTO idDTO);
}
