ZhangYanJie 3 сар өмнө
parent
commit
8f4c6b6769

+ 1 - 1
src/main/java/com/sundata/internalevaluation/calc/calcUnit/DataSetCalcUnit.java

@@ -81,7 +81,7 @@ public class DataSetCalcUnit extends CalcUnit {
         //DataSetConfigService dataSetService = SpringUtil.getBean(DataSetConfigService.class);
         DataSourcesService sourcesService = SpringUtil.getBean(DataSourcesService.class);
         //dataSetService.getDataList(new DataSetConfigModel());
-        List<DataSourcesModel> sourceList =null;
+        List<DataSourcesModel> sourceList = new ArrayList<>();
         for (String s :dataSetConfigModel.getDataSourcesNos()) {
             // sourceModel.setDataSourcesNo();
             DataSourcesModel model = sourcesService.selectDetailData(s);

+ 12 - 2
src/main/java/com/sundata/internalevaluation/calc/calcUnit/IndexCalcUnit.java

@@ -2,9 +2,11 @@ package com.sundata.internalevaluation.calc.calcUnit;
 
 import cn.hutool.extra.spring.SpringUtil;
 import com.sundata.common.util.DBExecutor;
+import com.sundata.common.util.JsonUtil;
 import com.sundata.internalevaluation.calc.model.CalcResult;
 import com.sundata.internalevaluation.calc.model.CalcUnit;
 import com.sundata.internalevaluation.calc.model.finals.CalcType;
+import com.sundata.internalevaluation.conf.JsonToCalciteExample;
 import com.sundata.internalevaluation.configuration.model.DataSetConfigModel;
 import com.sundata.internalevaluation.configuration.model.IndexConfigModel;
 import com.sundata.internalevaluation.configuration.model.IndexSourceModel;
@@ -12,12 +14,14 @@ import com.sundata.internalevaluation.configuration.service.DataSetConfigService
 import com.sundata.internalevaluation.configuration.service.IndexConfigService;
 import com.sundata.internalevaluation.script.ScriptUtil;
 import com.sundata.internalevaluation.script.TemplateUtil;
+import org.apache.calcite.schema.SchemaPlus;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import java.util.ArrayList;
 import java.util.List;
 import java.util.Map;
+import java.util.Set;
 import java.util.concurrent.atomic.AtomicInteger;
 import java.util.concurrent.atomic.AtomicReference;
 import java.util.stream.Collectors;
@@ -186,11 +190,15 @@ public class IndexCalcUnit extends CalcUnit {
         });
 
         if (dataSetNumber.get() > 0 && indexNumber.get() == 0){
+
+            String json = JsonUtil.toJSONString(dataSetResult.get());
+            SchemaPlus tableArea = JsonToCalciteExample.jsonTotable(this.indexConfigModel.getIndexNo(),json);
+            Set<String> tacleSet = tableArea.getSubSchema(this.indexConfigModel.getIndexNo()).getTableNames();
             // 如果数据集的数量大于0
             // 获取指标逻辑
             String logic = indexConfigModel.getIndexLogic();
             // 执行sql,并放进结果集内
-            // JsonToCalciteExample.jsonTotable()
+
             // TODO 计算逻辑
             thisResult.put(this.getCalcCode(),DBExecutor.doQueryMap(logic));
         }
@@ -204,13 +212,15 @@ public class IndexCalcUnit extends CalcUnit {
             thisResult.put(this.getCalcCode(),result);
         }
         if (dataSetNumber.get() > 0 && indexNumber.get() >0) {
+            String json = JsonUtil.toJSONString(dataSetResult.get());
+            SchemaPlus tableArea = JsonToCalciteExample.jsonTotable(this.indexConfigModel.getIndexNo(),json);
             // 同时具有指标和数据集
             // 获取指标逻辑
             String logic = indexConfigModel.getIndexLogic();
             // 先将sql作为一个  进行处理,将指标的结果作为参数带入模板成为一个新模板,后在将数据集的参数带入
 
             String editSql =  TemplateUtil.execute(indexConfigModel.getIndexNo(),logic,indexResult.get());
-            // JsonToCalciteExample.jsonTotable()
+
 
             thisResult.put(this.getCalcCode(),DBExecutor.doQueryMap(editSql));
         }