package com.aucma.dms.mapper;

//import com.aucma.dms.domain.DmsBaseDeviceLedger;

import com.aucma.dms.domain.DmsBaseDeviceLedger;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * 设备台账信息Mapper接口
 *
 * @author xins
 * @date 2023-12-28
 */
public interface DmsBaseDeviceLedgerMapper
{
    /**
     * 查询设备台账信息
     *
     * @param deviceId 设备台账信息主键
     * @return 设备台账信息
     */
    public DmsBaseDeviceLedger selectDmsBaseDeviceLedgerByDeviceId(@Param("deviceId") Long deviceId);

    /**
     * 查询设备台账信息列表
     *
     * @param dmsBaseDeviceLedger 设备台账信息
     * @return 设备台账信息集合
     */
    public List<DmsBaseDeviceLedger> selectDmsBaseDeviceLedgerList(DmsBaseDeviceLedger dmsBaseDeviceLedger);

    /**
     * 新增设备台账信息
     *
     * @param dmsBaseDeviceLedger 设备台账信息
     * @return 结果
     */
    public int insertDmsBaseDeviceLedger(DmsBaseDeviceLedger dmsBaseDeviceLedger);

    /**
     * 修改设备台账信息
     *
     * @param dmsBaseDeviceLedger 设备台账信息
     * @return 结果
     */
    public int updateDmsBaseDeviceLedger(DmsBaseDeviceLedger dmsBaseDeviceLedger);

    /**
     * 删除设备台账信息
     *
     * @param deviceId 设备台账信息主键
     * @return 结果
     */
    public int deleteDmsBaseDeviceLedgerByDeviceId(@Param("deviceId") Long deviceId);

    /**
     * 批量删除设备台账信息
     *
     * @param deviceIds 需要删除的数据主键集合
     * @return 结果
     */
    public int deleteDmsBaseDeviceLedgerByDeviceIds(@Param("deviceIds") Long[] deviceIds);



    /**
     * 查询设备台账信息
     *
     * @param deviceCode 设备CODE
     * @return 设备台账信息
     */
    public DmsBaseDeviceLedger selectDmsBaseDeviceLedgerByDeviceCode(@Param("deviceCode") String deviceCode);

    List<DmsBaseDeviceLedger> likeDeviceName(@Param("deviceName") String deviceName);

    /**
     * 统计设备列表中状态不正常的设备数量
     * @param deviceIds 设备ID列表
     * @param normalStatus 正常状态值（0=使用）
     * @return 异常设备数量
     */
    int countAbnormalDevices(@Param("deviceIds") List<Long> deviceIds, @Param("normalStatus") Long normalStatus);
}
