package com.zksy.base.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.zksy.base.domain.EquipmentBase;
import com.zksy.base.domain.vo.*;

import java.util.List;
import java.util.Map;

public interface WaterSupplyDeviceService extends IService<EquipmentBase> {

    List<DeviceTypeStatisticsVO> getDeviceTypeStatistics();

    Page<DeviceGisVO> getDeviceLedgerPage(long pageNum, long pageSize,
                                           String equipmentName, String equipmentCode,
                                           String equipmentTypeId, Integer status);

    List<DeviceGisVO> getAllDeviceGisPoints(String equipmentTypeId);

    DeviceDetailVO getDeviceDetail(String equipmentId);

    boolean createMaintainOrder(MaintainOrderVO vo);

    Page<AbnormalDeviceVO> getAbnormalDevicePage(long pageNum, long pageSize,
                                                  String equipmentName, String equipmentCode,
                                                  String equipmentTypeId, Integer alertLevel);

    List<AbnormalDeviceVO> getAbnormalDeviceGisPoints(String equipmentTypeId);

    List<Map<String, Object>> getMaintainRecordList(String equipmentId);

    boolean saveMaintainRecord(EquipmentMaintainDataVO vo);

    boolean updateMaintainRecord(EquipmentMaintainDataVO vo);

    boolean deleteMaintainRecord(String maintainId);

    Page<EquipmentMaintainDataVO> getMaintainRecordPage(long pageNum, long pageSize,
                                                          String equipmentName, String maintainPerson,
                                                          String maintainType, String status,
                                                          String startTime, String endTime);

    Page<EquipmentMaintainDataVO> getMyMaintainRecordPage(long pageNum, long pageSize,
                                                            String maintainPerson,
                                                            String maintainType, String status,
                                                            String startTime, String endTime);
}
