模型字段取值bugfix
This commit is contained in:
@@ -2,9 +2,11 @@ package com.fibo.ddp.enginex.runner.node.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.fibo.ddp.common.model.datax.datamanage.Field;
|
||||
import com.fibo.ddp.common.model.enginex.risk.EngineNode;
|
||||
import com.fibo.ddp.common.model.strategyx.aimodel.MachineLearningModels;
|
||||
import com.fibo.ddp.common.model.strategyx.strategyout.StrategyOutput;
|
||||
import com.fibo.ddp.common.service.cache.LocalCacheService;
|
||||
import com.fibo.ddp.common.service.datax.runner.CommonService;
|
||||
import com.fibo.ddp.common.service.datax.runner.ExecuteUtils;
|
||||
import com.fibo.ddp.common.service.strategyx.aimodel.ModelsService;
|
||||
@@ -37,6 +39,9 @@ public class ModelNode implements EngineRunnerNode {
|
||||
@Resource
|
||||
private StrategyOutputService outputService;
|
||||
|
||||
@Autowired
|
||||
LocalCacheService localCacheService;
|
||||
|
||||
private List<Long> getExecuteVersionIdList(EngineNode engineNode) {
|
||||
return ExecuteUtils.getExecuteIdList(engineNode, "modelId");
|
||||
}
|
||||
@@ -82,10 +87,19 @@ public class ModelNode implements EngineRunnerNode {
|
||||
|
||||
Map<String, Object> input = new HashMap<>();
|
||||
String[] modelFieldArr = models.getModelField().split(",");
|
||||
// TODO mappingFieldArr 是 字段id t_field.id ,需要根据 id 取出 field_en
|
||||
// mappingFieldArr 是 字段id t_field.id ,需要根据 id 取出 field_en
|
||||
String[] mappingFieldArr = models.getMappingField().split(",");
|
||||
|
||||
// 获取字段缓存信息
|
||||
Map<String, Field> fieldMap = localCacheService.getFieldsMap();
|
||||
|
||||
for (int i = 0; i < modelFieldArr.length; i++) {
|
||||
input.put(modelFieldArr[i], inputParam.get(mappingFieldArr[i]));
|
||||
String fieldId = mappingFieldArr[i];
|
||||
// 根据字段id 获取字段英文名
|
||||
String fieldEn = getFieldEnById(fieldMap,fieldId);
|
||||
if(fieldEn!=null) {
|
||||
input.put(modelFieldArr[i], inputParam.get(fieldEn));
|
||||
}
|
||||
}
|
||||
// 调用模型
|
||||
double modelResult = 0d;
|
||||
@@ -126,4 +140,17 @@ public class ModelNode implements EngineRunnerNode {
|
||||
map.put(resultKey, executeResult);
|
||||
ExecuteUtils.terminalCondition(engineNode, inputParam, outMap, map);
|
||||
}
|
||||
|
||||
|
||||
// 根据字段id 获取字段英文名
|
||||
private static String getFieldEnById(Map<String, Field> fieldMap,String id){
|
||||
if(fieldMap==null || id==null){
|
||||
return null;
|
||||
}
|
||||
Field f = fieldMap.get(id);
|
||||
if(f==null){
|
||||
return null;
|
||||
}
|
||||
return f.getFieldEn();
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user