提交 a6737d1a 编写于 作者: tangyaolong's avatar tangyaolong

修改导出模型逻辑bug

上级 85fc6e0d
......@@ -265,8 +265,10 @@ public class MetaModelExService extends MetaModelServiceImpl {
LinkedHashSet<String> entities = new LinkedHashSet<>();
List<DstDataSource> dataSources = new ArrayList<>();
// 查询模型
MetaModel metaModel = metaModelService.get(modelId);
// 查询模型下的N个规则
List<RuleItem> ruleItems = ruleItemService.selectByModelId(et.getId());
List<RuleItem> ruleItems = ruleItemService.selectByModelId(modelId);
if(!ObjectUtils.isEmpty(ruleItems)){
for (RuleItem ruleItem : ruleItems) {
JSONObject fieldSet = JSONObject.parseObject(ruleItem.getFieldSet());
......@@ -280,7 +282,7 @@ public class MetaModelExService extends MetaModelServiceImpl {
}
}
// 查询模型下的N个构建
List<DABuild> daBuilds = dabuildService.selectByModelId(et.getId());
List<DABuild> daBuilds = dabuildService.selectByModelId(modelId);
List<String> daBuildIds = daBuilds.stream().map(DABuild::getBuildId).collect(Collectors.toList());
// 查询构建下关联的N个指标
......@@ -307,14 +309,14 @@ public class MetaModelExService extends MetaModelServiceImpl {
JSONObject fieldSet = JSON.parseObject(metric.getFieldSet());
for (String entityName : fieldSet.keySet()) {
if (entityName.endsWith("entity")) {
entities.add(entityName);
entities.add(fieldSet.get(entityName).toString());
}
}
}
metrics.addAll(daMetrics.getContent());
}
// 用到的数据源和系统
List<EntityModel> entityModels = getEntityModel(modelId);
LinkedHashSet<EntityModel> entityModels = getEntityModel(modelId,metaModel.getSystemId(),entities);
LinkedHashSet masterDsName = new LinkedHashSet();
for (EntityModel entityModel : entityModels) {
masterDsName.add(entityModel.getDsName());
......@@ -324,7 +326,7 @@ public class MetaModelExService extends MetaModelServiceImpl {
}
// 查询数据源
if(masterDsName.size()>0){
if(masterDsName.size() > 0){
DstDataSourceSearchContext dstDataSourceSearchContext = new DstDataSourceSearchContext();
dstDataSourceSearchContext.setN_dsid_in(Joiner.on(";").join(masterDsName));
dstDataSourceSearchContext.setSize(entityModels.size());
......@@ -332,8 +334,8 @@ public class MetaModelExService extends MetaModelServiceImpl {
dataSources.addAll(dstDataSources.getContent());
}
models.setMetrics(metrics);
models.setMetaModel(et);
models.setEntityModels(entityModels);
models.setMetaModel(metaModel);
models.setEntityModels(new ArrayList<>(entityModels));
models.setDaBuilds(daBuilds);
models.setRuleItems(ruleItems);
models.setDataSources(dataSources);
......@@ -342,17 +344,28 @@ public class MetaModelExService extends MetaModelServiceImpl {
}
/**
* 传入一组实体模型名和模型id来返回实体模型集合
* 传入一组模型id,系统id,来返回实体模型集合
* @param modelId 模型id
* @return 实体模型集合
*/
private List<EntityModel> getEntityModel(String modelId) {
List<EntityModel> entityModels = new ArrayList<>();
private LinkedHashSet<EntityModel> getEntityModel(String modelId,String systemId,LinkedHashSet<String> entityIds) {
LinkedHashSet<EntityModel> entityModels = new LinkedHashSet<>();
DataModel dataModel = liteModelService.getDataModel(modelId);
// 查询出模型父子级用到的实体关系
dataModel.getAllProperty().forEach(property -> {
EntityModel model = liteModelService.getEntityModel(property.getSystem(),property.getPropertyEntity());
entityModels.add(model);
});
// 查询出维度和指标使用到的实体关系
if(systemId != null){
for (String entityId : entityIds) {
if(!"".equals(entityId)){
EntityModel model = liteModelService.getProxyEntityModel(systemId,entityId);
entityModels.add(model);
}
}
}
List<Property> parents = dataModel.getParentProperty();
LinkedHashSet<DataModel> childs = dataModel.getNestedDataModels();
for(Property parent : parents){
......
Markdown 格式
0% or
您添加了 0 到此讨论。请谨慎行事。
先完成此消息的编辑!
想要评论请 注册