package com.njcn.product.event.transientes.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.product.event.devcie.pojo.dto.DeviceDTO;
import com.njcn.product.event.transientes.pojo.param.LargeScreenCountParam;
import com.njcn.product.event.transientes.pojo.param.MessageEventFeedbackParam;
import com.njcn.product.event.transientes.pojo.po.MsgEventInfo;
import com.njcn.product.event.transientes.pojo.vo.*;

import java.util.List;

/**
 * Description:
 * Date: 2025/06/19  下午 3:05【需求编号】
 *
 * @author clam
 * @version V1.0.0
 */
public interface LargeScreenCountService {

    void initLedger(LargeScreenCountParam largeScreenCountParam);

    LedgerCountVO scaleStatistics(LargeScreenCountParam largeScreenCountParam);

    AlarmAnalysisVO alarmAnalysis(LargeScreenCountParam largeScreenCountParam);

    List<EventTrendVO> eventTrend(LargeScreenCountParam largeScreenCountParam);

    Page<EventDetailVO> eventList(LargeScreenCountParam largeScreenCountParam);

    List<EventDetailVO> noDealEventList(LargeScreenCountParam largeScreenCountParam);


    boolean lookEvent(List<String> ids);

    List<MapCountVO> mapCount(LargeScreenCountParam largeScreenCountParam);

    EventMsgDetailVO eventMsgDetail(String eventId);

    List<MsgEventInfo> msgSendList(LargeScreenCountParam largeScreenCountParam);

    Page<MsgEventInfo> hasSendMsgPage(LargeScreenCountParam largeScreenCountParam);

    boolean msgHandle(MessageEventFeedbackParam messageEventFeedbackParam);


    AlarmAnalysisVO alarmAnalysisDetail(LargeScreenCountParam largeScreenCountParam);

    Page<EventDetailVO> eventTablePage(LargeScreenCountParam largeScreenCountParam);

    DeviceCountVO devFlagCount(LargeScreenCountParam largeScreenCountParam);

    List<DeviceDTO> devDetail(LargeScreenCountParam largeScreenCountParam);

    List<RegionDevCountVO> regionDevCount(LargeScreenCountParam largeScreenCountParam);

    List<SubStationCountVO> substationCount(LargeScreenCountParam largeScreenCountParam);

    Page<EventDetailVO> eventPage(LargeScreenCountParam largeScreenCountParam);

    List<EventDetailVO> eventPageExport(LargeScreenCountParam largeScreenCountParam);


    Page<DeviceDTO> devicePage(LargeScreenCountParam largeScreenCountParam);

    Page<EventDetailVO> userEventList(LargeScreenCountParam largeScreenCountParam);

    void exportLineData();

    List<MessageEventVO> noDealEventListMessage(LargeScreenCountParam largeScreenCountParam);

    boolean lookMessage(List<String> eventIds);
}
