package org.springblade.modules.nh.service;

import com.baomidou.mybatisplus.core.conditions.Wrapper;
import org.apache.ibatis.annotations.Param;
import org.springblade.core.mp.base.BaseService;
import org.springblade.modules.nh.factory.ginlong.dto.alarmlist.GetAlarmListR;
import org.springblade.modules.nh.pojo.dto.sync.InverterRecoverDTO;
import org.springblade.modules.nh.pojo.entity.AlarmInfoEntity;
import org.springblade.modules.nh.pojo.vo.AlarmInfoVO;
import org.springblade.modules.nh.excel.AlarmInfoExcel;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.tool.api.R;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springblade.modules.nh.pojo.vo.OverviewStaticDataVo;

import java.util.List;

/**
 * 设备告警信息表 服务类
 *
 * @author AlexWang
 * @since 2024-06-03
 */
public interface IAlarmInfoService extends BaseService<AlarmInfoEntity> {
	/**
	 * 自定义分页
	 *
	 * @param page
	 * @param alarmInfo
	 * @return
	 */
	IPage<AlarmInfoVO> selectAlarmInfoPage(IPage<AlarmInfoVO> page, AlarmInfoVO alarmInfo);


	/**
	 * 导出数据
	 *
	 * @param queryWrapper
	 * @return
	 */
	List<AlarmInfoExcel> exportAlarmInfo(Wrapper<AlarmInfoEntity> queryWrapper);

	OverviewStaticDataVo stationAlarm(String outStationId);

	void syncAlarmInfo(List<GetAlarmListR> list, String sysType);

    void syncRecoverTime(List<InverterRecoverDTO> recoverList);

	List<String> getIdCodes(String sysTypeAiswei);

	R turnMaintenance(String id);

	String getOrderNo(Long alarmId);

	String getOrderNumber(Long entryId);

}
