package com.ho.flow.service;

import com.alibaba.fastjson.JSONObject;
import com.ho.common.tools.exception.DataResult;
import com.ho.flow.vo.AlarmConfig;
import com.ho.flow.vo.Event;
import com.ho.flow.vo.req.AlarmConfig.AlarmConfigQueryVo;
import com.ho.flow.vo.req.event.EventAddReq;
import com.ho.flow.vo.resp.StationStatusRespVO;
import com.ho.flow.vo.resp.event.EventTypeAndLevelsReqVO;

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

/**
 * @author kerwin flowable-src-1.0.jar原有
 */
public interface FlowOutApiService {

    Map<String, List<Event>> matchEventRecords(EventAddReq eventAddReq, JSONObject dataSet, Map<String, AlarmConfig> stationConfigMap, Map<String, AlarmConfig> groupConfigMap);

    Boolean isRecoveryDevice(AlarmConfigQueryVo alarmConfigQueryVo);

    List<StationStatusRespVO> isNormalStation(AlarmConfigQueryVo alarmConfigQueryVo);

    void polymerizationAlarm(EventAddReq eventAddReq, List<AlarmConfig> groupAlarmConfigs, List<AlarmConfig> stationAlarmConfigs);

    Event getNotRecovered(AlarmConfigQueryVo stationStatusReq);

    EventTypeAndLevelsReqVO getAlarmDataStatistics(AlarmConfigQueryVo stationStatusReq);

    DataResult addEvents(List<EventAddReq> list);
}
