|
@@ -1,5 +1,7 @@
|
|
|
package com.sundata.internalevaluation.calc.calcUnit;
|
|
|
|
|
|
+import cn.hutool.extra.spring.SpringUtil;
|
|
|
+import com.sundata.common.util.DBExecutor;
|
|
|
import com.sundata.internalevaluation.calc.model.CalcResult;
|
|
|
import com.sundata.internalevaluation.calc.model.CalcUnit;
|
|
|
import com.sundata.internalevaluation.calc.model.finals.CalcType;
|
|
@@ -20,11 +22,8 @@ import java.util.stream.Collectors;
|
|
|
|
|
|
public class DataSourcesCalcUnit extends CalcUnit {
|
|
|
|
|
|
- DataSourcesService dataSourcesService;
|
|
|
-
|
|
|
final DataSourcesModel dataSourcesModel;
|
|
|
|
|
|
-
|
|
|
/**
|
|
|
/**
|
|
|
* 创建数据单元的绝对对象,对象必须包含如下参数
|
|
@@ -35,12 +34,9 @@ public class DataSourcesCalcUnit extends CalcUnit {
|
|
|
* @param initContext 计算单元初始化参数
|
|
|
*/
|
|
|
public DataSourcesCalcUnit(String calcCode, String calcName,CalcType calcType, Map<String, Object> initContext,
|
|
|
- DataSourcesModel dataSourcesModel, DataSourcesService dataSourcesService) {
|
|
|
+ DataSourcesModel dataSourcesModel) {
|
|
|
super(calcCode, calcName, calcType, initContext);
|
|
|
-
|
|
|
- // this.dataItemConfigModel = dataItemConfigModel;
|
|
|
this.dataSourcesModel = dataSourcesModel;
|
|
|
- this.dataSourcesService= dataSourcesService;
|
|
|
|
|
|
}
|
|
|
|
|
@@ -75,15 +71,19 @@ public class DataSourcesCalcUnit extends CalcUnit {
|
|
|
*/
|
|
|
@Override
|
|
|
public List<CalcUnit> getSourceCalcUnits() {
|
|
|
-
|
|
|
+ // 通过bean获取对象
|
|
|
+ DataSourcesService sourcesService = SpringUtil.getBean("DataSourcesService");
|
|
|
// 取得个配置信息
|
|
|
- List<DataSourcesModel> dataList = dataSourcesService.getDataList(new DataSourcesModel());
|
|
|
- for (DataSourcesModel model : dataList) {
|
|
|
- List<CalcUnit> inputList = model.getInputParam().stream().map(inputParam ->
|
|
|
+ List<DataSourcesModel> dataList = sourcesService.getDataList(new DataSourcesModel());
|
|
|
+ //for (DataSourcesModel model : dataList) {
|
|
|
+ List<CalcUnit> inputList = dataSourcesModel.getInputParam().stream().map(inputParam ->
|
|
|
new InputParamCalcUnit(inputParam.getParamNo(),inputParam.getParamName(),CalcType.INPUTPARAM,Map.of(),inputParam)).collect(Collectors.toList());
|
|
|
- List<CalcUnit> queryList = model.getQueryLogic().stream().map(queryParam -> new QueryLogicCalcUnit(queryParam.getQueryLogicNo(),queryParam.getScriptDescription(),CalcType.QUERYLOGIC,Map.of(),queryParam)).collect(Collectors.toList());;
|
|
|
-
|
|
|
- }
|
|
|
+ List<CalcUnit> queryList = dataSourcesModel.getQueryLogic().stream().map(queryParam -> new QueryLogicCalcUnit(queryParam.getQueryLogicNo(),queryParam.getScriptDescription(),CalcType.QUERYLOGIC,Map.of(),queryParam)).collect(Collectors.toList());;
|
|
|
+ List<CalcUnit> itemList = dataSourcesModel.getDataItemConfig().stream().map(itemParam -> new DataItemCalcUnit(itemParam.getDataItemNo(),itemParam.getDataItemName(),CalcType.DATAITEM,Map.of(),itemParam)).collect(Collectors.toList());
|
|
|
+ //}
|
|
|
+ inputList.addAll(queryList);
|
|
|
+ inputList.addAll(itemList);
|
|
|
+ // return inputList;
|
|
|
// return dataList.stream().map(sourceModel -> new DataSourcesCalcUnit(sourceModel.getDataSourcesNo(),
|
|
|
// sourceModel.getDataSourcesName(),CalcType.DATASOURCES,Map.of(),sourceModel)).collect(Collectors.toList());
|
|
|
return List.of();
|
|
@@ -120,20 +120,24 @@ public class DataSourcesCalcUnit extends CalcUnit {
|
|
|
@Override
|
|
|
public void calc(CalcResult<String, Object> thisResult, String calculateInstanceNumber, Map<String, Object> context, Map<CalcUnit, CalcResult<String, Object>> sourceResults) {
|
|
|
|
|
|
-
|
|
|
- if (dataSourcesModel.getDataSourcesType().equals("1")) {
|
|
|
- // 数据来源类型为接口时处理逻辑
|
|
|
- } else if (dataSourcesModel.getDataSourcesType().equals("2")) {
|
|
|
- // 数据来源类型为jdbc时处理逻辑
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
+ sourceResults.forEach((calcUnit,result)->{
|
|
|
+ if (dataSourcesModel.getDataSourcesType().equals("interface")) {
|
|
|
+ // 数据来源类型为接口时处理逻辑
|
|
|
+ if (calcUnit instanceof QueryLogicCalcUnit queryLogicCalcUnit) {
|
|
|
+ String sql = queryLogicCalcUnit.queryLogicModel.getSelectSqlScript();
|
|
|
+ thisResult.put(this.getCalcCode(), DBExecutor.doQueryMap(sql));
|
|
|
+ }
|
|
|
+ } else if (dataSourcesModel.getDataSourcesType().equals("jdbc")) {
|
|
|
+ // 数据来源类型为jdbc时处理逻辑
|
|
|
+ if (calcUnit instanceof QueryLogicCalcUnit queryLogicCalcUnit) {
|
|
|
+ String sql = queryLogicCalcUnit.queryLogicModel.getSelectSqlScript();
|
|
|
+ thisResult.put(this.getCalcCode(), DBExecutor.doQueryMap(sql));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ });
|
|
|
// 调用所有源头节点
|
|
|
List<CalcUnit> unitList = this.getSourceCalcUnits();
|
|
|
|
|
|
- for (CalcUnit unit : unitList) {
|
|
|
-
|
|
|
- }
|
|
|
|
|
|
sourceResults.forEach((a,b)->{
|
|
|
if (a.getCalcCode().equals("")) {
|