package com.mes.device.service; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.mes.device.entity.DeviceGroupConfig; import com.mes.device.vo.DeviceGroupConfigVO; import com.mes.device.vo.DeviceGroupVO; import com.mes.device.vo.StatisticsVO; import org.springframework.stereotype.Service; /** * 设备组配置服务接口 */ @Service public interface DeviceGroupConfigService extends IService { /** * 创建设备组配置 * @param groupConfig 设备组配置信息 * @return 是否创建成功 */ boolean createDeviceGroup(DeviceGroupConfig groupConfig); /** * 更新设备组配置 * @param groupConfig 设备组配置信息 * @return 是否更新成功 */ boolean updateDeviceGroup(DeviceGroupConfig groupConfig); /** * 删除设备组配置 * @param id 设备组ID * @return 是否删除成功 */ boolean deleteDeviceGroup(Long id); /** * 查询设备组配置详情 * @param id 设备组ID * @return 设备组配置信息 */ DeviceGroupConfig getDeviceGroupById(Long id); /** * 根据设备组编号查询设备组配置 * @param groupCode 设备组编号 * @return 设备组配置信息 */ DeviceGroupConfig getDeviceGroupByCode(String groupCode); /** * 查询设备组配置列表 * @param projectId 项目ID * @param groupType 设备组类型 * @param status 设备组状态 * @return 设备组配置列表 */ java.util.List getDeviceGroupList(Long projectId, Integer groupType, Integer status); /** * 分页查询设备组配置列表 * @param projectId 项目ID * @param groupType 设备组类型 * @param groupStatus 设备组状态 * @param keyword 搜索关键词 * @param page 页码 * @param size 每页大小 * @return 设备组分页列表 */ Page getDeviceGroupList( Long projectId, String groupType, String groupStatus, String keyword, Integer page, Integer size); /** * 查询设备组配置VO列表 * @param projectId 项目ID * @param groupType 设备组类型 * @param status 设备组状态 * @return 设备组配置VO列表 */ java.util.List getDeviceGroupVOList(Long projectId, Integer groupType, Integer status); /** * 检查设备组编号是否存在 * @param groupCode 设备组编号 * @param excludeId 排除的设备组ID * @return 是否存在 */ boolean isGroupCodeExists(String groupCode, Long excludeId); /** * 更新设备组状态 * @param id 设备组ID * @param status 新状态 * @return 是否更新成功 */ boolean updateDeviceGroupStatus(Long id, Integer status); /** * 批量更新设备组状态 * @param ids 设备组ID列表 * @param status 新状态 * @return 是否更新成功 */ boolean batchUpdateDeviceGroupStatus(java.util.List ids, Integer status); /** * 获取设备组的扩展配置 * @param id 设备组ID * @return 扩展配置字典 */ java.util.Map getExtraConfig(Long id); /** * 更新设备组的扩展配置 * @param id 设备组ID * @param extraConfig 扩展配置字典 * @return 是否更新成功 */ boolean updateExtraConfig(Long id, java.util.Map extraConfig); /** * 获取设备组下的设备数量 * @param groupId 设备组ID * @return 设备数量 */ int getDeviceCountByGroupId(Long groupId); /** * 获取在线设备组数量 * @param projectId 项目ID * @return 在线设备组数量 */ int getOnlineDeviceGroupCount(Long projectId); /** * 获取设备组统计信息 * @param projectId 项目ID * @return 设备组统计信息 */ StatisticsVO.GroupStatistics getDeviceGroupStatistics(Long projectId); /** * 获取设备组性能统计 * @param groupId 设备组ID * @return 设备组性能统计信息 */ DeviceGroupVO.PerformanceStats getGroupPerformance(Long groupId); /** * 执行设备组健康检查 * @param groupId 设备组ID * @return 健康检查结果 */ DeviceGroupVO.HealthCheckResult performGroupHealthCheck(Long groupId); /** * 启用设备组 * @param id 设备组ID * @return 是否启用成功 */ boolean enableDeviceGroup(Long id); /** * 禁用设备组 * @param id 设备组ID * @return 是否禁用成功 */ boolean disableDeviceGroup(Long id); /** * 批量启用设备组 * @param groupIds 设备组ID列表 * @return 是否启用成功 */ boolean batchEnableDeviceGroups(java.util.List groupIds); /** * 批量禁用设备组 * @param groupIds 设备组ID列表 * @return 是否禁用成功 */ boolean batchDisableDeviceGroups(java.util.List groupIds); /** * 获取所有设备组类型 * @return 设备组类型列表 */ java.util.List getAllGroupTypes(); /** * 获取所有设备组状态 * @return 设备组状态列表 */ java.util.List getAllGroupStatuses(); }