Browse Source

前端核心发布: 8.2.80

基础框架发布: 8.2.18
  1) 修复模型或子模型的深度复制的问题
main
wangshaoping 2 weeks ago
parent
commit
a0bcada0d5
  1. 3
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/CodeAndNameReplacer.java
  2. 30
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/support/ParameterCodeReplacer.java
  3. 22
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ModelEntity.java
  4. 6
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterEntity.java
  5. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterProcessorEntity.java
  6. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterValidatorEntity.java
  7. 4
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/parameter/InOptionParameterEntity.java
  8. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ArithmeticParameterProcessorEntity.java
  9. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ConditionRangeParameterProcessorEntity.java
  10. 13
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTable2CParameterProcessorEntity.java
  11. 13
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTableParameterProcessorEntity.java
  12. 13
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTreeParameterProcessorEntity.java
  13. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ExecutionFlowParameterProcessorEntity.java
  14. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/GroovyScriptParameterProcessorEntity.java
  15. 88
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java
  16. 16
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/MathFormulaParameterProcessorEntity.java
  17. 21
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/NumberRangeParameterProcessorEntity.java
  18. 21
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ObjectPropertiesParameterProcessorEntity.java
  19. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/OptionValueParameterProcessorEntity.java
  20. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/PmmlParameterProcessorEntity.java
  21. 14
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/RuleSetParameterProcessorEntity.java
  22. 48
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ScoreCardParameterProcessorEntity.java
  23. 13
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/SingleRuleParameterProcessorEntity.java
  24. 28
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/SqlParameterProcessorEntity.java
  25. 33
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/TernaryParameterProcessorEntity.java
  26. 21
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/WhenThenParameterProcessorEntity.java
  27. 3
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ModelServiceImpl.java
  28. 3
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterServiceImpl.java

3
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/CodeAndNameReplacer.java

@ -3,6 +3,8 @@ package io.sc.engine.rule.server.common;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.server.common.service.support.ParameterAndValueType;
import java.util.Map;
/**
* 代码/名称替换器接口
* 主要是用于在计算机存储和人们阅读之间进行转换计算机中存储为代码形式而人们阅读是以名称形式显示
@ -10,4 +12,5 @@ import io.sc.engine.rule.server.common.service.support.ParameterAndValueType;
*/
public interface CodeAndNameReplacer {
public boolean replace(ParameterAndValueType parameterAndValueType, ReplaceMode mode);
public default boolean replace(Map<String,String> code2codeMapping) { return false; }
}

30
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/common/service/support/ParameterCodeReplacer.java

@ -0,0 +1,30 @@
package io.sc.engine.rule.server.common.service.support;
import io.sc.platform.util.CollectionUtil;
import io.sc.platform.util.PlaceHolderExpressionUtil;
import io.sc.platform.util.support.PlaceholderExpression;
import io.sc.platform.util.support.PlaceholderExpressionPart;
import org.springframework.util.StringUtils;
import java.util.List;
import java.util.Map;
public class ParameterCodeReplacer {
public static String replace(String content,Map<String,String> mapping) {
List<PlaceholderExpression> expressions = PlaceHolderExpressionUtil.parse(content);
if(CollectionUtil.hasElements(expressions)){
for(PlaceholderExpression expression : expressions){
List<PlaceholderExpressionPart> parts =expression.getParts();
if(CollectionUtil.hasElements(parts)){
for(PlaceholderExpressionPart part : parts){
String replaced =mapping.get(part.getName());
if(StringUtils.hasText(replaced)) {
content = content.replace("${" + part.getName() + "}", "${" + replaced + "}");
}
}
}
}
}
return content;
}
}

22
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ModelEntity.java

@ -16,7 +16,9 @@ import org.springframework.beans.BeanUtils;
import javax.persistence.*;
import javax.validation.constraints.Size;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 模型实体类
@ -246,17 +248,35 @@ public class ModelEntity extends CorporationAuditorEntity<ModelVo> implements De
}
//深度拷贝 parameters
Map<String,String> parameterCodeMapping =new HashMap<>();
List<ParameterEntity> parameters =this.getParameters();
if(parameters!=null && parameters.size()>0) {
for(ParameterEntity parameter : parameters) {
ParameterEntity clone =(ParameterEntity)parameter.deepClone();
clone.setModel(entity);
entity.getParameters().add(clone);
parameterCodeMapping.put(parameter.getCode(),clone.getCode());
}
}
entity.clearId();
entity.setCode("M"+System.currentTimeMillis());
entity.setName(entity.getName() + "_NEW");
List<ParameterEntity> clonedParameters =entity.getParameters();
if(clonedParameters!=null && clonedParameters.size()>0) {
for(ParameterEntity clonedParameter : clonedParameters) {
List<ParameterProcessorEntity> clonedProcessors =clonedParameter.getProcessors();
if(clonedProcessors!=null && clonedProcessors.size()>0) {
for(ParameterProcessorEntity clonedProcessor : clonedProcessors) {
clonedProcessor.replace(parameterCodeMapping);
}
}
}
}
return entity;
}
@Override
public void clearId() {
this.setId(null);

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

@ -276,9 +276,13 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
entity.getProcessors().add(clone);
}
}
entity.clearId();
entity.setCode("P"+System.currentTimeMillis());
entity.setName(entity.getName() + "_NEW");
return entity;
}
@Override
public void clearId() {
this.setId(null);

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterProcessorEntity.java

@ -146,6 +146,8 @@ public class ParameterProcessorEntity extends CorporationAuditorEntity<Parameter
public Object deepClone() throws Exception{
ParameterProcessorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity);
entity.clearId();
return entity;
}

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterValidatorEntity.java

@ -139,6 +139,8 @@ public class ParameterValidatorEntity extends CorporationAuditorEntity<Parameter
public Object deepClone() throws Exception{
ParameterValidatorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity);
entity.clearId();
return entity;
}

4
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/parameter/InOptionParameterEntity.java

@ -101,6 +101,10 @@ public class InOptionParameterEntity extends ParameterEntity {
entity.getAdditions().add(clone);
}
}
entity.clearId();
entity.setCode("P"+System.currentTimeMillis());
entity.setName(entity.getName() + "_NEW");
return entity;
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ArithmeticParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.ArithmeticParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器算数运算操作实体类
@ -54,4 +56,16 @@ public class ArithmeticParameterProcessorEntity extends ParameterProcessorEntity
this.arithmetic =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.arithmetic, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.arithmetic)) {
result =true;
}
this.arithmetic =replaced;
return result;
}
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ConditionRangeParameterProcessorEntity.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.ConditionRangeParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -14,6 +15,7 @@ import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.List;
import java.util.Map;
/**
* 模型参数处理器条件范围操作实体类
@ -59,6 +61,18 @@ public class ConditionRangeParameterProcessorEntity extends ParameterProcessorEn
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.conditionRange,code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.conditionRange)) {
result =true;
}
this.conditionRange =replaced;
return result;
}
private String replaceJsonString(String json, ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
if(!StringUtils.hasText(json)){
return json;

13
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTable2CParameterProcessorEntity.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.DecisionTable2CParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -62,6 +63,18 @@ public class DecisionTable2CParameterProcessorEntity extends ParameterProcessorE
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.decisionTable2C, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.decisionTable2C)) {
result =true;
}
this.decisionTable2C =replaced;
return result;
}
private String replaceJsonString(String json, ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
if(!StringUtils.hasText(json)){
return json;

13
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTableParameterProcessorEntity.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.DecisionTableParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -60,6 +61,18 @@ public class DecisionTableParameterProcessorEntity extends ParameterProcessorEnt
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.decisionTable, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.decisionTable)) {
result =true;
}
this.decisionTable =replaced;
return result;
}
private String replaceJsonString(String json, ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
if(!StringUtils.hasText(json)){
return json;

13
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/DecisionTreeParameterProcessorEntity.java

@ -5,6 +5,7 @@ import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.core.util.ExpressionReplacer;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.DecisionTreeParameterProcessorVo;
@ -56,4 +57,16 @@ public class DecisionTreeParameterProcessorEntity extends ParameterProcessorEnti
this.decisionTree =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.decisionTree, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.decisionTree)) {
result =true;
}
this.decisionTree =replaced;
return result;
}
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ExecutionFlowParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.ExecutionFlowParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器执行流实体类
@ -55,4 +57,16 @@ public class ExecutionFlowParameterProcessorEntity extends ParameterProcessorEnt
this.executionFlow =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.executionFlow, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.executionFlow)) {
result =true;
}
this.executionFlow =replaced;
return result;
}
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/GroovyScriptParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.GroovyScriptParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器脚本代码操作实体类
@ -54,4 +56,16 @@ public class GroovyScriptParameterProcessorEntity extends ParameterProcessorEnti
this.groovyScript =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.groovyScript, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.groovyScript)) {
result =true;
}
this.groovyScript =replaced;
return result;
}
}

88
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java

@ -3,11 +3,13 @@ package io.sc.engine.rule.server.model.entity.processor;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.*;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.HttpRequestParameterProcessorVo;
import io.sc.platform.orm.converter.NumericBooleanConverter;
import javax.persistence.*;
import java.util.Map;
/**
* 模型参数处理器Http 请求操作实体类
@ -339,4 +341,90 @@ public class HttpRequestParameterProcessorEntity extends ParameterProcessorEntit
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
// httpUrl
String replaced = ParameterCodeReplacer.replace(this.httpUrl, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.httpUrl)) {
result =true;
}
this.httpUrl =replaced;
// httpUrlParameterValues
replaced =ParameterCodeReplacer.replace(this.httpUrlParameterValues, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpUrlParameterValues)) {
result =true;
}
this.httpUrlParameterValues =replaced;
// httpAuthBasicUsername;
replaced =ParameterCodeReplacer.replace(this.httpAuthBasicUsername, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpAuthBasicUsername)) {
result =true;
}
this.httpAuthBasicUsername =replaced;
// httpAuthBasicPassword;
replaced =ParameterCodeReplacer.replace(this.httpAuthBasicPassword, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpAuthBasicPassword)) {
result =true;
}
this.httpAuthBasicPassword =replaced;
// BearerToken
replaced =ParameterCodeReplacer.replace(this.httpAuthBearerToken, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpAuthBearerToken)) {
result =true;
}
this.httpAuthBearerToken =replaced;
// httpAuthParameterValues
replaced =ParameterCodeReplacer.replace(this.httpAuthParameterValues, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpAuthParameterValues)) {
result =true;
}
this.httpAuthParameterValues =replaced;
// httpRequestHeader
replaced =ParameterCodeReplacer.replace(this.httpRequestHeader, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpRequestHeader)) {
result =true;
}
this.httpRequestHeader =replaced;
// httpRequestHeaderParameterValues
replaced =ParameterCodeReplacer.replace(this.httpRequestHeaderParameterValues, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpRequestHeaderParameterValues)) {
result =true;
}
this.httpRequestHeaderParameterValues =replaced;
// httpRequestBody
replaced =ParameterCodeReplacer.replace(this.httpRequestBody, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpRequestBody)) {
result =true;
}
this.httpRequestBody =replaced;
// httpRequestBodyParameterValues
replaced =ParameterCodeReplacer.replace(this.httpRequestBodyParameterValues, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.httpRequestBodyParameterValues)) {
result =true;
}
this.httpRequestBodyParameterValues =replaced;
return result;
}
}

16
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/MathFormulaParameterProcessorEntity.java

@ -7,6 +7,7 @@ import com.fasterxml.jackson.databind.node.ObjectNode;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.MathFormulaParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -58,9 +59,18 @@ public class MathFormulaParameterProcessorEntity extends ParameterProcessorEntit
if(!replaced.equals(this.mathFormula)) {
result =true;
}
// if(ReplaceMode.CODE_TO_NAME.equals(mode)) {
// replaced = replaced.replaceAll("\\$\\{(.+?)\\}","$1");
// }
this.mathFormula =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.mathFormula, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.mathFormula)) {
result =true;
}
this.mathFormula =replaced;
return result;
}

21
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/NumberRangeParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.NumberRangeParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器数值范围操作实体类
@ -74,4 +76,23 @@ public class NumberRangeParameterProcessorEntity extends ParameterProcessorEntit
this.numberRange =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.numberRangeVar,code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.numberRangeVar)) {
result =true;
}
this.numberRangeVar =replaced;
replaced =ParameterCodeReplacer.replace(this.numberRange,code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.numberRange)) {
result =true;
}
this.numberRange =replaced;
return result;
}
}

21
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ObjectPropertiesParameterProcessorEntity.java

@ -5,6 +5,7 @@ import com.fasterxml.jackson.core.type.TypeReference;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.ObjectPropertiesParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -14,6 +15,7 @@ import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.List;
import java.util.Map;
/**
* 模型参数处理器对象属性操作实体类
@ -79,6 +81,25 @@ public class ObjectPropertiesParameterProcessorEntity extends ParameterProcessor
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.objectCondition, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.objectCondition)) {
result =true;
}
this.objectCondition =replaced;
replaced =ParameterCodeReplacer.replace(this.objectProperties, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.objectProperties)) {
result =true;
}
this.objectProperties =replaced;
return result;
}
private String replaceJsonString(String json, ParameterAndValueType parameterAndValueType, ReplaceMode mode) {
if(!StringUtils.hasText(json)){
return json;

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/OptionValueParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.OptionValueParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器选项值实体类
@ -54,4 +56,16 @@ public class OptionValueParameterProcessorEntity extends ParameterProcessorEntit
this.optionCode =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.optionCode, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.optionCode)) {
result =true;
}
this.optionCode =replaced;
return result;
}
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/PmmlParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.PmmlParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器PMML实体类
@ -54,4 +56,16 @@ public class PmmlParameterProcessorEntity extends ParameterProcessorEntity {
this.pmml =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.pmml, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.pmml)) {
result =true;
}
this.pmml =replaced;
return result;
}
}

14
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/RuleSetParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.RuleSetParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器规则实体类
@ -55,4 +57,16 @@ public class RuleSetParameterProcessorEntity extends ParameterProcessorEntity {
this.ruleSet =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.ruleSet, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.ruleSet)) {
result =true;
}
this.ruleSet =replaced;
return result;
}
}

48
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/ScoreCardParameterProcessorEntity.java

@ -8,6 +8,7 @@ import io.sc.engine.rule.core.code.generator.impl.processor.NumberRange;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.ScoreCardParameterProcessorVo;
import io.sc.platform.util.ObjectMapperUtil;
@ -18,6 +19,7 @@ import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
* 模型参数处理器算数运算操作实体类
@ -93,4 +95,50 @@ public class ScoreCardParameterProcessorEntity extends ParameterProcessorEntity
this.scoreCard =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
List<ScoreCardItem> scoreCardItems =new ArrayList<>();
try {
if(StringUtils.hasText(this.scoreCard)) {
scoreCardItems = ObjectMapperUtil.json().readValue(this.scoreCard, new TypeReference<List<ScoreCardItem>>() {});
}
}catch (Exception e){
}
if(scoreCardItems!=null && !scoreCardItems.isEmpty()){
for(ScoreCardItem scoreCardItem : scoreCardItems){
String replaceCode =code2codeMapping.get(scoreCardItem.getCode());
if(StringUtils.hasText(replaceCode)) {
scoreCardItem.setCode(replaceCode);
}
List<ConditionRange> conditionRanges =scoreCardItem.getConditionRange();
if(conditionRanges!=null && !conditionRanges.isEmpty()){
for(ConditionRange conditionRange : conditionRanges){
conditionRange.setCondition(ParameterCodeReplacer.replace(conditionRange.getCondition(), code2codeMapping));
conditionRange.setValue(ParameterCodeReplacer.replace(conditionRange.getValue(), code2codeMapping));
}
}
List<NumberRange> numberRanges =scoreCardItem.getNumberRange();
if(numberRanges!=null && !numberRanges.isEmpty()){
for(NumberRange numberRange : numberRanges){
numberRange.setValue(ParameterCodeReplacer.replace(numberRange.getValue(), code2codeMapping));
}
}
}
}
String replaced ="";
try {
replaced = ObjectMapperUtil.json().writeValueAsString(scoreCardItems);
}catch (Exception e){
}
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.scoreCard)) {
result =true;
}
this.scoreCard =replaced;
return result;
}
}

13
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/SingleRuleParameterProcessorEntity.java

@ -5,6 +5,7 @@ import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.core.util.ExpressionReplacer;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.SingleRuleParameterProcessorVo;
@ -56,4 +57,16 @@ public class SingleRuleParameterProcessorEntity extends ParameterProcessorEntity
this.singleRule =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.singleRule, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.singleRule)) {
result =true;
}
this.singleRule =replaced;
return result;
}
}

28
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/SqlParameterProcessorEntity.java

@ -4,12 +4,14 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.SqlParameterProcessorVo;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器Sql操作实体类
@ -100,4 +102,30 @@ public class SqlParameterProcessorEntity extends ParameterProcessorEntity {
this.sqlFieldMapping =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.sql, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.sql)) {
result =true;
}
this.sql =replaced;
replaced =ParameterCodeReplacer.replace(this.sqlParameterValues, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.sqlParameterValues)) {
result =true;
}
this.sqlParameterValues =replaced;
replaced =ParameterCodeReplacer.replace(this.sqlFieldMapping, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.sqlFieldMapping)) {
result =true;
}
this.sqlFieldMapping =replaced;
return result;
}
}

33
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/TernaryParameterProcessorEntity.java

@ -3,13 +3,20 @@ package io.sc.engine.rule.server.model.entity.processor;
import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
import io.sc.engine.rule.core.util.PlaceHolderEnumExpressionUtil;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.TernaryParameterProcessorVo;
import io.sc.platform.util.CollectionUtil;
import io.sc.platform.util.PlaceHolderExpressionUtil;
import io.sc.platform.util.support.PlaceholderExpression;
import javax.persistence.Column;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.List;
import java.util.Map;
/**
* 模型参数处理器三元操作实体类
@ -94,4 +101,30 @@ public class TernaryParameterProcessorEntity extends ParameterProcessorEntity {
this.ternaryFalse =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced =ParameterCodeReplacer.replace(this.ternaryCondition,code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.ternaryCondition)) {
result =true;
}
this.ternaryCondition =replaced;
replaced =ParameterCodeReplacer.replace(this.ternaryTrue,code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.ternaryTrue)) {
result =true;
}
this.ternaryTrue =replaced;
replaced =ParameterCodeReplacer.replace(this.ternaryFalse,code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.ternaryFalse)) {
result =true;
}
this.ternaryFalse =replaced;
return result;
}
}

21
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/WhenThenParameterProcessorEntity.java

@ -4,6 +4,7 @@ import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ProcessorType;
import io.sc.engine.rule.core.enums.ReplaceMode;
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.ParameterProcessorEntity;
import io.sc.engine.rule.server.model.vo.processor.WhenThenParameterProcessorVo;
import io.sc.platform.orm.converter.NumericBooleanConverter;
@ -12,6 +13,7 @@ import javax.persistence.Column;
import javax.persistence.Convert;
import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity;
import java.util.Map;
/**
* 模型参数处理器WhenThen操作实体类
@ -90,4 +92,23 @@ public class WhenThenParameterProcessorEntity extends ParameterProcessorEntity {
this.then =replaced;
return result;
}
@Override
public boolean replace(Map<String, String> code2codeMapping) {
String replaced = ParameterCodeReplacer.replace(this.when, code2codeMapping);
replaced =(replaced==null?"":replaced);
boolean result =false;
if(!replaced.equals(this.when)) {
result =true;
}
this.when =replaced;
replaced =ParameterCodeReplacer.replace(this.then, code2codeMapping);
replaced =(replaced==null?"":replaced);
if(!replaced.equals(this.then)) {
result =true;
}
this.then =replaced;
return result;
}
}

3
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ModelServiceImpl.java

@ -137,9 +137,6 @@ public class ModelServiceImpl extends DaoServiceImpl<ModelEntity, String, ModelR
}else {
clone.setOrder(1);
}
clone.clearId();
clone.setName(clone.getName()+clone.getOrder());
ModelEntity newEntity =repository.save(clone);
//通知其他实体进行相应的更新

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

@ -296,9 +296,6 @@ public class ParameterServiceImpl extends DaoServiceImpl<ParameterEntity, String
ParameterEntity parameter =this.findById(parameterId);
if(parameter!=null) {
ParameterEntity entity =(ParameterEntity)parameter.deepClone();
entity.clearId();
entity.setCode("P"+System.currentTimeMillis());
entity.setName("clone_" + entity.getName());
Integer nextOrder =repository.getNextOrder(entity.getModel().getId());
entity.setOrder(nextOrder==null?1:nextOrder);
return repository.save(entity);

Loading…
Cancel
Save