|
|
@ -2,10 +2,14 @@ package io.sc.engine.rule.server.model.service.impl; |
|
|
|
|
|
|
|
import io.sc.engine.rule.core.enums.DictionaryType; |
|
|
|
import io.sc.engine.rule.core.enums.ParameterType; |
|
|
|
import io.sc.engine.rule.core.enums.ReplaceMode; |
|
|
|
import io.sc.engine.rule.core.po.lib.Indicator; |
|
|
|
import io.sc.engine.rule.core.util.CodeConvertor; |
|
|
|
import io.sc.engine.rule.core.util.ExpressionReplacer; |
|
|
|
import io.sc.engine.rule.core.util.ValueTypeUtil; |
|
|
|
import io.sc.engine.rule.server.common.service.ParameterAndValueTypeService; |
|
|
|
import io.sc.engine.rule.server.common.service.support.ParameterAndValueType; |
|
|
|
import io.sc.engine.rule.server.common.util.VariableCodeAndNameReplacer; |
|
|
|
import io.sc.engine.rule.server.dictionary.entity.DictionaryEntity; |
|
|
|
import io.sc.engine.rule.server.dictionary.entity.UserDefinedJavaClassDictionaryEntity; |
|
|
|
import io.sc.engine.rule.server.dictionary.entity.UserDefinedJavaClassFieldEntity; |
|
|
@ -62,6 +66,7 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String |
|
|
|
@Autowired private LibService libService; |
|
|
|
@Autowired private ParameterProcessorService parameterProcessorService; |
|
|
|
@Autowired private NamedParameterJdbcTemplate namedParameterJdbcTemplate; |
|
|
|
@Autowired private ParameterAndValueTypeService parameterAndValueTypeService; |
|
|
|
|
|
|
|
@Override |
|
|
|
public List<ParameterEntity> findParametersByModelId(String modelId) throws Exception { |
|
|
@ -156,7 +161,7 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String |
|
|
|
if(rootModelEntity==null) { |
|
|
|
throw new RootModelEntityNotExistsException(); |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
List<ParameterEntity> parameters =modelService.getAllParameters(rootModelEntity.getId()); |
|
|
|
if(parameters!=null && parameters.size()>0) { |
|
|
|
for(ParameterEntity parameter : parameters) { |
|
|
@ -165,7 +170,12 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//获取代码和名称的映射表
|
|
|
|
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findInParameterByResourceId(rootModelEntity.getResource().getId(),Locale.getDefault()); |
|
|
|
//将名称替换为代码
|
|
|
|
VariableCodeAndNameReplacer.replace(entity, parameterAndValueType,ReplaceMode.NAME_TO_CODE); |
|
|
|
|
|
|
|
Integer nextOrder =repository.getNextOrder(entity.getModel().getId()); |
|
|
|
entity.setOrder(nextOrder==null?1:nextOrder); |
|
|
|
|
|
|
@ -173,8 +183,15 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String |
|
|
|
|
|
|
|
//通知其他实体进行相应的更新
|
|
|
|
applicationContext.publishEvent(new ParameterEntityChangedEvent(EntityChangedEventType.UPDATE,null, newEntity)); |
|
|
|
|
|
|
|
//由于数据库中存储的是参数的代码,而界面显示的是参数的名称,为了能上新增的实体能够在界面正确显示名称,需要进行代码到名称的替换
|
|
|
|
if (newEntity != null) { |
|
|
|
ParameterEntity clone = (ParameterEntity) newEntity.deepClone(); |
|
|
|
VariableCodeAndNameReplacer.replace(clone, parameterAndValueType, ReplaceMode.CODE_TO_NAME); |
|
|
|
return clone; |
|
|
|
} |
|
|
|
|
|
|
|
return newEntity; |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -247,8 +264,20 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String |
|
|
|
ParameterEntity oldEntity =findById(primaryKey); |
|
|
|
applicationContext.publishEvent(new ParameterEntityChangedEvent(EntityChangedEventType.UPDATE,oldEntity, entity)); |
|
|
|
|
|
|
|
//获取代码和名称的映射表
|
|
|
|
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findInParameterByResourceId(rootModelEntity.getResource().getId(),Locale.getDefault()); |
|
|
|
//将名称替换为代码
|
|
|
|
VariableCodeAndNameReplacer.replace(entity, parameterAndValueType, ReplaceMode.NAME_TO_CODE); |
|
|
|
|
|
|
|
//更新参数实体
|
|
|
|
return super.update(primaryKey, entity); |
|
|
|
ParameterEntity updated =super.update(primaryKey, entity); |
|
|
|
//由于数据库中存储的是参数的代码,而界面显示的是参数的名称,为了能上修改的实体能够在界面正确显示名称,需要进行代码到名称的替换
|
|
|
|
if (updated != null) { |
|
|
|
ParameterEntity clone = (ParameterEntity) updated.deepClone(); |
|
|
|
VariableCodeAndNameReplacer.replace(clone, parameterAndValueType,ReplaceMode.CODE_TO_NAME); |
|
|
|
return clone; |
|
|
|
} |
|
|
|
return null; |
|
|
|
} |
|
|
|
|
|
|
|
@Override |
|
|
|