package com.njcn.process.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.njcn.process.pojo.param.MonitorParam;
import com.njcn.process.pojo.param.StrategyParam;
import com.njcn.process.pojo.po.ThsWarnStrategy;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;

/**
 * <p>
 * 服务类
 * </p>
 *
 * @author wr
 * @since 2023-03-10
 */
public interface ThsWarnStrategyService extends IService<ThsWarnStrategy> {

    /***
     * 预警单/告警单列表
     * @author wr
     * @date 2023-02-27 13:58
     * @param param
     * @return Page<?>
     */
    Page<ThsWarnStrategy> strategyPage(StrategyParam.StrategyPageParam param);

    /***
     * 预警单/告警单集合
     * @author wr
     * @date 2023-02-27 13:58
     * @param param
     * @return Page<?>
     */
    List<ThsWarnStrategy> strategyList(StrategyParam.StrategyPageParam param);

    /***
     * 预警单/告警单单条新增
     * @author wr
     * @date 2023-02-27 14:02
     * @param param
     * @return Boolean
     */
    Boolean insertStrategy(StrategyParam.StrategyInsertParam param);


    /***
     * 预警单/告警单绑定
     * @author wr
     * @date 2023-02-27 14:02
     * @param param
     * @return Boolean
     */
    Boolean bindStrategy(StrategyParam.BindParam param);

    /***
     * 预警单/告警单修改详细查询
     * @author wr
     * @date 2023-03-10 13:31
     * @param id
     * @return StrategyUpdateParam
     */
    StrategyParam.StrategyUpdateParam getUpdateStrategy(String id);

    /***
     * 预警单/告警单修改
     * @author wr
     * @date 2023-02-27 14:02
     * @param param
     * @return Boolean
     */
    Boolean updateStrategy(StrategyParam.StrategyUpParam param);

    /***
     * 预警单/告警单修改状态
     * @author wr
     * @date 2023-02-27 14:02
     * @param param
     * @return Boolean
     */
    Boolean updateStrategyState(StrategyParam.StrategyStateParam param);

   /***
    * 监测点查询接口
    * @author wr
    * @date 2023-03-22 17:38
    * @param orgId
    * @return List<MonitorTree>
    */
    List<StrategyParam.MonitorTree> getMonitor( String orgId);


    /***
     * 监测点绑定
     * @author wr
     * @date 2023-02-27 14:02
     * @param param
     * @return Boolean
     */
    Boolean bindMonitor(MonitorParam param);

    /***
     * 监测点回显
     * @author wr
     * @date 2023-03-22 10:44
     * @param org
     * @param type
     * @return List<ThsDeptAlarm>
     */
    StrategyParam.MonitorTree echoMonitor(String org,Integer type,Integer grade);

    /***
     * 预警单/告警单删除
     * @author wr
     * @date 2023-02-27 14:02
     * @param ids
     * @return Boolean
     */
    Boolean delStrategy(String ids);
}
