Browse Source

前端核心发布: 8.2.80

基础框架发布: 8.2.18
  1) 规则引擎中,支持对资源和模型不同的深度复制策略:
     a. 资源深度复制, 只创建代码和名称不同的资源,不修改其模型的代码和名称
     b. 模型和子模型的深度复制, 其下的所有实体均修改代码和名称
     c. 对于模型参数为指标的参数, 不修改器代码和名称。
main
wangshaoping 2 weeks ago
parent
commit
1ac8fe883e
  1. 2
      app.platform/build.gradle
  2. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/DictionaryEntity.java
  3. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/EnumDictionaryEntity.java
  4. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/EnumItemEntity.java
  5. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/UserDefinedJavaClassDictionaryEntity.java
  6. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/UserDefinedJavaClassFieldEntity.java
  7. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/function/entity/FunctionEntity.java
  8. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorEntity.java
  9. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorLibEntity.java
  10. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorProcessorEntity.java
  11. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorValidatorEntity.java
  12. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/LibEntity.java
  13. 12
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ModelEntity.java
  14. 9
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterEntity.java
  15. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterInOptionAdditionEntity.java
  16. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterInOptionItemEntity.java
  17. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterProcessorEntity.java
  18. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/ParameterValidatorEntity.java
  19. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/parameter/InOptionParameterEntity.java
  20. 15
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/parameter/IndicatorParameterEntity.java
  21. 4
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java
  22. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java
  23. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/testcase/entity/TestCaseEntity.java
  24. 2
      io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/testcase/entity/TestCaseParameterEntity.java
  25. 2
      io.sc.platform.orm/src/main/java/io/sc/platform/orm/DeepClone.java

2
app.platform/build.gradle

@ -1,4 +1,4 @@
apply plugin: 'war' yapply plugin: 'war'
apply plugin: 'com.google.cloud.tools.jib' apply plugin: 'com.google.cloud.tools.jib'
apply from: "build-common.gradle" apply from: "build-common.gradle"

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/DictionaryEntity.java

@ -216,7 +216,7 @@ public class DictionaryEntity extends CorporationAuditorEntity<DictionaryVo> imp
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
DictionaryEntity entity =this.getClass().newInstance(); DictionaryEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity, "children"); BeanUtils.copyProperties(this, entity, "children");
//children //children

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/EnumDictionaryEntity.java

@ -73,7 +73,7 @@ public class EnumDictionaryEntity extends DictionaryEntity {
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
EnumDictionaryEntity entity =new EnumDictionaryEntity(); EnumDictionaryEntity entity =new EnumDictionaryEntity();
BeanUtils.copyProperties(this, entity, "children","items"); BeanUtils.copyProperties(this, entity, "children","items");

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/EnumItemEntity.java

@ -140,7 +140,7 @@ public class EnumItemEntity extends CorporationAuditorEntity<EnumItemVo> impleme
this.dictionary = dictionary; this.dictionary = dictionary;
} }
public Object deepClone() { public Object deepClone(Object... args) {
EnumItemEntity entity =new EnumItemEntity(); EnumItemEntity entity =new EnumItemEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/UserDefinedJavaClassDictionaryEntity.java

@ -76,7 +76,7 @@ public class UserDefinedJavaClassDictionaryEntity extends DictionaryEntity {
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
UserDefinedJavaClassDictionaryEntity entity =new UserDefinedJavaClassDictionaryEntity(); UserDefinedJavaClassDictionaryEntity entity =new UserDefinedJavaClassDictionaryEntity();
BeanUtils.copyProperties(this, entity, "children","fields"); BeanUtils.copyProperties(this, entity, "children","fields");

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/dictionary/entity/UserDefinedJavaClassFieldEntity.java

@ -253,7 +253,7 @@ public class UserDefinedJavaClassFieldEntity extends CorporationAuditorEntity<Us
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
UserDefinedJavaClassFieldEntity entity =new UserDefinedJavaClassFieldEntity(); UserDefinedJavaClassFieldEntity entity =new UserDefinedJavaClassFieldEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/function/entity/FunctionEntity.java

@ -124,7 +124,7 @@ public class FunctionEntity extends CorporationAuditorEntity<FunctionVo> impleme
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
FunctionEntity entity =new FunctionEntity(); FunctionEntity entity =new FunctionEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorEntity.java

@ -224,7 +224,7 @@ public class IndicatorEntity extends CorporationAuditorEntity<IndicatorVo> imple
this.lib = lib; this.lib = lib;
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
IndicatorEntity entity =this.getClass().newInstance(); IndicatorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity,"validators","processors"); BeanUtils.copyProperties(this, entity,"validators","processors");

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorLibEntity.java

@ -48,7 +48,7 @@ public class IndicatorLibEntity extends LibEntity {
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
IndicatorLibEntity entity =new IndicatorLibEntity(); IndicatorLibEntity entity =new IndicatorLibEntity();
BeanUtils.copyProperties(this, entity, "children","indicators","testCases"); BeanUtils.copyProperties(this, entity, "children","indicators","testCases");

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorProcessorEntity.java

@ -122,7 +122,7 @@ public class IndicatorProcessorEntity extends CorporationAuditorEntity<Indicator
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
IndicatorProcessorEntity entity =this.getClass().newInstance(); IndicatorProcessorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/IndicatorValidatorEntity.java

@ -133,7 +133,7 @@ public class IndicatorValidatorEntity extends CorporationAuditorEntity<Indicator
this.indicator = indicator; this.indicator = indicator;
} }
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
IndicatorValidatorEntity entity =this.getClass().newInstance(); IndicatorValidatorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/LibEntity.java

@ -226,7 +226,7 @@ public class LibEntity extends CorporationAuditorEntity<LibVo> implements DeepCl
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
LibEntity entity =this.getClass().newInstance(); LibEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity, "children"); BeanUtils.copyProperties(this, entity, "children");
//children //children

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

@ -234,14 +234,14 @@ public class ModelEntity extends CorporationAuditorEntity<ModelVo> implements De
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
ModelEntity entity =this.getClass().newInstance(); ModelEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity, "children","parameters"); BeanUtils.copyProperties(this, entity, "children","parameters");
//深度拷贝 children //深度拷贝 children
List<ModelEntity> children =this.getChildren(); List<ModelEntity> children =this.getChildren();
if(children!=null && children.size()>0) { if(children!=null && children.size()>0) {
for(ModelEntity child : children) { for(ModelEntity child : children) {
ModelEntity clone =(ModelEntity)child.deepClone(); ModelEntity clone =(ModelEntity)child.deepClone(args);
clone.setParent(entity); clone.setParent(entity);
entity.getChildren().add(clone); entity.getChildren().add(clone);
} }
@ -252,15 +252,17 @@ public class ModelEntity extends CorporationAuditorEntity<ModelVo> implements De
List<ParameterEntity> parameters =this.getParameters(); List<ParameterEntity> parameters =this.getParameters();
if(parameters!=null && parameters.size()>0) { if(parameters!=null && parameters.size()>0) {
for(ParameterEntity parameter : parameters) { for(ParameterEntity parameter : parameters) {
ParameterEntity clone =(ParameterEntity)parameter.deepClone(); ParameterEntity clone =(ParameterEntity)parameter.deepClone(args);
clone.setModel(entity); clone.setModel(entity);
entity.getParameters().add(clone); entity.getParameters().add(clone);
parameterCodeMapping.put(parameter.getCode(),clone.getCode()); parameterCodeMapping.put(parameter.getCode(),clone.getCode());
} }
} }
entity.clearId(); entity.clearId();
entity.setCode("M"+System.currentTimeMillis()); if(args==null || args.length==0 || !ResourceEntity.class.equals(args[0])) {
entity.setName(entity.getName() + "_NEW"); entity.setCode("M" + System.currentTimeMillis());
entity.setName(entity.getName() + "_NEW");
}
List<ParameterEntity> clonedParameters =entity.getParameters(); List<ParameterEntity> clonedParameters =entity.getParameters();
if(clonedParameters!=null && clonedParameters.size()>0) { if(clonedParameters!=null && clonedParameters.size()>0) {

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

@ -5,6 +5,7 @@ import com.fasterxml.jackson.annotation.JsonTypeInfo;
import io.sc.engine.rule.core.enums.ParameterType; import io.sc.engine.rule.core.enums.ParameterType;
import io.sc.engine.rule.server.model.entity.parameter.*; import io.sc.engine.rule.server.model.entity.parameter.*;
import io.sc.engine.rule.server.model.vo.ParameterVo; import io.sc.engine.rule.server.model.vo.ParameterVo;
import io.sc.engine.rule.server.resource.entity.ResourceEntity;
import io.sc.engine.rule.server.testcase.annotation.TestCaseParameterAble; import io.sc.engine.rule.server.testcase.annotation.TestCaseParameterAble;
import io.sc.engine.rule.server.testcase.wrapper.TestCaseParameterWrapper; import io.sc.engine.rule.server.testcase.wrapper.TestCaseParameterWrapper;
import io.sc.platform.orm.DeepClone; import io.sc.platform.orm.DeepClone;
@ -253,7 +254,7 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
ParameterEntity entity =this.getClass().newInstance(); ParameterEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity,"validators","processors"); BeanUtils.copyProperties(this, entity,"validators","processors");
@ -278,8 +279,10 @@ public class ParameterEntity extends CorporationAuditorEntity<ParameterVo> imple
} }
entity.clearId(); entity.clearId();
entity.setCode("P"+System.currentTimeMillis()); if(args==null || args.length==0 || !ResourceEntity.class.equals(args[0])) {
entity.setName(entity.getName() + "_NEW"); entity.setCode("P" + System.currentTimeMillis());
entity.setName(entity.getName() + "_NEW");
}
return entity; return entity;
} }

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

@ -247,7 +247,7 @@ public class ParameterInOptionAdditionEntity extends CorporationAuditorEntity<Pa
this.attachmentMaxCount = attachmentMaxCount; this.attachmentMaxCount = attachmentMaxCount;
} }
public Object deepClone() { public Object deepClone(Object... args) {
ParameterInOptionAdditionEntity entity =new ParameterInOptionAdditionEntity(); ParameterInOptionAdditionEntity entity =new ParameterInOptionAdditionEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

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

@ -133,7 +133,7 @@ public class ParameterInOptionItemEntity extends CorporationAuditorEntity<Parame
this.config = config; this.config = config;
} }
public Object deepClone() { public Object deepClone(Object... args) {
ParameterInOptionItemEntity entity =new ParameterInOptionItemEntity(); ParameterInOptionItemEntity entity =new ParameterInOptionItemEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

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

@ -143,7 +143,7 @@ public class ParameterProcessorEntity extends CorporationAuditorEntity<Parameter
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
ParameterProcessorEntity entity =this.getClass().newInstance(); ParameterProcessorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);

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

@ -136,7 +136,7 @@ public class ParameterValidatorEntity extends CorporationAuditorEntity<Parameter
this.tip = tip; this.tip = tip;
} }
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
ParameterValidatorEntity entity =this.getClass().newInstance(); ParameterValidatorEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);

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

@ -59,7 +59,7 @@ public class InOptionParameterEntity extends ParameterEntity {
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
InOptionParameterEntity entity =new InOptionParameterEntity(); InOptionParameterEntity entity =new InOptionParameterEntity();
BeanUtils.copyProperties(this, entity,"validators","processors","options","additions"); BeanUtils.copyProperties(this, entity,"validators","processors","options","additions");

15
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/parameter/IndicatorParameterEntity.java

@ -3,11 +3,15 @@ package io.sc.engine.rule.server.model.entity.parameter;
import com.fasterxml.jackson.annotation.JsonTypeName; import com.fasterxml.jackson.annotation.JsonTypeName;
import io.sc.engine.rule.core.enums.ParameterType; import io.sc.engine.rule.core.enums.ParameterType;
import io.sc.engine.rule.server.model.entity.ParameterEntity; 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.entity.ParameterValidatorEntity;
import io.sc.engine.rule.server.model.vo.parameter.IndicatorParameterVo; import io.sc.engine.rule.server.model.vo.parameter.IndicatorParameterVo;
import org.springframework.beans.BeanUtils;
import javax.persistence.Column; import javax.persistence.Column;
import javax.persistence.DiscriminatorValue; import javax.persistence.DiscriminatorValue;
import javax.persistence.Entity; import javax.persistence.Entity;
import java.util.List;
/** /**
* 模型参数(指标)实体类 * 模型参数(指标)实体类
@ -67,6 +71,17 @@ public class IndicatorParameterEntity extends ParameterEntity {
public void setIndicatorCode(String indicatorCode) { public void setIndicatorCode(String indicatorCode) {
this.indicatorCode = indicatorCode; this.indicatorCode = indicatorCode;
} }
@Override
public Object deepClone(Object... args) throws Exception {
IndicatorParameterEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity,"validators","processors");
// 对于指标参数, 深度复制时不能更改参数的代码和名称, 只清除ID
entity.clearId();
return entity;
}
@Override @Override
public String toString() { public String toString() {
return "IndicatorParameterEntity [" return "IndicatorParameterEntity ["

4
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java

@ -129,14 +129,14 @@ public class ModelResourceEntity extends ResourceEntity {
} }
@Override @Override
public Object deepClone() throws Exception { public Object deepClone(Object... args) throws Exception {
ModelResourceEntity entity =new ModelResourceEntity(); ModelResourceEntity entity =new ModelResourceEntity();
ResourceEntity cloned =(ResourceEntity)super.deepClone(); ResourceEntity cloned =(ResourceEntity)super.deepClone();
BeanUtils.copyProperties(cloned, entity, "model"); BeanUtils.copyProperties(cloned, entity, "model");
//model //model
ModelEntity model =this.getModel(); ModelEntity model =this.getModel();
if(model!=null) { if(model!=null) {
ModelEntity clone =(ModelEntity)model.deepClone(); ModelEntity clone =(ModelEntity)model.deepClone(ResourceEntity.class);
clone.setResource(entity); clone.setResource(entity);
entity.setModel(clone); entity.setModel(clone);
} }

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java

@ -253,7 +253,7 @@ public class ResourceEntity extends CorporationAuditorEntity<ResourceVo> impleme
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
ResourceEntity entity =this.getClass().newInstance(); ResourceEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity, "children","testCases","roles"); BeanUtils.copyProperties(this, entity, "children","testCases","roles");
//children //children

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/testcase/entity/TestCaseEntity.java

@ -165,7 +165,7 @@ public class TestCaseEntity extends CorporationAuditorEntity<TestCaseVo> impleme
} }
@Override @Override
public Object deepClone() throws Exception{ public Object deepClone(Object... args) throws Exception{
TestCaseEntity entity =this.getClass().newInstance(); TestCaseEntity entity =this.getClass().newInstance();
BeanUtils.copyProperties(this, entity, "parameters"); BeanUtils.copyProperties(this, entity, "parameters");

2
io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/testcase/entity/TestCaseParameterEntity.java

@ -144,7 +144,7 @@ public class TestCaseParameterEntity extends CorporationAuditorEntity<TestCasePa
} }
@Override @Override
public Object deepClone() { public Object deepClone(Object... args) {
TestCaseParameterEntity entity =new TestCaseParameterEntity(); TestCaseParameterEntity entity =new TestCaseParameterEntity();
BeanUtils.copyProperties(this, entity); BeanUtils.copyProperties(this, entity);
return entity; return entity;

2
io.sc.platform.orm/src/main/java/io/sc/platform/orm/DeepClone.java

@ -6,5 +6,5 @@ package io.sc.platform.orm;
* 当实体类实现此接口时通过覆盖 deepClone 方法实现对实体的复制 * 当实体类实现此接口时通过覆盖 deepClone 方法实现对实体的复制
*/ */
public interface DeepClone { public interface DeepClone {
public Object deepClone() throws Exception; public Object deepClone(Object... args) throws Exception;
} }

Loading…
Cancel
Save