package com.aucma.production.service;

import com.aucma.production.domain.AndonEvent;

import java.util.List;

/**
 * 安灯事件Service接口
 * 
 * @author Yinq
 * @date 2025-10-28
 */
public interface IAndonEventService 
{
    /**
     * 查询安灯事件
     * 
     * @param eventId 安灯事件主键
     * @return 安灯事件
     */
    public AndonEvent selectAndonEventByEventId(Long eventId);

    /**
     * 查询安灯事件列表
     * 
     * @param andonEvent 安灯事件
     * @return 安灯事件集合
     */
    public List<AndonEvent> selectAndonEventList(AndonEvent andonEvent);

    /**
     * 新增安灯事件
     * 
     * @param andonEvent 安灯事件
     * @return 结果
     */
    public int insertAndonEvent(AndonEvent andonEvent);

    /**
     * 修改安灯事件
     * 
     * @param andonEvent 安灯事件
     * @return 结果
     */
    public int updateAndonEvent(AndonEvent andonEvent);

    /**
     * 批量删除安灯事件
     * 
     * @param eventIds 需要删除的安灯事件主键集合
     * @return 结果
     */
    public int deleteAndonEventByEventIds(Long[] eventIds);

    /**
     * 删除安灯事件信息
     * 
     * @param eventId 安灯事件主键
     * @return 结果
     */
    public int deleteAndonEventByEventId(Long eventId);

    /**
     * 确认安灯事件
     * 
     * @param eventId 事件ID
     * @param ackBy 确认人
     * @return 结果
     */
    public int acknowledgeEvent(Long eventId, String ackBy);

    /**
     * 开始处理安灯事件
     * 
     * @param eventId 事件ID
     * @param operator 操作人
     * @return 结果
     */
    public int startProcessEvent(Long eventId, String operator);

    /**
     * 完成安灯事件
     * 
     * @param eventId 事件ID
     * @param resolution 解决措施
     * @param operator 操作人
     * @return 结果
     */
    public int completeEvent(Long eventId, String resolution, String operator);

    /**
     * 取消安灯事件
     * 
     * @param eventId 事件ID
     * @param cancelReason 取消原因
     * @param operator 操作人
     * @return 结果
     */
    public int cancelEvent(Long eventId, String cancelReason, String operator);
}
