package com.persagy.adm.server.algorithm.service;

import com.fasterxml.jackson.databind.node.ObjectNode;
import com.persagy.adm.server.algorithm.entity.AdmModelFile;
import com.persagy.dmp.delivery.entity.ObjectTypeCollect;
import com.persagy.dmp.digital.entity.ObjectDigital;

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

/**
 * 模型文件的逻辑处理接口
 * @author : lijie
 * Update By 2022/1/12 14:06
 */
public interface AdmModelService {
    /**
     * 查询项目下的所有建筑楼层
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>
     * @author : lijie
     * Update By 2022/1/19 10:04
     */
    List<ObjectDigital> queryBuildFloorsByProjectId();
    /**
     * 根据楼层id集合查询当前的模型文件信息
     * @param floorIds : 楼层id集合
     * @return : java.util.Map<java.lang.String,com.persagy.adm.server.algorithm.entity.AdmModelFile>  
     * @author : lijie
     * Update By 2022/1/19 14:34
     */
    Map<String, AdmModelFile> queryCurrentModelFileByFloorIds(List<String> floorIds);
    /**
     * 新增模型文件
     * @param modelFile : 模型文件信息
     * return : void
     * @author : lijie
     * Update By 2022/1/19 17:54
     */
    void saveModelFile(AdmModelFile modelFile);
    /**
     * 根据正逆向交付查询对象类型交付范围
     * @param deliveryWay : 正逆向交付方式,0-逆向,1-正向
     * @return : java.util.List<com.persagy.dmp.delivery.dto.ObjectTypeCollectDTO>
     * @author : lijie
     * Update By 2022/1/20 18:26
     */
    List<ObjectTypeCollect> queryObjectTypeCollectByDeliveryWay(Integer deliveryWay);
    /**
     * 根据集团编码和楼层id列表查询楼层信息
     * @param groupCode : 集团编码
     * @param floorIds : 楼层id集合
     * @return : java.util.List<com.persagy.dmp.digital.entity.ObjectDigital>
     * @author : lijie
     * Update By 2022/1/21 17:22
     */
    List<ObjectDigital> queryFloorsByGroupCodeAndIds(String groupCode, Set<String> floorIds);
    /**
     * 根据bimIdPre查询物理世界对象
     * @param bimIdPre : bimIdPre
     * @param groupCode : 集团编码
     * @return : java.util.Map<java.lang.String,com.fasterxml.jackson.databind.node.ObjectNode>
     * @author : lijie
     * Update By 2022/1/22 13:48
     */
    Map<String, ObjectNode> queryObjectDigitalsByBimIdPre(String groupCode,String bimIdPre);
}
