package com.rongwei.bscommon.sys.service;

import com.rongwei.bsentity.domain.EquLubricationTaskManagementDo;
import com.rongwei.bsentity.dto.EquipmentDisposeDTO;
import com.rongwei.rwcommon.base.R;

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

/**
 * @author shangmi
 * @title EquipmentSendNotifyService
 * @date 2024/1/18 17:19
 * @description 消息提醒业务类
 */
public interface EquipmentSendNotifyService {
    /**
     * 根据任务ID发送维修 提醒
     *
     * @param id 保养任务ID
     * @return {@link R}
     * @date 2024/1/18 17:16
     * @author shangmi
     *
     */
    R maintainCreateTaskNotify(String id);

    /**
     * 根据任务ID发送验收 提醒
     *
     * @param id 保养任务ID
     * @return {@link R}
     * @date 2024/1/18 17:16
     * @author shangmi
     *
     */
    R maintainVerifyTaskNotify(String id);

    /**
     * 发送润滑任务消息提醒
     * @param equLubricationTaskManagementDos
     * @return
     */
    R sendLubricationTaskNotify(List<EquLubricationTaskManagementDo> equLubricationTaskManagementDos);

    /**
     * 润滑任务发送消息提醒
     * @param parameter
     * @return
     */
    R sendLubricationTaskNotifyByIds(Map<String, Object> parameter);

    /**
     * 大修任务发送消息提醒
     * @param belongfactory
     * @param taskquantity
     * @param taskId
     * @param userId
     * @param fileItemId
     */
    void sendPlanningTasksNotify(String belongfactory, Integer taskquantity, String taskId,List<String> userId,String fileItemId);

    /**
     * 设备报废通知提醒
     * @param equipmentDisposeDTO
     */
    void equScrapAuditNotify(EquipmentDisposeDTO equipmentDisposeDTO);


    /**
     * 设备部位重复故障问题提醒
     * @return
     */
    R deviceRepeatedlyFailsNotify();


    /**
     * 保养/润滑跨月未完成提醒
     *
     * @return {@link R}
     * @date 2024/1/30 15:08
     * @author shangmi
     *
     */
    R previousUnfinishedTaskNotify();

    /**
     * 故障停机提醒
     * @param parameter
     */
    void sendFaultStopRemind(Map<String, String> parameter);

    /**
     * 保养/润滑月末未完成提醒
     *
     * @return {@link R}
     * @date 2024/1/30 15:08
     * @author shangmi
     *
     */
    R endUnfinishedTaskNotify();

    /**
     * 删除大修计划任务发送移动端的超期任务提醒
     */
    void deletePlanningTasksNotify();
}
