Browse Source

基础框架发布: 8.2.20

1) 规则引擎中,增加模型或子模型类型"定量(输入)"
  2) 规则引擎中,增加参数设置 showIf 参数
  3)规则引擎中,修改定性选项补录项的条件表达式,采用 Code 存储
main
wangshaoping 3 days ago
parent
commit
be95eb621a
  1. 2
      cips.frontend/package.json
  2. 2
      erm.frontend/package.json
  3. 2
      gradle.properties
  4. 2
      io.sc.engine.mv.frontend/package.json
  5. 11
      io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/enums/ModelCategory.java
  6. 7
      io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/Parameter.java
  7. 1
      io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/parameter/InOptionParameter.java
  8. 1
      io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums.properties
  9. 1
      io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums_tw_CN.properties
  10. 1
      io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums_zh_CN.properties
  11. 2
      io.sc.engine.rule.frontend/package.json
  12. 1
      io.sc.engine.rule.frontend/src/i18n/messages.json
  13. 1
      io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json
  14. 1
      io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json
  15. 42
      io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue
  16. 5
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/controller/ParameterAndValueTypeWebController.java
  17. 1
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/ParameterAndValueTypeService.java
  18. 34
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/impl/ParameterAndValueTypeServiceImpl.java
  19. 23
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/controller/ParameterWebController.java
  20. 1
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterEntityConverter.java
  21. 45
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterEntity.java
  22. 31
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterInOptionAdditionEntity.java
  23. 43
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterInOptionAdditionServiceImpl.java
  24. 37
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterServiceImpl.java
  25. 11
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/ParameterVo.java
  26. 1
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/parameter/InOptionParameterVo.java
  27. 1
      io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml
  28. 2
      io.sc.engine.st.frontend/package.json
  29. 2
      io.sc.platform.ai.frontend/package.json
  30. 2
      io.sc.platform.developer.doc/package.json
  31. 2
      io.sc.platform.developer.frontend/package.json
  32. 2
      io.sc.platform.lcdp.frontend/package.json
  33. 2
      io.sc.platform.license.keygen.frontend/package.json
  34. 2
      io.sc.platform.mvc.frontend/package.json
  35. 2
      io.sc.platform.scheduler.manager.frontend/package.json
  36. 2
      io.sc.platform.system.frontend/package.json
  37. 2
      io.sc.standard.frontend/package.json
  38. 2
      io.sc.website/package.json
  39. 2
      wra.report.frontend/package.json

2
cips.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "cips.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
erm.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "erm.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
gradle.properties

@ -37,7 +37,7 @@ application_version=1.0.0
# platform
###########################################################
platform_group=io.sc
platform_version=8.2.19
platform_version=8.2.20
platform_plugin_version=8.2.10
platform_core_frontend_version=8.2.82

2
io.sc.engine.mv.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.engine.mv.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

11
io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/enums/ModelCategory.java

@ -4,9 +4,10 @@ package io.sc.engine.rule.core.enums;
* 模型分类
*/
public enum ModelCategory {
QUANTITATIVE, //定量模型
QUALITATIVE, //定性模型
ADJUSTMENT, //调整项模型
RULE, //规则
OTHER //其他模型
QUANTITATIVE, //定量模型
QUANTITATIVE_INPUT, // 定量模型(输入)
QUALITATIVE, //定性模型
ADJUSTMENT, //调整项模型
RULE, //规则
OTHER //其他模型
}

7
io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/Parameter.java

@ -32,6 +32,7 @@ public abstract class Parameter {
protected Boolean valueTypeIsList;//参数值类型是否是列表
protected String defaultValue;//默认值
protected Integer order;//排序
protected String showIf;//显示条件
protected List<ParameterValidator> validators =new ArrayList<>();//包含的验证器
protected List<ParameterProcessor> processors =new ArrayList<>();//包含的处理器
@ -104,6 +105,12 @@ public abstract class Parameter {
public void setOrder(Integer order) {
this.order = order;
}
public String getShowIf() {
return showIf;
}
public void setShowIf(String showIf) {
this.showIf = showIf;
}
public List<ParameterValidator> getValidators() {
return validators;
}

1
io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/parameter/InOptionParameter.java

@ -23,7 +23,6 @@ public class InOptionParameter extends Parameter {
//不录项列表
protected List<ParameterInOptionAddtion> additons =new ArrayList<>();
@Override
public ParameterType getType() {
return ParameterType.IN_OPTION;

1
io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums.properties

@ -9,6 +9,7 @@ io.sc.engine.rule.core.enums.ResourceType.SCORE_CARD=Score Card
# \u6A21\u578B\u5206\u7C7B\u679A\u4E3E
#================================================
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE=Quantitative
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE_INPUT=Quantitative(Input)
io.sc.engine.rule.core.enums.ModelCategory.QUALITATIVE=Qualitative
io.sc.engine.rule.core.enums.ModelCategory.ADJUSTMENT=Adjustment
io.sc.engine.rule.core.enums.ModelCategory.RULE=Rule

1
io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums_tw_CN.properties

@ -9,6 +9,7 @@ io.sc.engine.rule.core.enums.ResourceType.SCORE_CARD=\u8A55\u5206\u5361
# \u6A21\u578B\u5206\u7C7B\u679A\u4E3E
#================================================
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE=\u5B9A\u91CF
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE_INPUT=\u5B9A\u91CF(\u8F38\u5165)
io.sc.engine.rule.core.enums.ModelCategory.QUALITATIVE=\u5B9A\u6027
io.sc.engine.rule.core.enums.ModelCategory.ADJUSTMENT=\u8ABF\u6574\u9805
io.sc.engine.rule.core.enums.ModelCategory.RULE=\u898F\u5247

1
io.sc.engine.rule.core/src/main/resources/io/sc/engine/rule/core/i18n/enums_zh_CN.properties

@ -9,6 +9,7 @@ io.sc.engine.rule.core.enums.ResourceType.SCORE_CARD=\u8BC4\u5206\u5361
# \u6A21\u578B\u5206\u7C7B\u679A\u4E3E
#================================================
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE=\u5B9A\u91CF
io.sc.engine.rule.core.enums.ModelCategory.QUANTITATIVE_INPUT=\u5B9A\u91CF(\u8F93\u5165)
io.sc.engine.rule.core.enums.ModelCategory.QUALITATIVE=\u5B9A\u6027
io.sc.engine.rule.core.enums.ModelCategory.ADJUSTMENT=\u8C03\u6574\u9879
io.sc.engine.rule.core.enums.ModelCategory.RULE=\u89C4\u5219

2
io.sc.engine.rule.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.engine.rule.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

1
io.sc.engine.rule.frontend/src/i18n/messages.json

@ -76,6 +76,7 @@
"re.parameter.grid.entity.libCode": "Library",
"re.parameter.grid.entity.libVersion": "Library Version",
"re.parameter.grid.entity.indicatorCode": "Indicator",
"re.parameter.grid.entity.showIf": "Show If",
"re.parameter.tip.indicatorParameterCanNotEditable": "Indicator parameter can NOT editable!",
"re.parameter.tip.subModelParameterCanNotEditable": "Sub model parameter can NOT editable!",

1
io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json

@ -76,6 +76,7 @@
"re.parameter.grid.entity.libCode": "指標庫",
"re.parameter.grid.entity.libVersion": "指標庫版本",
"re.parameter.grid.entity.indicatorCode": "指標",
"re.parameter.grid.entity.showIf": "前端顯示條件",
"re.parameter.tip.indicatorParameterCanNotEditable": "類型為指標的參數不能進行編輯!",
"re.parameter.tip.subModelParameterCanNotEditable": "子模型參數不能進行編輯!",

1
io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json

@ -76,6 +76,7 @@
"re.parameter.grid.entity.libCode": "指标库",
"re.parameter.grid.entity.libVersion": "指标库版本",
"re.parameter.grid.entity.indicatorCode": "指标",
"re.parameter.grid.entity.showIf": "前端显示条件",
"re.parameter.tip.indicatorParameterCanNotEditable": "类型为指标的参数不能进行编辑!",
"re.parameter.tip.subModelParameterCanNotEditable": "子模型参数不能进行编辑!",

42
io.sc.engine.rule.frontend/src/views/resources/designer/Parameter.vue

@ -127,7 +127,8 @@
{
extend: 'edit',
enableIf: (args: any) => {
return !readOnly && args.selected && args.selected.type !== 'INDICATOR' && args.selected.type !== 'IN_SUB_OUT';
return !readOnly && args.selected && args.selected.type !== 'IN_SUB_OUT';
//return !readOnly && args.selected && args.selected.type !== 'INDICATOR' && args.selected.type !== 'IN_SUB_OUT';
},
disableTip: (args: any) => {
const row = args.selected;
@ -193,11 +194,42 @@
options: EngineEnums.ParameterType.options,
'onUpdate:modelValue': (value) => {},
},
{ name: 'code', label: $t('code'), type: 'w-text' },
{ name: 'name', label: $t('name'), type: 'w-text', requiredIf: true },
{
name: 'code',
label: $t('code'),
type: 'w-text',
readOnlyIf: (args: any) => {
return 'INDICATOR' === args.form.getFieldValue('type');
},
},
{
name: 'name',
label: $t('name'),
type: 'w-text',
requiredIf: true,
readOnlyIf: (args: any) => {
return 'INDICATOR' === args.form.getFieldValue('type');
},
},
{ name: 'description', label: $t('description'), type: 'w-text' },
...valueTypeManager.getEditorFields(),
{ name: 'order', label: $t('order'), type: 'w-number', showIf: false },
{
name: 'showIf',
label: $t('re.parameter.grid.entity.showIf'),
type: 'w-code-mirror',
toolbar: false,
lang: 'java',
rows: 5,
placeholder: true,
lineWrap: true,
lineBreak: false,
autoCompletion: autoCompletionManager.autoCompletion(),
showIf: (args: any) => {
let type = args.form.getFieldValue('type');
return 'IN' == type || 'IN_OPTION' == type || 'INDICATOR' == type;
},
},
],
},
}"
@ -216,6 +248,7 @@
{ name: 'indicatorCode', label: $t('re.parameter.grid.entity.indicatorCode') },
...valueTypeManager.getViewerFields(),
{ name: 'order', label: $t('order') },
{ name: 'showIf', label: $t('re.parameter.grid.entity.showIf') },
...CorporationAuditorEntityManager.getViewerFields(),
],
},
@ -228,6 +261,7 @@
@before-request-data="
(args) => {
emit('beforeRequestData');
autoCompletionManager.load(Environment.apiContextPath('/api/re/common/parameterAndValueType/findInParameterByResourceId/' + resource.id));
}
"
@after-editor-open="
@ -275,6 +309,7 @@ import { ValueTypeManager } from '@/views/shared/ValueTypeManager';
import { LibManager } from '@/views/shared/LibManager';
import { TemplateImportAndExportManager } from '@/views/shared/TemplateImportAndExportManager';
import { EngineEnums } from '@/views/shared/enums/EngineEnums';
import { AutoCompletionManager } from '@/views/shared/AutoCompletionManager';
const props = defineProps({
resource: { type: Object, default: undefined },
@ -293,6 +328,7 @@ const moveParameterDialogRef = ref();
const templateImportAndExportDialogRef = ref();
const importDialogRef = ref();
const valueTypeManager = new ValueTypeManager();
const autoCompletionManager = new AutoCompletionManager();
const templateImportAndExportManager = new TemplateImportAndExportManager(templateImportAndExportDialogRef);
onMounted(() => {

5
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/controller/ParameterAndValueTypeWebController.java

@ -45,4 +45,9 @@ public class ParameterAndValueTypeWebController {
public ParameterAndValueType findByDictionaryCodeAndVersion(@PathVariable(name="code",required=true)String code, @PathVariable(name="version",required=false)Integer version,Locale locale) throws Exception{
return service.findByDictionaryCodeAndVersion(code,version,locale);
}
@GetMapping("findInParameterByResourceId/{modelId}")
public ParameterAndValueType findInParameterByResourceId(@PathVariable(name="modelId",required=true)String modelId, Locale locale) throws Exception{
return service.findInParameterByResourceId(modelId,locale);
}
}

1
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/ParameterAndValueTypeService.java

@ -13,4 +13,5 @@ public interface ParameterAndValueTypeService {
public ParameterAndValueType findByDictionaryId(String id, Locale locale) throws Exception;
public ParameterAndValueType findByDictionaryCodeAndVersion(String code, Integer version, Locale locale) throws Exception;
public ParameterAndValueType findInParameterByResourceId(String resourceId, Locale locale) throws Exception;
}

34
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/impl/ParameterAndValueTypeServiceImpl.java

@ -20,6 +20,8 @@ import io.sc.engine.rule.server.lib.service.IndicatorService;
import io.sc.engine.rule.server.lib.service.LibService;
import io.sc.engine.rule.server.model.entity.ModelEntity;
import io.sc.engine.rule.server.model.entity.ParameterEntity;
import io.sc.engine.rule.server.model.entity.parameter.InOptionParameterEntity;
import io.sc.engine.rule.server.model.entity.parameter.InParameterEntity;
import io.sc.engine.rule.server.model.entity.parameter.OutParameterEntity;
import io.sc.engine.rule.server.model.service.ModelService;
import io.sc.engine.rule.server.model.service.ParameterProcessorService;
@ -115,7 +117,37 @@ public class ParameterAndValueTypeServiceImpl implements ParameterAndValueTypeSe
return parameterAndValueType;
}
private void buildByModel(ParameterAndValueType parameterAndValueType,ModelEntity modelEntity, Locale locale) throws Exception{
@Override
public ParameterAndValueType findInParameterByResourceId(String resourceId, Locale locale) throws Exception {
if(!StringUtils.hasText(resourceId)){ return null; }
ModelEntity modelEntity =modelService.findRootModelByResourceId(resourceId);
if(modelEntity==null){ return null; }
List<ParameterEntity> parameterEntities =modelService.getAllParameters(modelEntity.getId());
if(parameterEntities!=null && parameterEntities.size()>0){
ParameterAndValueType parameterAndValueType =new ParameterAndValueType();
//枚举类型
buildByEnumDictionary(parameterAndValueType,locale);
//构建参数
for(ParameterEntity entity : parameterEntities){
if(entity instanceof InOptionParameterEntity || entity instanceof InParameterEntity){
Parameter parameter =new Parameter();
parameter.setCode(entity.getCode());
parameter.setName(entity.getName());
parameter.setType(entity.getType().toString());
parameter.setValueType(entity.getValueType());
parameter.setValueTypeVersion(entity.getValueTypeVersion());
parameter.setValueTypeIsList(entity.getValueTypeIsList());
parameterAndValueType.addParameter(parameter);
buildValueType(parameterAndValueType,entity.getValueType(),entity.getValueTypeVersion(),locale);
}
}
return parameterAndValueType;
}
return null;
}
private void buildByModel(ParameterAndValueType parameterAndValueType, ModelEntity modelEntity, Locale locale) throws Exception{
if(modelEntity==null || !StringUtils.hasText(modelEntity.getId())){ return; }
//枚举类型

23
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/controller/ParameterWebController.java

@ -1,7 +1,14 @@
package io.sc.engine.rule.server.model.controller;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.model.entity.ModelEntity;
import io.sc.engine.rule.server.model.entity.ParameterEntity;
import io.sc.engine.rule.server.model.entity.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.repository.ParameterRepository;
import io.sc.engine.rule.server.model.service.ModelService;
import io.sc.engine.rule.server.model.service.ParameterService;
import io.sc.engine.rule.server.model.service.support.ObjectProperty;
import io.sc.engine.rule.server.model.service.support.ParameterIndicatorsWrapper;
@ -12,10 +19,12 @@ import io.sc.platform.mvc.support.One2Many;
import io.sc.platform.orm.util.EntityVoUtil;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.util.StringUtils;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import java.util.Collections;
import java.util.List;
import java.util.Locale;
import java.util.Map;
@ -28,9 +37,19 @@ import java.util.Map;
public class ParameterWebController extends RestCrudController<ParameterVo,ParameterEntity,String,ParameterRepository,ParameterService> {
private static final Logger log =LoggerFactory.getLogger(ParameterWebController.class);
@Autowired private ParameterAndValueTypeService parameterAndValueTypeService;
@Autowired private ModelService modelService;
@GetMapping("findParametersByModelId")
public List<ParameterVo> findParametersByModelId(@RequestParam(name="modelId",required = false)String modelId) throws Exception {
return EntityVoUtil.toVo(service.findParametersByModelId(modelId));
public List<ParameterVo> findParametersByModelId(@RequestParam(name="modelId",required = false)String modelId, Locale locale) throws Exception {
if(!StringUtils.hasText(modelId)){
return Collections.emptyList();
}
ModelEntity rootModelEntity =modelService.findRootModelByModelId(modelId);
List<ParameterEntity> entities =service.findParametersByModelId(modelId);
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findInParameterByResourceId(rootModelEntity.getResource().getId(),locale);
VariableCodeAndNameReplacer.replace(entities,parameterAndValueType, ReplaceMode.CODE_TO_NAME);
return EntityVoUtil.toVo(entities);
}
@GetMapping("findParametersByParameterId")

1
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterEntityConverter.java

@ -58,6 +58,7 @@ public class ParameterEntityConverter {
po.setValueTypeIsList(entity.getValueTypeIsList());
po.setDefaultValue(entity.getDefaultValue());
po.setOrder(entity.getOrder());
po.setShowIf(entity.getShowIf());
po.setValidators(ParameterValidatorEntityConverter.toPo(entity.getValidators()));
po.setProcessors(ParameterProcessorEntityConverter.toPo(entity.getProcessors()));
return po;

45
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterEntity.java

@ -3,6 +3,10 @@ package io.sc.engine.rule.server.model.entity;
import com.fasterxml.jackson.annotation.JsonSubTypes;
import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.sc.engine.rule.core.enums.ParameterType;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.server.common.CodeAndNameReplacer;
import io.sc.engine.rule.server.common.service.support.ParameterAndValueType;
import io.sc.engine.rule.server.common.service.support.ParameterCodeReplacer;
import io.sc.engine.rule.server.model.entity.parameter.*;
import io.sc.engine.rule.server.model.vo.ParameterVo;
import io.sc.engine.rule.server.resource.entity.ResourceEntity;
@ -20,6 +24,7 @@ import javax.validation.constraints.Size;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 模型参数实体
@ -39,7 +44,7 @@ import java.util.List;
@JsonSubTypes.Type(value=IntermediateParameterEntity.class), //中间值
@JsonSubTypes.Type(value=OutParameterEntity.class) //结果值
})
public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> implements DeepClone, IdClearable, TestCaseParameterAble{
public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> implements DeepClone, IdClearable, CodeAndNameReplacer,TestCaseParameterAble{
//ID,主键
@Id
@GeneratedValue(generator = "system-uuid")
@ -97,6 +102,11 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
//排序
@Column(name="ORDER_")
protected Integer order;
//条件
@Column(name="SHOW_IF_",length = 1024)
@Size(max=1024)
protected String showIf;
//所属模型
@ManyToOne(fetch=FetchType.LAZY)
@ -129,6 +139,7 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
vo.setValueTypeIsList(this.getValueTypeIsList());
vo.setDefaultValue(this.getDefaultValue());
vo.setOrder(this.getOrder());
vo.setShowIf(this.getShowIf());
vo.setModel(this.getModel()==null?null:this.getModel().getId());
}
}
@ -229,6 +240,14 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
this.order = order;
}
public @Size(max = 1024) String getShowIf() {
return showIf;
}
public void setShowIf(@Size(max = 1024) String showIf) {
this.showIf = showIf;
}
public ModelEntity getModel() {
return model;
}
@ -326,4 +345,28 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
return wrapper;
}
@Override
public boolean replace(ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
String replaced =parameterAndValueType.replace(this.showIf, mode);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.showIf)) {
result =true;
}
this.showIf =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.showIf, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.showIf)) {
result =true;
}
this.showIf =replaced;
return result;
}
}

31
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterInOptionAdditionEntity.java

@ -1,6 +1,10 @@
package io.sc.engine.rule.server.model.entity;
import io.sc.engine.rule.core.enums.QualitativeAdditionComponentType;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.server.common.CodeAndNameReplacer;
import io.sc.engine.rule.server.common.service.support.ParameterAndValueType;
import io.sc.engine.rule.server.common.service.support.ParameterCodeReplacer;
import io.sc.engine.rule.server.model.vo.ParameterInOptionAdditionVo;
import io.sc.platform.orm.DeepClone;
import io.sc.platform.orm.IdClearable;
@ -11,13 +15,14 @@ import org.springframework.beans.BeanUtils;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.Map;
/**
* 输入值(选项)参数的补录项实体类
*/
@Entity
@Table(name="RE_MODEL_PARAMETER_ADDITION")
public class ParameterInOptionAdditionEntity extends CorporationAuditorEntity<ParameterInOptionAdditionVo> implements DeepClone, IdClearable {
public class ParameterInOptionAdditionEntity extends CorporationAuditorEntity<ParameterInOptionAdditionVo> implements DeepClone, IdClearable, CodeAndNameReplacer {
//ID,主键
@Id
@GeneratedValue(generator = "system-uuid")
@ -257,4 +262,28 @@ public class ParameterInOptionAdditionEntity extends CorporationAuditorEntity<Pa
public void clearId() {
this.setId(null);
}
@Override
public boolean replace(ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
String replaced =parameterAndValueType.replace(this.condition, mode);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.condition)) {
result =true;
}
this.condition =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.condition, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.condition)) {
result =true;
}
this.condition =replaced;
return result;
}
}

43
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterInOptionAdditionServiceImpl.java

@ -1,5 +1,10 @@
package io.sc.engine.rule.server.model.service.impl;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.model.entity.ParameterEntity;
import io.sc.engine.rule.server.model.entity.ParameterInOptionAdditionEntity;
import io.sc.engine.rule.server.model.entity.ParameterInOptionItemEntity;
import io.sc.engine.rule.server.model.repository.ParameterInOptionAdditionRepository;
@ -12,14 +17,17 @@ import io.sc.platform.orm.service.support.QueryParameter;
import io.sc.platform.orm.service.support.QueryResult;
import io.sc.platform.orm.service.support.criteria.impl.Equals;
import io.sc.platform.orm.util.EntityVoUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.data.domain.Page;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.List;
import java.util.Locale;
@Service("io.sc.engine.rule.server.model.service.impl.ParameterInOptionAdditionServiceImpl")
public class ParameterInOptionAdditionServiceImpl extends DaoServiceImpl<ParameterInOptionAdditionEntity, String, ParameterInOptionAdditionRepository> implements ParameterInOptionAdditionService {
@Autowired private ParameterAndValueTypeService parameterAndValueTypeService;
@Override
public Page<ParameterInOptionAdditionVo> findByParameterId(String parameterId, QueryParameter queryParameter) throws Exception {
@ -28,7 +36,14 @@ public class ParameterInOptionAdditionServiceImpl extends DaoServiceImpl<Paramet
equalsCriteria.setValue(parameterId);
queryParameter.addCriteria(equalsCriteria);
return EntityVoUtil.toVo(super.query(queryParameter));
Page<ParameterInOptionAdditionEntity> entities =super.query(queryParameter);
//获取代码和名称的映射表
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findByParameterId(parameterId, Locale.getDefault());
//将名称替换为代码
VariableCodeAndNameReplacer.replace(entities.getContent(), parameterAndValueType, ReplaceMode.CODE_TO_NAME);
return EntityVoUtil.toVo(entities);
}
@Override
@ -41,13 +56,35 @@ public class ParameterInOptionAdditionServiceImpl extends DaoServiceImpl<Paramet
entity.setOrder(1);
}
normalize(entity);
return super.add(entity);
//获取代码和名称的映射表
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findByParameterId(entity.getParameter().getId(), Locale.getDefault());
//将名称替换为代码
VariableCodeAndNameReplacer.replace(entity, parameterAndValueType, ReplaceMode.NAME_TO_CODE);
ParameterInOptionAdditionEntity newEntity =super.add(entity);
//由于数据库中存储的是参数的代码,而界面显示的是参数的名称,为了能上新增的实体能够在界面正确显示名称,需要进行代码到名称的替换
if (newEntity != null) {
ParameterInOptionAdditionEntity clone = (ParameterInOptionAdditionEntity) newEntity.deepClone();
VariableCodeAndNameReplacer.replace(clone, parameterAndValueType, ReplaceMode.CODE_TO_NAME);
return clone;
}
return null;
}
@Override
public ParameterInOptionAdditionEntity update(String s, ParameterInOptionAdditionEntity entity) throws Exception {
normalize(entity);
return super.update(s, entity);
//获取代码和名称的映射表
ParameterAndValueType parameterAndValueType =parameterAndValueTypeService.findByParameterId(entity.getParameter().getId(), Locale.getDefault());
//将名称替换为代码
VariableCodeAndNameReplacer.replace(entity, parameterAndValueType, ReplaceMode.NAME_TO_CODE);
ParameterInOptionAdditionEntity newEntity =super.update(s, entity);
//由于数据库中存储的是参数的代码,而界面显示的是参数的名称,为了能上新增的实体能够在界面正确显示名称,需要进行代码到名称的替换
if (newEntity != null) {
ParameterInOptionAdditionEntity clone = (ParameterInOptionAdditionEntity) newEntity.deepClone();
VariableCodeAndNameReplacer.replace(clone, parameterAndValueType, ReplaceMode.CODE_TO_NAME);
return clone;
}
return null;
}
private void normalize(ParameterInOptionAdditionEntity entity){

37
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterServiceImpl.java

@ -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

11
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/ParameterVo.java

@ -48,6 +48,9 @@ public class ParameterVo extends CorporationAuditorVo {
//排序
@Column(name="FD_ORDER")
protected Integer order;
//显示条件(主要为前端提供)
protected String showIf;
//所属模型
protected String model;
@ -148,6 +151,14 @@ public class ParameterVo extends CorporationAuditorVo {
this.order = order;
}
public String getShowIf() {
return showIf;
}
public void setShowIf(String showIf) {
this.showIf = showIf;
}
public String getModel() {
return model;
}

1
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/parameter/InOptionParameterVo.java

@ -1,7 +1,6 @@
package io.sc.engine.rule.server.model.vo.parameter;
import io.sc.engine.rule.core.enums.ParameterType;
import io.sc.engine.rule.core.enums.QualitativeAdditionComponentType;
import io.sc.engine.rule.server.model.vo.ParameterVo;
/**

1
io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml

@ -165,6 +165,7 @@
<column name="VALUE_TYPE_IS_LIST_" type="SMALLINT" remarks="值数据类型是否是列表"/>
<column name="DEFAULT_VALUE_" type="CLOB" remarks="默认值"/>
<column name="ORDER_" type="INTEGER" remarks="排序"/>
<column name="SHOW_IF_" type="NVARCHAR(1024)" remarks="显示条件"/>
<!-- 审计字段 -->
<column name="JPA_VERSION_" type="INTEGER" remarks="JPA乐观锁版本"/>

2
io.sc.engine.st.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.engine.st.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.ai.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.ai.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.developer.doc/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.developer.doc",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"main": "index.js",
"scripts": {

2
io.sc.platform.developer.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.developer.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.lcdp.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.lcdp.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.license.keygen.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.license.keygen.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.mvc.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.mvc.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.scheduler.manager.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.scheduler.manager.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.platform.system.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.platform.system.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.standard.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.standard.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

2
io.sc.website/package.json

@ -1,6 +1,6 @@
{
"name": "io.sc.website",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"main": "index.js",
"scripts": {

2
wra.report.frontend/package.json

@ -1,6 +1,6 @@
{
"name": "wra.report.frontend",
"version": "8.2.19",
"version": "8.2.20",
"description": "",
"private": false,
"keywords": [],

Loading…
Cancel
Save