package com.estate.expert.admin.service.model; import com.estate.expert.admin.domain.business.device.DeviceType; import com.estate.expert.admin.domain.common.request.PageReq; import com.estate.expert.admin.domain.common.response.PageResp; import com.estate.expert.admin.domain.standard.hierachy.HierarchyData; import com.estate.expert.admin.domain.standard.model.Model; import com.estate.expert.admin.domain.standard.model.device.DeviceModel; import com.estate.expert.admin.domain.standard.model.device.DeviceModelDto; import com.estate.expert.admin.domain.standard.problem.Problem; import com.estate.expert.admin.domain.user.User; import com.estate.expert.admin.service.common.CrudServiceBase; import com.estate.expert.admin.utils.tree.TreeRoot; import java.util.List; /** * 设备模型服务 * * 由于设备模型的特殊性,需要单独处理 */ public interface DeviceModelService extends CrudServiceBase { /** * 列表 * @param keyword 关键字 * @param pageReq 分页请求 * @return 列表 */ PageResp list(String keyword, PageReq pageReq); /// 拷贝操作后,需要将原始模型和拷贝模型进行关联 /** * 拷贝模型 * @param user 用户 * @param id 模型ID * @return 拷贝模型 */ DeviceModel copy(User user, Integer id); /** * 发布模型 * @param user 用户 * @param id 模型ID */ void publish(User user, Integer id); /** * 设置模型启用 * @param user 用户 * @param modelId 模型ID * @param enable 是否启用 */ void setEnable(User user, Integer modelId, boolean enable); /** * 找到祖先模型 */ /** * 获取启用模型 * @return 启用模型 */ List findActiveModels(); /** * 默认模型 * @return 默认模型 */ DeviceModel getDefaultModel(); /** * 创建默认模型 */ void createDefaultModel(); //// 层级数据 //// /** * 获取层级树 * @param model 模型 * @return 层级树 */ TreeRoot getHierarchyTree(Model model); /** * 获取模型问题ID列表 * @param model 模型 * @param deviceType 设备类型 * @return 模型问题ID列表 */ List getProblemIds(Model model, DeviceType deviceType); /** * 获取模型问题列表 * @param model 模型 * @param hierarchyPath 层级路径 * @return 模型问题列表 */ List listProblems(Model model, String hierarchyPath); /** * 处理体系变化的通知 * @param hierarchyId 层级ID */ void notifyHierarchyChange(Integer hierarchyId); }