package com.yunfeiyun.agmp.fms.service;

import com.yunfeiyun.agmp.fms.domain.FmsTask;
import com.yunfeiyun.agmp.fms.domain.FmsWarn;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsWarnReqVo;
import com.yunfeiyun.agmp.fms.domain.reqvo.FmsWarnStatusReqVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsMessageResVo;
import com.yunfeiyun.agmp.fms.domain.resvo.FmsWarnResVo;

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

/**
 * 预警Service接口
 * 
 * @author 杨晓辉
 * @date 2023-05-29
 */
public interface IFmsWarnService 
{
    /**
     * 查询预警
     * 
     * @param warnId 预警主键
     * @return 预警
     */
    public FmsWarnResVo selectFmsWarnByWarnId(String warnId);

    /**
     * 查询预警列表
     * 
     * @param fmsWarnReqVo 预警
     * @return 预警集合
     */
    public List<FmsWarnResVo> selectFmsWarnList(FmsWarnReqVo fmsWarnReqVo);

    /**
     * 新增预警
     * 
     * @param fmsWarn 预警
     * @return 结果
     */
    public int insertFmsWarn(FmsWarn fmsWarn);

    /**
     * 修改预警
     * 
     * @param fmsWarn 预警
     * @return 结果
     */
    public int updateFmsWarn(FmsWarn fmsWarn);

    /**
     * 下发农事任务并更新预警信息
     *
     * @param fmsTask 任务实体
     * @param warnId 预警记录id
     * @return 结果
     */
    public int updateFmsWarnByTask(FmsTask fmsTask, String warnId);

    /**
     * 修改预警状态为已读
     *
     * @param fmsWarnStatusReqVon 预警
     * @return 结果
     */
    public int updateFmsWarnByStatus(FmsWarnStatusReqVo fmsWarnStatusReqVon);

    /**
     * 批量删除预警
     * 
     * @param warnIds 需要删除的预警主键集合
     * @return 结果
     */
    public int deleteFmsWarnByWarnIds(String[] warnIds);

    /**
     * 删除预警信息
     * 
     * @param warnId 预警主键
     * @return 结果
     */
    public int deleteFmsWarnByWarnId(String warnId);

    public void appendWarnMessage(Map<String, FmsMessageResVo> fmsMessageResVoMap );
}
