package com.usky.iot.service;

import com.usky.common.core.bean.CommonPage;
import com.usky.iot.domain.BaseBuild;
import com.usky.iot.domain.BaseGgpFacility;
import com.usky.common.mybatis.core.CrudService;
import com.usky.iot.domain.DmpDeviceInfo;
import com.usky.iot.service.vo.BaseFacilityDeviceVO;
import com.usky.iot.service.vo.BaseGgpFacilityExportVo;
import com.usky.iot.service.vo.BaseGgpFacilityRequest;
import com.usky.iot.service.vo.BaseGgpFacilityVO;
import org.springframework.web.multipart.MultipartFile;

import java.util.List;

/**
 * <p>
 * 地理信息 服务类
 * </p>
 *
 * @author han
 * @since 2023-06-02
 */
public interface BaseGgpFacilityService extends CrudService<BaseGgpFacility> {
    boolean add(BaseGgpFacility baseGgpFacility);

    void update(BaseGgpFacility baseGgpFacility);

    CommonPage<BaseGgpFacility> page(BaseGgpFacilityRequest baseGgpFacilityRequest);

    List<BaseFacilityDeviceVO> facilityDeviceList(String deviceId,Integer facilityId);

    boolean remove(Integer id);

    List<BaseGgpFacilityExportVo> recordLsitExport(BaseGgpFacilityRequest baseGgpFacilityRequest);

    List<BaseGgpFacility> facilityInfo(Integer id);

    CommonPage<DmpDeviceInfo> deviceInfo(String deviceId,Integer id,Integer current,Integer size);

    CommonPage<Object> deviceBindInfo(String deviceType,String deviceId,Integer id,Integer current,Integer size);

    CommonPage<BaseBuild> buildInfo(String buildNum, Integer id, Integer current, Integer size);

    /**
     * 地理信息-撒点
     *
     * @param baseGgpFacilityVO
     * @return
     */
    List<BaseGgpFacility> baseGgpFacilityList(BaseGgpFacilityVO baseGgpFacilityVO);

    /**
     * 设施弹窗查询
     *
     * @param id  主键ID
     */
    List<Object> facilityPopInfo(Integer id);

    void facilityImport(MultipartFile multipartFile);
}
