diff --git a/erm.frontend/package.json b/erm.frontend/package.json index 4b79997f..3160bf0d 100644 --- a/erm.frontend/package.json +++ b/erm.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/gradle.properties b/gradle.properties index 408f233c..191b5cef 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ application_version=1.0.0 platform_group=io.sc platform_version=8.1.50 platform_plugin_version=8.1.50 -platform_core_frontend_version=8.1.430 +platform_core_frontend_version=8.1.433 ########################################################### # dependencies version diff --git a/io.sc.engine.mv.frontend/package.json b/io.sc.engine.mv.frontend/package.json index a0369444..9b2d69da 100644 --- a/io.sc.engine.mv.frontend/package.json +++ b/io.sc.engine.mv.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.engine.rule.core/build.gradle b/io.sc.engine.rule.core/build.gradle index 2cf337e8..aff1da09 100644 --- a/io.sc.engine.rule.core/build.gradle +++ b/io.sc.engine.rule.core/build.gradle @@ -1,26 +1,28 @@ dependencies { api( - "org.springframework:spring-core", - "jakarta.xml.bind:jakarta.xml.bind-api", - "com.fasterxml.jackson.core:jackson-annotations", - "com.fasterxml.jackson.core:jackson-core", - "com.fasterxml.jackson.core:jackson-databind", - "org.slf4j:slf4j-api", - "org.freemarker:freemarker", + project(":io.sc.platform.orm.api"), - "org.codehaus.groovy:groovy", - "org.codehaus.groovy:groovy-jsr223", - "org.codehaus.groovy:groovy-datetime", - "org.codehaus.groovy:groovy-dateutil", - "org.codehaus.groovy:groovy-json", - "org.codehaus.groovy:groovy-sql", - "org.codehaus.groovy:groovy-xml", - "org.apache.commons:commons-math3:${commons_math3_version}", + "org.springframework:spring-core", + "jakarta.xml.bind:jakarta.xml.bind-api", + "com.fasterxml.jackson.core:jackson-annotations", + "com.fasterxml.jackson.core:jackson-core", + "com.fasterxml.jackson.core:jackson-databind", + "org.slf4j:slf4j-api", + "org.freemarker:freemarker", - "org.nasdanika.core:mxgraph:${mxgraph_version}", + "org.codehaus.groovy:groovy", + "org.codehaus.groovy:groovy-jsr223", + "org.codehaus.groovy:groovy-datetime", + "org.codehaus.groovy:groovy-dateutil", + "org.codehaus.groovy:groovy-json", + "org.codehaus.groovy:groovy-sql", + "org.codehaus.groovy:groovy-xml", + "org.apache.commons:commons-math3:${commons_math3_version}", - "org.jpmml:pmml-evaluator:${jpmml_version}", - "org.jpmml:pmml-evaluator-extension:${jpmml_version}", - "com.belerweb:pinyin4j:${pinyin4j_version}", + "org.nasdanika.core:mxgraph:${mxgraph_version}", + + "org.jpmml:pmml-evaluator:${jpmml_version}", + "org.jpmml:pmml-evaluator-extension:${jpmml_version}", + "com.belerweb:pinyin4j:${pinyin4j_version}", ) } diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/Rule.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/Rule.java index 363dd354..5a252800 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/Rule.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/Rule.java @@ -7,10 +7,10 @@ package io.sc.engine.rule.core.classes; */ public class Rule { private boolean isTriggered; //是否触发 + private String category; //分类 private Integer level; //等级 private String code; //代码 private String name; //名称 - private String category; //分类 private String value; //值 private String message; //触发时消息 diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/SingleRuleResult.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/SingleRuleResult.java index ee7143a5..29d33b9c 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/SingleRuleResult.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/classes/SingleRuleResult.java @@ -11,8 +11,8 @@ import com.fasterxml.jackson.core.JsonProcessingException; */ public class SingleRuleResult { private boolean triggered; //是否触发 - private Integer level; //等级 private String category; //分类 + private Integer level; //等级 private String value; //值 private String message; //触发时消息 @@ -20,8 +20,8 @@ public class SingleRuleResult { public SingleRuleResult(boolean isTriggered,Integer level,String category,String value,String message) { this.triggered =isTriggered; - this.level =level; this.category =category; + this.level =level; this.value =value; this.message =message; } @@ -32,18 +32,18 @@ public class SingleRuleResult { public void setTriggered(boolean isTriggered) { this.triggered = isTriggered; } - public Integer getLevel() { - return level; - } - public void setLevel(Integer level) { - this.level = level; - } public String getCategory() { return category; } public void setCategory(String category) { this.category = category; } + public Integer getLevel() { + return level; + } + public void setLevel(Integer level) { + this.level = level; + } public String getValue() { return value; } @@ -63,8 +63,13 @@ public class SingleRuleResult { String result =JacksonObjectMapper.getDefaultObjectMapper().writeValueAsString(this); return result; } catch (JsonProcessingException e) { - return "SingleRuleResult [triggered=" + triggered + ", level=" + level + ", category=" + category - + ", value=" + value + ", message=" + message + "]"; + return "SingleRuleResult{" + + "triggered=" + triggered + + ", category='" + category + '\'' + + ", level=" + level + + ", value='" + value + '\'' + + ", message='" + message + '\'' + + '}'; } } } diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/Rule.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/Rule.java index f3f38a1c..99b52acb 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/Rule.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/Rule.java @@ -14,11 +14,10 @@ import com.fasterxml.jackson.core.type.TypeReference; @JsonIgnoreProperties(ignoreUnknown=true) public class Rule { - private String uuid; + private String category; private Integer level; private String code; private String name; - private String category; private String condition; private String value; private String message; @@ -89,14 +88,6 @@ public class Rule { return null; } - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - public Integer getLevel() { return level; } diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/SingleRule.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/SingleRule.java index 593eaaeb..7d4b2d6a 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/SingleRule.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/code/impl/support/processor/SingleRule.java @@ -14,9 +14,8 @@ import com.fasterxml.jackson.core.type.TypeReference; @JsonIgnoreProperties(ignoreUnknown=true) public class SingleRule { - private String uuid; - private Integer level; private String category; + private Integer level; private String condition; private String value; private String message; @@ -77,14 +76,6 @@ public class SingleRule { return null; } - public String getUuid() { - return uuid; - } - - public void setUuid(String uuid) { - this.uuid = uuid; - } - public Integer getLevel() { return level; } diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/lib/processor/HttpRequestIndicatorProcessor.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/lib/processor/HttpRequestIndicatorProcessor.java index 521f4979..c0a01e1b 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/lib/processor/HttpRequestIndicatorProcessor.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/lib/processor/HttpRequestIndicatorProcessor.java @@ -26,7 +26,7 @@ public class HttpRequestIndicatorProcessor extends IndicatorProcessor { private String httpAuthBasicPassword; private String httpAuthBearerToken; private String httpParams; - private String httpBody; + private String httpRequestBody; private String httpResponseMapping; @Override @@ -94,11 +94,11 @@ public class HttpRequestIndicatorProcessor extends IndicatorProcessor { public void setHttpParams(String httpParams) { this.httpParams = httpParams; } - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } public String getHttpResponseMapping() { return httpResponseMapping; diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/processor/HttpRequestParameterProcessor.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/processor/HttpRequestParameterProcessor.java index 47b5ac56..9d736da6 100644 --- a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/processor/HttpRequestParameterProcessor.java +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/po/model/processor/HttpRequestParameterProcessor.java @@ -26,7 +26,7 @@ public class HttpRequestParameterProcessor extends ParameterProcessor { private String httpAuthBasicPassword; private String httpAuthBearerToken; private String httpParams; - private String httpBody; + private String httpRequestBody; private String httpResponseMapping; @Override @@ -94,11 +94,11 @@ public class HttpRequestParameterProcessor extends ParameterProcessor { public void setHttpParams(String httpParams) { this.httpParams = httpParams; } - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } public String getHttpResponseMapping() { return httpResponseMapping; diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/FolderResource.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/FolderResource.java new file mode 100644 index 00000000..6e985ea8 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/FolderResource.java @@ -0,0 +1,13 @@ +package io.sc.engine.rule.core.vo.resource; + +import io.sc.engine.rule.core.enums.ResourceType; + +/** + * 文件夹资源实体类 + */ +public class FolderResource extends Resource { + @Override + public ResourceType getType() { + return ResourceType.FOLDER; + } +} diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ModelResource.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ModelResource.java new file mode 100644 index 00000000..e2572947 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ModelResource.java @@ -0,0 +1,24 @@ +package io.sc.engine.rule.core.vo.resource; + +import com.fasterxml.jackson.annotation.JsonIgnore; +import io.sc.engine.rule.core.enums.ResourceType; + +/** + * 模型资源实体类 + */ +public class ModelResource extends ReleasableResource { + @JsonIgnore + private String model;//模型 + + @Override + public ResourceType getType() { + return ResourceType.MODEL; + } + + public String getModel() { + return model; + } + public void setModel(String model) { + this.model = model; + } +} diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ReleasableResource.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ReleasableResource.java new file mode 100644 index 00000000..a4744653 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/ReleasableResource.java @@ -0,0 +1,74 @@ +package io.sc.engine.rule.core.vo.resource; + +import io.sc.engine.rule.core.enums.DeployStatus; + +import java.util.Date; + +/** + * 可版本化资源 + */ +public abstract class ReleasableResource extends Resource { + protected DeployStatus status;//状态 + protected Integer version;//版本 + protected Date effectiveDate;//生效日期 + protected String imports;//引入外部包 + protected int attachmentCount;//附件个数 + protected String taskName;//审批任务节点名称 + protected String taskAssignee;//审批任务节点处理人 + + public DeployStatus getStatus() { + return status; + } + + public void setStatus(DeployStatus status) { + this.status = status; + } + + public Integer getVersion() { + return version; + } + + public void setVersion(Integer version) { + this.version = version; + } + + public Date getEffectiveDate() { + return effectiveDate; + } + + public void setEffectiveDate(Date effectiveDate) { + this.effectiveDate = effectiveDate; + } + + public String getImports() { + return imports; + } + + public void setImports(String imports) { + this.imports = imports; + } + + public int getAttachmentCount() { + return attachmentCount; + } + + public void setAttachmentCount(int attachmentCount) { + this.attachmentCount = attachmentCount; + } + + public String getTaskName() { + return taskName; + } + + public void setTaskName(String taskName) { + this.taskName = taskName; + } + + public String getTaskAssignee() { + return taskAssignee; + } + + public void setTaskAssignee(String taskAssignee) { + this.taskAssignee = taskAssignee; + } +} diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/Resource.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/Resource.java new file mode 100644 index 00000000..f282f495 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/resource/Resource.java @@ -0,0 +1,66 @@ +package io.sc.engine.rule.core.vo.resource; + +import io.sc.engine.rule.core.enums.ResourceType; +import io.sc.engine.rule.core.po.testcase.ResourceTestCase; +import io.sc.platform.orm.api.vo.AuditorVo; + +import java.util.ArrayList; +import java.util.List; + +/** + * 资源 + */ +public abstract class Resource extends AuditorVo { + protected ResourceType type;//类型(用于区分子类) + protected String id;//ID,主键 + protected String code;//代码 + protected String name;//名称 + protected String description;//描述 + protected Integer order;//排序 + protected String parent;//父 + private List children =new ArrayList();//孩子集合 + protected List testCases =new ArrayList();//测试用例 + + public ResourceType getType() { + return type; + } + public void setType(ResourceType type) { + this.type = type; + } + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public Integer getOrder() { + return order; + } + public void setOrder(Integer order) { + this.order = order; + } + public String getParent() { + return parent; + } + public void setParent(String parent) { + this.parent = parent; + } +} diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCase.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCase.java new file mode 100644 index 00000000..376ff4b5 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCase.java @@ -0,0 +1,70 @@ +package io.sc.engine.rule.core.vo.testcase; + +import io.sc.engine.rule.core.enums.TestCaseOwnerType; +import io.sc.engine.rule.core.enums.TestResult; +import io.sc.platform.orm.api.vo.AuditorVo; + +import java.util.Date; + +/** + * 测试用例 + */ +public class TestCase extends AuditorVo { + protected TestCaseOwnerType ownerType;//类型(用于区分子类) + protected String ownerId;//所有者ID + protected String id;//ID,主键 + protected String name;//名称 + protected String description;//描述 + protected Integer order;//排序 + protected Date lastTestDate;//最近一次执行测试用例的日期 + protected TestResult testResult;//最近一次执行测试用例的结果 + + public TestCaseOwnerType getOwnerType() { + return ownerType; + } + public void setOwnerType(TestCaseOwnerType ownerType) { + this.ownerType = ownerType; + } + public String getOwnerId() { + return ownerId; + } + public void setOwnerId(String ownerId) { + this.ownerId = ownerId; + } + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getName() { + return name; + } + public void setName(String name) { + this.name = name; + } + public String getDescription() { + return description; + } + public void setDescription(String description) { + this.description = description; + } + public Integer getOrder() { + return order; + } + public void setOrder(Integer order) { + this.order = order; + } + public Date getLastTestDate() { + return lastTestDate; + } + public void setLastTestDate(Date lastTestDate) { + this.lastTestDate = lastTestDate; + } + public TestResult getTestResult() { + return testResult; + } + public void setTestResult(TestResult testResult) { + this.testResult = testResult; + } +} diff --git a/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCaseParameter.java b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCaseParameter.java new file mode 100644 index 00000000..d7534163 --- /dev/null +++ b/io.sc.engine.rule.core/src/main/java/io/sc/engine/rule/core/vo/testcase/TestCaseParameter.java @@ -0,0 +1,71 @@ +package io.sc.engine.rule.core.vo.testcase; + +import io.sc.engine.rule.core.enums.TestResult; +import io.sc.platform.orm.api.vo.AuditorVo; + +/** + * 测试用例参数 + */ +public class TestCaseParameter extends AuditorVo { + protected String id;//ID,主键 + protected String code;//对应的参数代码 + protected Boolean skipCheck;//是否跳过检查 + protected String inputValue;//参数输入值 + protected String expectValue;//参数期望值 + protected String resultValue;//参数实际执行结果值 + protected TestResult testResult;//最近一次执行测试用例的结果 + protected String testCase;//所属测试用例 + + public String getId() { + return id; + } + public void setId(String id) { + this.id = id; + } + public String getCode() { + return code; + } + public void setCode(String code) { + this.code = code; + } + public Boolean getSkipCheck() { + return skipCheck; + } + public void setSkipCheck(Boolean skipCheck) { + this.skipCheck = skipCheck; + } + public String getInputValue() { + return inputValue; + } + public void setInputValue(String inputValue) { + this.inputValue = inputValue; + } + public String getExpectValue() { + return expectValue; + } + public void setExpectValue(String expectValue) { + this.expectValue = expectValue; + } + public String getResultValue() { + return resultValue; + } + public void setResultValue(String resultValue) { + this.resultValue = resultValue; + } + public TestResult getTestResult() { + return testResult; + } + public void setTestResult(TestResult testResult) { + this.testResult = testResult; + } + public String getTestCase() { + return testCase; + } + public void setTestCase(String testCase) { + this.testCase = testCase; + } + + public void clearTestResult() { + this.setTestResult(null); + } +} diff --git a/io.sc.engine.rule.frontend/package.json b/io.sc.engine.rule.frontend/package.json index fdeb2edb..73d49465 100644 --- a/io.sc.engine.rule.frontend/package.json +++ b/io.sc.engine.rule.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.engine.rule.frontend/src/i18n/messages.json b/io.sc.engine.rule.frontend/src/i18n/messages.json index c2224c49..00aea1e3 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages.json @@ -79,31 +79,46 @@ "re.resources.designer.processor.grid.title": "Processor", "re.resources.designer.processor.grid.entity.content": "Content", + "re.resources.designer.processor.grid.entity.arithmetic": "Arithmetic", + "re.resources.designer.processor.grid.entity.conditionRangeVar": "Condition Range Variable", + "re.resources.designer.processor.grid.entity.conditionRange": "Condition Range", + "re.resources.designer.processor.grid.entity.decisionTable": "Decision Table", + "re.resources.designer.processor.grid.entity.decisionTable2C": "Simple Decision Table", + "re.resources.designer.processor.grid.entity.decisionTree": "Decision Tree", + "re.resources.designer.processor.grid.entity.executionFlow": "Execution Flow", + "re.resources.designer.processor.grid.entity.groovyScript": "Script", + "re.resources.designer.processor.grid.entity.httpMethod": "Http Method", + "re.resources.designer.processor.grid.entity.httpUrl": "URL", + "re.resources.designer.processor.grid.entity.httpAuthType": "Authorization Type", + "re.resources.designer.processor.grid.entity.httpAuthApikey": "API Key", + "re.resources.designer.processor.grid.entity.httpAuthApiValue": "API Value", + "re.resources.designer.processor.grid.entity.httpAuthBasicUsername": "User Name", + "re.resources.designer.processor.grid.entity.httpAuthBasicPassword": "Password", + "re.resources.designer.processor.grid.entity.httpAuthBearerToken": "Bearer Token", + "re.resources.designer.processor.grid.entity.httpRequestBody": "Request Body", + "re.resources.designer.processor.grid.entity.httpResponseBody": "Response Body", + "re.resources.designer.processor.grid.entity.httpResponseMapping": "Response Mapping", + "re.resources.designer.processor.grid.entity.mathFormula": "Math Formula", + "re.resources.designer.processor.grid.entity.numberRangeVar": "Number Range Variable", + "re.resources.designer.processor.grid.entity.numberRange": "Number Range", "re.resources.designer.processor.grid.entity.objectCondition": "Condition", "re.resources.designer.processor.grid.entity.objectProperties": "Object Properties", "re.resources.designer.processor.grid.entity.optionCode": "Option", - "re.resources.designer.processor.grid.entity.arithmetic": "Arithmetic", + "re.resources.designer.processor.grid.entity.pmml": "PMML", + "re.resources.designer.processor.grid.entity.rule": "Rule", + "re.resources.designer.processor.grid.entity.scoreCard": "Score Card", + "re.resources.designer.processor.grid.entity.singleRule": "Single Rule", + "re.resources.designer.processor.grid.entity.sqlDatasourceName": "Datasource Name", + "re.resources.designer.processor.grid.entity.sql": "SQL", + "re.resources.designer.processor.grid.entity.sqlParameterValues": "Parameter Values", + "re.resources.designer.processor.grid.entity.sqlQueryResult": "Query Result", + "re.resources.designer.processor.grid.entity.sqlFieldMapping": "Result Mapping", "re.resources.designer.processor.grid.entity.ternaryCondition": "Ternary Condition", "re.resources.designer.processor.grid.entity.ternaryTrue": "Ternary True", "re.resources.designer.processor.grid.entity.ternaryFalse": "Ternary False", "re.resources.designer.processor.grid.entity.when": "When Expression", "re.resources.designer.processor.grid.entity.then": "Then Expression", "re.resources.designer.processor.grid.entity.isWhenThenShorted": "Shorted", - "re.resources.designer.processor.grid.entity.numberRangeVar": "Number Range Expression", - "re.resources.designer.processor.grid.entity.numberRange": "Number Range", - "re.resources.designer.processor.grid.entity.conditionRangeVar": "Condition Range", - "re.resources.designer.processor.grid.entity.conditionRange": "Condition Range", - "re.resources.designer.processor.grid.entity.pmml": "PMML", - "re.resources.designer.processor.grid.entity.decisionTable2C": "Simple Decision Table", - "re.resources.designer.processor.grid.entity.decisionTable": "Decision Table", - "re.resources.designer.processor.grid.entity.groovyScript": "Script", - "re.resources.designer.processor.grid.entity.sqlDatasourceName": "Datasource Name", - "re.resources.designer.processor.grid.entity.sql": "SQL", - "re.resources.designer.processor.grid.entity.sqlParameterValues": "Parameter Values", - "re.resources.designer.processor.grid.entity.sqlQueryResult": "Result", - "re.resources.designer.processor.grid.entity.sqlFieldMapping": "Result Mapping", - "re.resources.designer.processor.grid.entity.rule": "Rule", - "re.resources.designer.processor.grid.entity.singleRule": "Single Rule", "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "Add Column at Left", "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "Add Column at Right", diff --git a/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json b/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json index ee91a06d..9d550ffd 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages_tw_CN.json @@ -79,31 +79,46 @@ "re.resources.designer.processor.grid.title": "處理邏輯", "re.resources.designer.processor.grid.entity.content": "內容", - "re.resources.designer.processor.grid.entity.objectCondition": "條件", - "re.resources.designer.processor.grid.entity.objectProperties": "對象屬性", - "re.resources.designer.processor.grid.entity.optionCode": "選項", "re.resources.designer.processor.grid.entity.arithmetic": "算數表達式", - "re.resources.designer.processor.grid.entity.ternaryCondition": "條件", - "re.resources.designer.processor.grid.entity.ternaryTrue": "條件滿足時", - "re.resources.designer.processor.grid.entity.ternaryFalse": "條件不滿足時", - "re.resources.designer.processor.grid.entity.when": "When 表達式", - "re.resources.designer.processor.grid.entity.then": "Then 表達式", - "re.resources.designer.processor.grid.entity.isWhenThenShorted": "跳過後續操作", - "re.resources.designer.processor.grid.entity.numberRangeVar": "數值分段表達式", - "re.resources.designer.processor.grid.entity.numberRange": "數值分段", - "re.resources.designer.processor.grid.entity.conditionRangeVar": "條件分段", + "re.resources.designer.processor.grid.entity.conditionRangeVar": "条件分段", "re.resources.designer.processor.grid.entity.conditionRange": "條件分段", - "re.resources.designer.processor.grid.entity.pmml": "PMML", - "re.resources.designer.processor.grid.entity.decisionTable2C": "簡單決策表", "re.resources.designer.processor.grid.entity.decisionTable": "決策表", + "re.resources.designer.processor.grid.entity.decisionTable2C": "簡單決策表", + "re.resources.designer.processor.grid.entity.decisionTree": "決策樹", + "re.resources.designer.processor.grid.entity.executionFlow": "執行流", "re.resources.designer.processor.grid.entity.groovyScript": "腳本代碼", + "re.resources.designer.processor.grid.entity.httpMethod": "請求方法", + "re.resources.designer.processor.grid.entity.httpUrl": "URL", + "re.resources.designer.processor.grid.entity.httpAuthType": "認證類型", + "re.resources.designer.processor.grid.entity.httpAuthApikey": "API Key", + "re.resources.designer.processor.grid.entity.httpAuthApiValue": "API Value", + "re.resources.designer.processor.grid.entity.httpAuthBasicUsername": "用戶名", + "re.resources.designer.processor.grid.entity.httpAuthBasicPassword": "密碼", + "re.resources.designer.processor.grid.entity.httpAuthBearerToken": "Bearer Token", + "re.resources.designer.processor.grid.entity.httpRequestBody": "請求體", + "re.resources.designer.processor.grid.entity.httpResponseBody": "響應體", + "re.resources.designer.processor.grid.entity.httpResponseMapping": "響應映射", + "re.resources.designer.processor.grid.entity.mathFormula": "數學公式", + "re.resources.designer.processor.grid.entity.numberRangeVar": "數值分段表達式", + "re.resources.designer.processor.grid.entity.numberRange": "數值分段", + "re.resources.designer.processor.grid.entity.objectCondition": "條件", + "re.resources.designer.processor.grid.entity.objectProperties": "對象屬性", + "re.resources.designer.processor.grid.entity.optionCode": "選項", + "re.resources.designer.processor.grid.entity.pmml": "PMML", + "re.resources.designer.processor.grid.entity.rule": "規則", + "re.resources.designer.processor.grid.entity.scoreCard": "評分卡", + "re.resources.designer.processor.grid.entity.singleRule": "單規則", "re.resources.designer.processor.grid.entity.sqlDatasourceName": "數據源名稱", "re.resources.designer.processor.grid.entity.sql": "SQL 語句", "re.resources.designer.processor.grid.entity.sqlParameterValues": "參數值", "re.resources.designer.processor.grid.entity.sqlQueryResult": "執行結果", "re.resources.designer.processor.grid.entity.sqlFieldMapping": "結果映射", - "re.resources.designer.processor.grid.entity.rule": "規則", - "re.resources.designer.processor.grid.entity.singleRule": "單規則", + "re.resources.designer.processor.grid.entity.ternaryCondition": "條件", + "re.resources.designer.processor.grid.entity.ternaryTrue": "條件滿足時", + "re.resources.designer.processor.grid.entity.ternaryFalse": "條件不滿足時", + "re.resources.designer.processor.grid.entity.when": "When 表達式", + "re.resources.designer.processor.grid.entity.then": "Then 表達式", + "re.resources.designer.processor.grid.entity.isWhenThenShorted": "跳過後續操作", "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "在左邊新增列", "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "在右邊新增列", diff --git a/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json b/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json index 1f39f176..ea6cb55a 100644 --- a/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json +++ b/io.sc.engine.rule.frontend/src/i18n/messages_zh_CN.json @@ -79,37 +79,46 @@ "re.resources.designer.processor.grid.title": "处理逻辑", "re.resources.designer.processor.grid.entity.content": "内容", - "re.resources.designer.processor.grid.entity.objectCondition": "条件", - "re.resources.designer.processor.grid.entity.objectProperties": "对象属性", - "re.resources.designer.processor.grid.entity.optionCode": "选项", "re.resources.designer.processor.grid.entity.arithmetic": "算数表达式", - "re.resources.designer.processor.grid.entity.ternaryCondition": "条件", - "re.resources.designer.processor.grid.entity.ternaryTrue": "条件满足时", - "re.resources.designer.processor.grid.entity.ternaryFalse": "条件不满足时", - "re.resources.designer.processor.grid.entity.when": "When 表达式", - "re.resources.designer.processor.grid.entity.then": "Then 表达式", - "re.resources.designer.processor.grid.entity.isWhenThenShorted": "跳过后续操作", - "re.resources.designer.processor.grid.entity.numberRangeVar": "数值分段表达式", - "re.resources.designer.processor.grid.entity.numberRange": "数值分段", "re.resources.designer.processor.grid.entity.conditionRangeVar": "条件分段", "re.resources.designer.processor.grid.entity.conditionRange": "条件分段", - "re.resources.designer.processor.grid.entity.pmml": "PMML", - "re.resources.designer.processor.grid.entity.decisionTable2C": "简单决策表", "re.resources.designer.processor.grid.entity.decisionTable": "决策表", + "re.resources.designer.processor.grid.entity.decisionTable2C": "简单决策表", + "re.resources.designer.processor.grid.entity.decisionTree": "决策树", + "re.resources.designer.processor.grid.entity.executionFlow": "执行流", "re.resources.designer.processor.grid.entity.groovyScript": "脚本代码", - "re.resources.designer.processor.grid.entity.sqlDatasourceName": "数据源名称", - "re.resources.designer.processor.grid.entity.sql": "SQL 语句", - "re.resources.designer.processor.grid.entity.sqlParameterValues": "参数值", - "re.resources.designer.processor.grid.entity.sqlQueryResult": "执行结果", - "re.resources.designer.processor.grid.entity.sqlFieldMapping": "结果映射", "re.resources.designer.processor.grid.entity.httpMethod": "请求方法", "re.resources.designer.processor.grid.entity.httpUrl": "URL", "re.resources.designer.processor.grid.entity.httpAuthType": "认证类型", - "re.resources.designer.processor.grid.entity.httpMethod": "请求方法", - "re.resources.designer.processor.grid.entity.httpMethod": "请求方法", - + "re.resources.designer.processor.grid.entity.httpAuthApikey": "API Key", + "re.resources.designer.processor.grid.entity.httpAuthApiValue": "API Value", + "re.resources.designer.processor.grid.entity.httpAuthBasicUsername": "用户名", + "re.resources.designer.processor.grid.entity.httpAuthBasicPassword": "密码", + "re.resources.designer.processor.grid.entity.httpAuthBearerToken": "Bearer Token", + "re.resources.designer.processor.grid.entity.httpRequestBody": "请求体", + "re.resources.designer.processor.grid.entity.httpResponseBody": "响应体", + "re.resources.designer.processor.grid.entity.httpResponseMapping": "响应映射", + "re.resources.designer.processor.grid.entity.mathFormula": "数学公式", + "re.resources.designer.processor.grid.entity.numberRangeVar": "数值分段表达式", + "re.resources.designer.processor.grid.entity.numberRange": "数值分段", + "re.resources.designer.processor.grid.entity.objectCondition": "条件", + "re.resources.designer.processor.grid.entity.objectProperties": "对象属性", + "re.resources.designer.processor.grid.entity.optionCode": "选项", + "re.resources.designer.processor.grid.entity.pmml": "PMML", "re.resources.designer.processor.grid.entity.rule": "规则", + "re.resources.designer.processor.grid.entity.scoreCard": "评分卡", "re.resources.designer.processor.grid.entity.singleRule": "单规则", + "re.resources.designer.processor.grid.entity.sqlDatasourceName": "数据源名称", + "re.resources.designer.processor.grid.entity.sql": "SQL 语句", + "re.resources.designer.processor.grid.entity.sqlParameterValues": "参数值", + "re.resources.designer.processor.grid.entity.sqlQueryResult": "执行结果", + "re.resources.designer.processor.grid.entity.sqlFieldMapping": "结果映射", + "re.resources.designer.processor.grid.entity.ternaryCondition": "条件", + "re.resources.designer.processor.grid.entity.ternaryTrue": "条件满足时", + "re.resources.designer.processor.grid.entity.ternaryFalse": "条件不满足时", + "re.resources.designer.processor.grid.entity.when": "When 表达式", + "re.resources.designer.processor.grid.entity.then": "Then 表达式", + "re.resources.designer.processor.grid.entity.isWhenThenShorted": "跳过后续操作", "re.resources.designer.processor.decisionTable.toolbar.addCol2Left": "在左边新增列", "re.resources.designer.processor.decisionTable.toolbar.addCol2Right": "在右边新增列", diff --git a/io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue b/io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue index 32aafc88..dec4275a 100644 --- a/io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue +++ b/io.sc.engine.rule.frontend/src/views/dictionary/dictionary.vue @@ -5,7 +5,7 @@ { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'ARITHMETIC'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -37,7 +41,7 @@ class Arithmetic extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'arithmetic', label: $t('re.resources.designer.processor.grid.entity.arithmetic'), type: 'w-code-mirror', @@ -49,7 +53,7 @@ class Arithmetic extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'ARITHMETIC' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -62,7 +66,7 @@ class Arithmetic extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/ConditionRange.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/ConditionRange.ts index bf51133b..112cb0fd 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/ConditionRange.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/ConditionRange.ts @@ -3,20 +3,24 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class ConditionRange extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'CONDITION_RANGE'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'conditionRange', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.CONDITION_RANGE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-card-checklist', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'CONDITION_RANGE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -39,11 +43,11 @@ class ConditionRange extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'conditionRange', label: $t('re.resources.designer.processor.grid.entity.conditionRange'), showIf: (args: any) => { - return 'CONDITION_RANGE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 300, @@ -154,7 +158,7 @@ class ConditionRange extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); // 初始化代码编辑器的自动完成提示管理器 this.initAutoCompletionManager(); // 初始化代码编辑器的用户自定义函数管理器 diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable.ts index ac00e49d..ddd2cd0e 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable.ts @@ -4,21 +4,26 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class DecisionTable extends Processor { - #editorDialogWidth: number = 1024; protected columnsRef = ref([]); + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'DECISION_TABLE'; + this.EDITOR_DIALOG_WIDTH = 1024; + } + public getToolbarAction(): any { return { extend: 'add', name: 'decisionTable', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.DECISION_TABLE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-grid-3x3', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'DECISION_TABLE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -50,11 +55,11 @@ class DecisionTable extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'decisionTable', label: $t('re.resources.designer.processor.grid.entity.decisionTable'), showIf: (args: any) => { - return 'DECISION_TABLE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 300, @@ -219,7 +224,7 @@ class DecisionTable extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable2c.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable2c.ts index fa15f0ee..9a362622 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable2c.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTable2c.ts @@ -5,20 +5,24 @@ import { DecisionTable } from './DecisionTable'; import { PlaceHolder } from '@/utils/PlaceHolder'; class DecisionTable2C extends DecisionTable { - #editorDialogWidth: number = 1024; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'DECISION_TABLE_2C'; + this.EDITOR_DIALOG_WIDTH = 1024; + } public getToolbarAction(): any { return { extend: 'add', name: 'decisionTable2C', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.DECISION_TABLE_2C'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-grid-3x2', enableIf: (args) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'DECISION_TABLE_2C'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -44,11 +48,11 @@ class DecisionTable2C extends DecisionTable { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'decisionTable2C', label: $t('re.resources.designer.processor.grid.entity.decisionTable2C'), showIf: (args: any) => { - return 'DECISION_TABLE_2C' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 300, @@ -190,7 +194,7 @@ class DecisionTable2C extends DecisionTable { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTree.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTree.ts index 1d977008..3529da1f 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTree.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/DecisionTree.ts @@ -2,18 +2,23 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class DecisionTree extends Processor { + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'DECISION_TREE'; + } + public getToolbarAction(): any { return { extend: 'add', name: 'decisionTree', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.DECISION_TREE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-tree', enableIf: (args) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'DECISION_TREE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -29,7 +34,7 @@ class DecisionTree extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'decisionTree', label: $t('re.resources.designer.processor.grid.entity.decisionTree'), type: 'w-code-mirror', @@ -37,7 +42,7 @@ class DecisionTree extends Processor { lineNumber: true, toolbar: false, showIf: (args: any) => { - return 'DECISION_TREE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/ExecutionFlow.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/ExecutionFlow.ts index 509e3553..57ad38e1 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/ExecutionFlow.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/ExecutionFlow.ts @@ -2,18 +2,23 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class ExecutionFlow extends Processor { + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'EXECUTION_FLOW'; + } + public getToolbarAction(): any { return { extend: 'add', name: 'executionFlow', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.EXECUTION_FLOW'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-bounding-box-circles', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'EXECUTION_FLOW'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -29,7 +34,7 @@ class ExecutionFlow extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'executionFlow', label: $t('re.resources.designer.processor.grid.entity.executionFlow'), type: 'w-code-mirror', @@ -37,7 +42,7 @@ class ExecutionFlow extends Processor { lineNumber: true, toolbar: false, showIf: (args: any) => { - return 'EXECUTION_FLOW' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/GroovyScript.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/GroovyScript.ts index c3d01fae..3987028b 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/GroovyScript.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/GroovyScript.ts @@ -2,20 +2,24 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class GroovyScript extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'GROOVY_SCRIPT'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'groovyScript', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.GROOVY_SCRIPT'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-code', enableIf: (args) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'GROOVY_SCRIPT'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -30,7 +34,7 @@ class GroovyScript extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'groovyScript', label: $t('re.resources.designer.processor.grid.entity.groovyScript'), type: 'w-code-mirror', @@ -43,7 +47,7 @@ class GroovyScript extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'GROOVY_SCRIPT' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -56,7 +60,7 @@ class GroovyScript extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/HttpRequest.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/HttpRequest.ts index 8970c1d2..839161cb 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/HttpRequest.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/HttpRequest.ts @@ -4,386 +4,195 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class HttpRequest extends Processor { - #editorDialogWidth: number = 1280; #HttpMethodTypeEnum: any; #httpMethodTypeOptionsRef = ref([]); - #parameterOptionsRef = ref([]); - #sqlQueryResultFieldsRef = ref([]); - #editorForm: any; + #HttpAuthorizationTypeEnum: any; + #httpAuthorizationTypeOptionsRef = ref([]); constructor(targetType: string, context?: any) { super(targetType, context); - EnumTools.fetch(['io.sc.engine.rule.core.enums.HttpMethodType']).then((value) => { + this.PROCESSOR_TYPE = 'HTTP_REQUEST'; + this.EDITOR_DIALOG_WIDTH = 1024; + EnumTools.fetch(['io.sc.engine.rule.core.enums.HttpMethodType', 'io.sc.engine.rule.core.enums.HttpAuthorizationType']).then((value) => { this.#HttpMethodTypeEnum = value.HttpMethodType; this.#httpMethodTypeOptionsRef = Options.enum(this.#HttpMethodTypeEnum); + this.#HttpAuthorizationTypeEnum = value.HttpAuthorizationType; + this.#httpAuthorizationTypeOptionsRef = Options.enum(this.#HttpAuthorizationTypeEnum); }); - if (this.targetType === Processor.PARAMETER) { - axios.get(Environment.apiContextPath('/api/re/model/parameter/listParemtersByParameterId/' + this.context.target.id)).then((response) => { - this.#parameterOptionsRef.value = Tools.objects2Options(response.data, 'name', 'code'); - }); - } } public getToolbarAction(): any { return { extend: 'add', name: 'http', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.HTTP_REQUEST'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'sync_alt', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'HTTP_REQUEST'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } public format(row: any): any { - return { - componentType: 'w-code-mirror', - attrs: { - lang: 'sql', - rows: 4, - editable: false, - modelValue: row.sql, - placeholder: true, - }, - }; + return row.httpMethod + ', ' + PlaceHolder.replace(row.httpUrl); } public getEditorFields(): any { return [ { - colSpan: 2, + colSpan: 3, name: 'httpMethod', label: $t('re.resources.designer.processor.grid.entity.httpMethod'), type: 'w-select', - clearable: true, options: this.#httpMethodTypeOptionsRef, rows: 1, showIf: (args: any) => { - return 'HTTP_REQUEST' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 5, - name: 'sql', + colSpan: 9, + name: 'httpUrl', label: $t('re.resources.designer.processor.grid.entity.httpUrl'), type: 'w-text', showIf: (args: any) => { - return 'HTTP_REQUEST' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { colSpan: 3, - name: 'sqlParameterValues', - label: $t('re.resources.designer.processor.grid.entity.sqlParameterValues'), + name: 'httpAuthType', + label: $t('re.resources.designer.processor.grid.entity.httpAuthType'), + type: 'w-select', + options: this.#httpAuthorizationTypeOptionsRef, showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); - }, - type: 'w-grid', - height: 150, - title: $t('re.resources.designer.processor.grid.entity.sqlParameterValues'), - autoFetchData: false, - dense: true, - dbClickOperation: 'edit', - dndMode: 'local', - pageable: false, - configButton: false, - toolbarConfigure: { noIcon: false }, - toolbarActions: [ - { - name: 'analyze', - label: $t('analyze'), - icon: 'bi-tag', - click: (args: any) => { - const sql = args.grid.getEditorForm().getFieldValue('sql'); - const regex = /\$\{[\u0000-\uFFFF]+?\}/g; - const array: any[] = sql.match(regex); - const rows: any[] = []; - array.forEach((item) => { - rows.push({ name: item, value: '' }); - }); - const grid = args.grid.getEditorForm().getFieldComponent('sqlParameterValues'); - grid.setLocalData(rows); - }, - }, - 'separator', - 'add', - 'edit', - [ - { - extend: 'remove', - click: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlParameterValues'); - grid.removeRows(args.selecteds); - }, - }, - { - extend: 'remove', - name: 'removeAll', - label: $t('deleteAll'), - click: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlParameterValues'); - grid.setLocalData([]); - }, - }, - ], - ], - columns: [ - { - width: '50%', - name: 'name', - label: $t('name'), - align: 'left', - sortable: false, - format: (value: any) => { - return PlaceHolder.replace(value); - }, - }, - { - width: '100%', - name: 'value', - label: $t('value'), - sortable: false, - }, - ], - editor: { - dialog: { - width: '600px', - }, - form: { - colsNum: 1, - fields: [ - { - name: 'name', - label: $t('name'), - type: 'w-code-mirror', - toolbar: false, - lang: 'java', - rows: 1, - placeholder: true, - autoCompletion: this.autoCompletionManager.autoCompletion(), - }, - { - name: 'value', - label: $t('value'), - type: 'w-text', - }, - ], - }, + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, - onBeforeEditorDataSubmit: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlParameterValues'); - const form = grid.getEditorForm(); - if ('add' == form.getStatus() || 'clone' == form.getStatus()) { - grid.addLocalData(args.data); - args.callback(false); - } else if ('edit' == form.getStatus()) { - grid.updateLocalData(args.data); - args.callback(false); - } + }, + { + colSpan: 3, + name: 'httpAuthApikey', + label: $t('re.resources.designer.processor.grid.entity.httpAuthApikey'), + type: 'w-text', + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE && args.form.getFieldValue('httpAuthType') === 'API_KEY'; }, }, { - colSpan: 4, - name: 'sqlQueryResult', - label: $t('re.resources.designer.processor.grid.entity.sqlQueryResult'), + colSpan: 6, + name: 'httpAuthApiValue', + label: $t('re.resources.designer.processor.grid.entity.httpAuthApiValue'), + type: 'w-text', showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE && args.form.getFieldValue('httpAuthType') === 'API_KEY'; }, - type: 'w-grid', - height: 250, - autoFetchData: false, - title: $t('re.resources.designer.processor.grid.entity.sqlQueryResult'), - dense: true, - dndMode: 'local', - pageable: false, - checkboxSelection: false, - configButton: false, - toolbarConfigure: { noIcon: false }, - toolbarActions: [ - { - name: 'execute', - label: $t('execute'), - icon: 'bi-caret-right', - click: (args: any) => { - const sql = this.#editorForm.getFieldValue('sql'); - const grid = this.#editorForm.getFieldComponent('sqlParameterValues'); - const sqlParameterValues = grid?.getRows(); - axios - .post(Environment.apiContextPath('/api/re/model/parameter/processor/executeSql'), { - sql: sql, - sqlParameterValues: sqlParameterValues, - }) - .then((response) => { - const fieldMetaDatas: any[] = response.data.fieldMetaDatas; - fieldMetaDatas.forEach((field) => { - field.value = field.name; - field.label = field.name; - }); - const data = response.data.data; - const grid = this.#editorForm.getFieldComponent('sqlQueryResult'); - this.#sqlQueryResultFieldsRef.value = fieldMetaDatas; - grid.setLocalData(data); - }); - }, - }, - ], - columns: computed(() => { - return this.#sqlQueryResultFieldsRef.value; - }), }, { colSpan: 3, - name: 'sqlFieldMapping', - label: $t('re.resources.designer.processor.grid.entity.sqlFieldMapping'), + name: 'httpAuthBasicUsername', + label: $t('re.resources.designer.processor.grid.entity.httpAuthBasicUsername'), + type: 'w-text', showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE && args.form.getFieldValue('httpAuthType') === 'BASIC_AUTH'; }, - type: 'w-grid', - height: 250, - width: '100%', - autoFetchData: false, - title: $t('re.resources.designer.processor.grid.entity.sqlFieldMapping'), - dense: true, - dbClickOperation: 'edit', - dndMode: 'local', - pageable: false, - configButton: false, - toolbarConfigure: { noIcon: false }, - toolbarActions: [ - 'add', - 'edit', - [ - { - extend: 'remove', - click: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlFieldMapping'); - grid.removeLocalData(args.selecteds); - }, - }, - { - extend: 'remove', - name: 'removeAll', - label: $t('deleteAll'), - click: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlFieldMapping'); - grid.setLocalData([]); - }, - }, - ], - ], - columns: [ - { - width: '50%', - name: 'parameter', - label: $t('parameterName'), - sortable: false, - format: (value: any) => { - return PlaceHolder.replace(value); - }, - }, - { - width: '50%', - name: 'field', - label: $t('fieldName'), - align: 'left', - sortable: false, - }, - ], - editor: { - dialog: { - width: '600px', - }, - form: { - colsNum: 1, - fields: [ - { - name: 'parameter', - label: $t('parameterName'), - type: 'w-select', - options: this.#parameterOptionsRef.value, - }, - { - name: 'field', - label: $t('fieldName'), - type: 'w-select', - options: this.#sqlQueryResultFieldsRef.value, - }, - ], - }, + }, + { + colSpan: 6, + name: 'httpAuthBasicPassword', + label: $t('re.resources.designer.processor.grid.entity.httpAuthBasicPassword'), + type: 'w-text', + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE && args.form.getFieldValue('httpAuthType') === 'BASIC_AUTH'; }, - onBeforeEditorDataSubmit: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlFieldMapping'); - const form = grid.getEditorForm(); - if ('add' == form.getStatus() || 'clone' == form.getStatus()) { - grid.addLocalData(args.data); - args.callback(false); - } else if ('edit' == form.getStatus()) { - grid.updateLocalData(args.data); - args.callback(false); - } + }, + { + colSpan: 9, + name: 'httpAuthBearerToken', + label: $t('re.resources.designer.processor.grid.entity.httpAuthBearerToken'), + type: 'w-text', + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE && args.form.getFieldValue('httpAuthType') === 'BEARER'; }, }, + { + colSpan: 12, + name: 'httpRequestBody', + label: $t('re.resources.designer.processor.grid.entity.httpRequestBody'), + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; + }, + type: 'w-code-mirror', + rows: 4, + toolbar: false, + lineNumber: false, + lang: 'json', + lineWrap: false, + lineBreak: true, + placeholder: true, + autoCompletion: this.autoCompletionManager.autoCompletion(), + userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), + }, + { + colSpan: 12, + name: 'httpResponseBody', + label: $t('re.resources.designer.processor.grid.entity.httpResponseBody'), + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; + }, + type: 'w-code-mirror', + lang: 'json', + rows: 5, + toolbar: false, + lineNumber: false, + lineWrap: false, + lineBreak: true, + }, + { + colSpan: 12, + name: 'httpResponseMapping', + label: $t('re.resources.designer.processor.grid.entity.httpResponseMapping'), + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; + }, + type: 'w-code-mirror', + rows: 8, + toolbar: false, + lineNumber: false, + lang: 'json', + lineWrap: false, + lineBreak: true, + placeholder: true, + autoCompletion: this.autoCompletionManager.autoCompletion(), + userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), + }, ]; } public getViewerFields(): any { return [ - { name: 'sqlDatasourceName', label: $t('re.resources.designer.processor.grid.entity.sqlDatasourceName') }, - { name: 'sql', label: $t('re.resources.designer.processor.grid.entity.sql') }, - { name: 'sqlParameterValues', label: $t('re.resources.designer.processor.grid.entity.sqlParameterValues') }, - { name: 'sqlFieldMapping', label: $t('re.resources.designer.processor.grid.entity.sqlFieldMapping') }, + { name: 'httpMethod', label: $t('re.resources.designer.processor.grid.entity.httpMethod') }, + { name: 'httpUrl', label: $t('re.resources.designer.processor.grid.entity.httpUrl') }, + { name: 'httpAuthType', label: $t('re.resources.designer.processor.grid.entity.httpAuthType') }, + { name: 'httpAuthApikey', label: $t('re.resources.designer.processor.grid.entity.httpAuthApikey') }, + { name: 'httpAuthApiValue', label: $t('re.resources.designer.processor.grid.entity.httpAuthApiValue') }, + { name: 'httpAuthBasicUsername', label: $t('re.resources.designer.processor.grid.entity.httpAuthBasicUsername') }, + { name: 'httpAuthBasicPassword', label: $t('re.resources.designer.processor.grid.entity.httpAuthBasicPassword') }, + { name: 'httpAuthBearerToken', label: $t('re.resources.designer.processor.grid.entity.httpAuthBearerToken') }, + { name: 'httpRequestBody', label: $t('re.resources.designer.processor.grid.entity.httpRequestBody') }, + { name: 'httpResponseMapping', label: $t('re.resources.designer.processor.grid.entity.httpResponseMapping') }, ]; } - public beforeEditorDataSubmit(args: any): void { - const form = args.grid.getEditorForm(); - const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues'); - const sqlParameterValuesLocalData: any[] = sqlParameterValuesGrid.getRows(); - const sqlParameterValues: any[] = []; - sqlParameterValuesLocalData.forEach((item) => { - sqlParameterValues.push({ - name: item.name, - value: item.value, - }); - }); - args.data.sqlParameterValues = Tools.object2Json(sqlParameterValues); - - const sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping'); - const sqlFieldMappingLocalData: any[] = sqlFieldMappingGrid.getRows(); - const sqlFieldMapping: any[] = Tools.objects2Objects(sqlFieldMappingLocalData, { field: 'field', parameter: 'parameter' }); - args.data.sqlFieldMapping = Tools.object2Json(sqlFieldMapping); - } + public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); - - this.#editorForm = args.grid.getEditorForm(); - const form = args.grid.getEditorForm(); - const row = args.data; - - axios.get(Environment.apiContextPath('api/re/model/parameter/findParametersByParameterId?parameterId=' + this.context.target.id)).then((response) => { - this.#parameterOptionsRef.value = Tools.objects2Objects(response.data, { - label: 'name', - value: (parameter: any) => { - return '${' + parameter.name + '}'; - }, - }); - }); - - const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues'); - const sqlParameterValuesRows = Tools.json2Object(row.sqlParameterValues); - sqlParameterValuesGrid.setLocalData(sqlParameterValuesRows); - - const sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping'); - const sqlFieldMappingRows = Tools.json2Object(row.sqlFieldMapping); - sqlFieldMappingGrid.setLocalData(sqlFieldMappingRows); } } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/MathFormula.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/MathFormula.ts index 4404e0e1..d4ddff84 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/MathFormula.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/MathFormula.ts @@ -2,20 +2,24 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class MathFormula extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'MATH_FORMULA'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'mathFormula', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.MATH_FORMULA'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-superscript', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'MATH_FORMULA'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -34,14 +38,14 @@ class MathFormula extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'mathFormula', label: $t('re.resources.designer.processor.grid.entity.mathFormula'), type: 'w-math', autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'MATH_FORMULA' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -54,7 +58,7 @@ class MathFormula extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/NumberRange.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/NumberRange.ts index 2b8af28d..d6d4be4e 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/NumberRange.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/NumberRange.ts @@ -3,20 +3,24 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class NumberRange extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'NUMBER_RANGE'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'numberRange', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.NUMBER_RANGE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-justify', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'NUMBER_RANGE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -43,11 +47,11 @@ class NumberRange extends Processor { const result: any[] = []; if (this.targetType !== Processor.SCORE_CARD) { result.push({ - colSpan: 7, + colSpan: 12, name: 'numberRangeVar', label: $t('re.resources.designer.processor.grid.entity.numberRangeVar'), showIf: (args: any) => { - return 'NUMBER_RANGE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-code-mirror', lang: 'java', @@ -60,11 +64,11 @@ class NumberRange extends Processor { }); } result.push({ - colSpan: 7, + colSpan: 12, name: 'numberRange', label: $t('re.resources.designer.processor.grid.entity.numberRange'), showIf: (args: any) => { - return 'NUMBER_RANGE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 300, @@ -173,7 +177,7 @@ class NumberRange extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/ObjectProperties.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/ObjectProperties.ts index dd80db61..04ed6552 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/ObjectProperties.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/ObjectProperties.ts @@ -4,19 +4,23 @@ import { PlaceHolder } from '@/utils/PlaceHolder'; import { ValueTypeUtil } from '@/utils/ValueTypeUtil'; class ObjectProperties extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'OBJECT_PROPERTIES'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'objectProperties', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.OBJECT_PROPERTIES'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-list-task', enableIf: (args: any) => { return !ValueTypeUtil.isBase(this.context.target.valueType); }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'OBJECT_PROPERTIES'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -43,7 +47,7 @@ class ObjectProperties extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'objectCondition', label: $t('re.resources.designer.processor.grid.entity.objectCondition'), type: 'w-code-mirror', @@ -54,15 +58,15 @@ class ObjectProperties extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'OBJECT_PROPERTIES' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 7, + colSpan: 12, name: 'objectProperties', label: $t('re.resources.designer.processor.grid.entity.objectProperties'), showIf: (args: any) => { - return 'OBJECT_PROPERTIES' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', title: $t('re.resources.designer.processor.grid.entity.objectProperties'), @@ -124,7 +128,7 @@ class ObjectProperties extends Processor { ], primaryKey: 'code', columns: [ - { name: 'code', label: 'code', hidden: true }, + { name: 'code', label: 'code', showIf: false }, { width: 300, name: 'name', @@ -205,7 +209,7 @@ class ObjectProperties extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/OptionValue.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/OptionValue.ts index 4be4ace3..352b0a61 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/OptionValue.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/OptionValue.ts @@ -2,23 +2,27 @@ import { ref } from 'vue'; import { $t, axios, Environment } from 'platform-core'; import { Processor } from '../Processor'; -const optionOptionsRef = ref([]); - class OptionValue extends Processor { - #editorDialogWidth: number = 400; + optionOptionsRef = ref([]); + + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'OPTION_VALUE'; + this.EDITOR_DIALOG_WIDTH = 400; + } public getToolbarAction(): any { return { extend: 'add', name: 'optionValue', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.OPTION_VALUE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-card-list', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'OPTION_VALUE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -30,13 +34,13 @@ class OptionValue extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'optionCode', label: $t('re.resources.designer.processor.grid.entity.optionCode'), type: 'w-select', - options: optionOptionsRef, + options: this.optionOptionsRef, showIf: (args: any) => { - return 'OPTION_VALUE' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -49,7 +53,7 @@ class OptionValue extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); // 获取选项输入参数列表 axios.get(Environment.apiContextPath('/api/re/model/parameter/listParemtersByParameterId/' + this.context.target.id)).then((response) => { const parameters: any[] = response.data; @@ -59,7 +63,7 @@ class OptionValue extends Processor { options.push({ label: item.name, value: item.code }); } }); - optionOptionsRef.value = options; + this.optionOptionsRef.value = options; }); } } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/Pmml.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/Pmml.ts index f5352f8c..e9a54661 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/Pmml.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/Pmml.ts @@ -2,20 +2,24 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class Pmml extends Processor { - #editorDialogWidth: number = 1024; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'PMML'; + this.EDITOR_DIALOG_WIDTH = 1024; + } public getToolbarAction(): any { return { extend: 'add', name: 'pmml', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.PMML'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-filetype-xml', enableIf: (args) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'PMML'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -31,7 +35,7 @@ class Pmml extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'pmml', label: $t('re.resources.designer.processor.grid.entity.pmml'), type: 'w-code-mirror', @@ -43,7 +47,7 @@ class Pmml extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'PMML' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -56,7 +60,7 @@ class Pmml extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/Rule.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/Rule.ts index 8bbb9fe2..e29c3017 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/Rule.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/Rule.ts @@ -1,41 +1,254 @@ -import { $t } from 'platform-core'; +import { $t, Tools, MarkupTableUtil } from 'platform-core'; import { Processor } from '../Processor'; +import { PlaceHolder } from '@/utils/PlaceHolder'; class Rule extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'RULE'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'rule', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.RULE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-shadows', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'RULE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } public format(row: any): any { + const objs: any[] = Tools.json2Object(row.rule); + if (objs && Tools.isArray(objs) && objs.length > 0) { + let header: string = ''; + header += ''; + header += ' ' + $t('category') + ''; + header += ' ' + $t('level') + ''; + header += ' ' + $t('code') + ''; + header += ' ' + $t('name') + ''; + header += ' ' + $t('condition') + ''; + header += ' ' + $t('value') + ''; + header += ' ' + $t('message') + ''; + header += ''; + + let body: string = ''; + objs.forEach((obj) => { + body += ''; + body += ' ' + $t(obj.category) + ''; + body += ' ' + $t(obj.level) + ''; + body += ' ' + $t(obj.code) + ''; + body += ' ' + $t(obj.name) + ''; + body += ' ' + $t(obj.condition) + ''; + body += ' ' + $t(obj.value) + ''; + body += ' ' + $t(obj.message) + ''; + body += ''; + }); + return MarkupTableUtil.markupTable(header, body, Tools.mergeObject({}, Processor.FORMAT_TABLE_STYLE)); + } return row.rule; } public getEditorFields(): any { - return []; + return [ + { + colSpan: 12, + name: 'rule', + label: $t('re.resources.designer.processor.grid.entity.rule'), + showIf: (args: any) => { + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; + }, + type: 'w-grid', + height: 300, + localMode: true, + dbClickOperation: 'edit', + autoFetchData: false, + denseBody: true, + dndMode: 'local', + pageable: false, + configButton: false, + toolbarConfigure: { noIcon: false }, + toolbarActions: ['add', 'clone', 'edit', 'remove'], + columns: [ + { + name: 'category', + label: $t('category'), + align: 'left', + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'level', + label: $t('level'), + align: 'left', + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'code', + label: $t('code'), + align: 'left', + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'name', + label: $t('name'), + align: 'left', + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'condition', + label: $t('condition'), + align: 'left', + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'value', + label: $t('value'), + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + { + name: 'message', + label: $t('message'), + sortable: false, + format: (value: any) => { + return PlaceHolder.replace(value); + }, + }, + ], + editor: { + dialog: { + width: '600px', + }, + form: { + colsNum: 1, + fields: [ + { + name: 'category', + label: $t('category'), + type: 'w-text', + }, + { + name: 'level', + label: $t('level'), + type: 'w-integer', + }, + { + name: 'code', + label: $t('code'), + type: 'w-text', + }, + { + name: 'name', + label: $t('name'), + type: 'w-text', + }, + { + name: 'condition', + label: $t('condition'), + type: 'w-code-mirror', + lang: 'java', + rows: 4, + lineWrap: true, + lineBreak: false, + placeholder: true, + autoCompletion: this.autoCompletionManager.autoCompletion(), + userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), + }, + { + name: 'value', + label: $t('value'), + type: 'w-code-mirror', + lang: 'java', + rows: 4, + lineWrap: true, + lineBreak: false, + placeholder: true, + autoCompletion: this.autoCompletionManager.autoCompletion(), + userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), + }, + { + name: 'message', + label: $t('message'), + type: 'w-code-mirror', + lang: 'java', + rows: 4, + lineWrap: true, + lineBreak: false, + placeholder: true, + autoCompletion: this.autoCompletionManager.autoCompletion(), + userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), + }, + ], + }, + }, + onBeforeEditorDataSubmit: (args: any) => {}, + }, + ]; } public getViewerFields(): any { return [{ name: 'rule', label: $t('re.resources.designer.processor.grid.entity.rule') }]; } - public beforeEditorDataSubmit(args: any): void {} + public beforeEditorDataSubmit(args: any): void { + const grid = args.grid.getEditorForm().getFieldComponent('rule'); + const localData: any[] = grid.getRows(); + const rules: any[] = []; + localData.forEach((item) => { + rules.push({ + category: item.category, + level: item.level, + code: item.code, + name: item.name, + condition: item.condition, + value: item.value, + message: item.message, + }); + }); + args.data.rule = Tools.object2Json(rules); + } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); + this.initAutoCompletionManager(); + this.initUserDefinedFunctionsManager(); + + const form = args.grid.getEditorForm(); + const grid = args.grid.getEditorForm().getFieldComponent('rule'); + switch (form.getStatus()) { + case 'add': // 新增时清空表格内容 + grid.setLocalData([]); + break; + case 'edit': // 编辑/复制时填充表格内容 + case 'clone': + const data = Tools.json2Object(args.data.rule); + grid.setLocalData(data); + break; + } } } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/ScoreCard.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/ScoreCard.ts index e305f6c3..3b7b0307 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/ScoreCard.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/ScoreCard.ts @@ -5,7 +5,6 @@ import { ConditionRange } from './ConditionRange'; import { NumberRange } from './NumberRange'; class ScoreCard extends Processor { - #editorDialogWidth: number = 1024; #conditionRange: any; #numberRange: any; #parameterOptionsRef = ref([]); @@ -14,6 +13,9 @@ class ScoreCard extends Processor { constructor(targetType: string, context?: any) { super(targetType, context); + this.PROCESSOR_TYPE = 'SCORE_CARD'; + this.EDITOR_DIALOG_WIDTH = 1024; + this.#conditionRange = new ConditionRange(Processor.SCORE_CARD, context); this.#numberRange = new NumberRange(Processor.SCORE_CARD, context); @@ -28,21 +30,21 @@ class ScoreCard extends Processor { return { extend: 'add', name: 'scoreCard', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.SCORE_CARD'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-credit-card-2-front', enableIf: (args) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'SCORE_CARD'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } public format(row: any): any { const objs = Tools.json2Object(row.scoreCard); - if (objs) { + if (objs && Tools.isArray(objs) && objs.length > 0) { let str = ''; objs.forEach((obj: any) => { str += ''; @@ -63,12 +65,12 @@ class ScoreCard extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'scoreCard', label: $t('re.resources.designer.processor.grid.entity.scoreCard'), type: 'w-grid', showIf: (args: any) => { - return 'SCORE_CARD' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, localMode: true, height: 600, @@ -98,7 +100,7 @@ class ScoreCard extends Processor { name: 'code', label: $t('code'), sortable: false, - hidden: true, + showIf: false, }, { width: 120, @@ -149,11 +151,11 @@ class ScoreCard extends Processor { width: '800px', }, form: { - colsNum: 7, + colsNum: 12, fields: [ - { colSpan: 4, name: 'code', label: $t('name'), type: 'w-select', options: this.#parameterOptionsRef.value }, - { colSpan: 3, name: 'weight', label: $t('weight'), type: 'w-number', precision: 6 }, { name: 'type', label: $t('type'), type: 'w-text', showIf: false }, + { colSpan: 7, name: 'code', label: $t('name'), type: 'w-select', options: this.#parameterOptionsRef.value }, + { colSpan: 5, name: 'weight', label: $t('weight'), type: 'w-number', precision: 6 }, ...this.#conditionRange.getEditorFields(), ...this.#numberRange.getEditorFields(), ], @@ -179,7 +181,6 @@ class ScoreCard extends Processor { break; } this.#scoreCard = args.grid.getRows(); - //args.grid.setLocalData(this.#scoreCard); }, onAfterEditorOpen: (args: any) => { const newArgs: any = {}; @@ -208,6 +209,9 @@ class ScoreCard extends Processor { return this.#numberRange.afterEditorOpen(newArgs); } }, + onAfterDragAndDrop: (args: any) => { + this.#scoreCard = args.grid.getRows(); + }, }, ]; } @@ -221,7 +225,7 @@ class ScoreCard extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.#scoreCard = Tools.json2Object(args.data.scoreCard); const form = args.grid.getEditorForm(); const scoreCardGrid = form.getFieldComponent('scoreCard'); diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/SingleRule.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/SingleRule.ts index 22dc81d5..53a06f1b 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/SingleRule.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/SingleRule.ts @@ -2,20 +2,24 @@ import { $t } from 'platform-core'; import { Processor } from '../Processor'; class SingleRule extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'SINGLE_RULE'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'singleRule', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.SINGLE_RULE'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-noise-reduction', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'SINGLE_RULE'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -35,7 +39,7 @@ class SingleRule extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); } } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/Sql.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/Sql.ts index 4632fa93..db4dad1b 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/Sql.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/Sql.ts @@ -4,24 +4,31 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class Sql extends Processor { - #editorDialogWidth: number = 1280; #dsOptionsRef = ref([]); #parameterOptionsRef = ref([]); #sqlQueryResultFieldsRef = ref([]); #editorForm: any; + #sqlParameterValuesGrid: any; + #sqlFieldMappingGrid: any; + + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'SQL'; + this.EDITOR_DIALOG_WIDTH = 1280; + } public getToolbarAction(): any { return { extend: 'add', name: 'sql', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.SQL'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-filetype-sql', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'SQL'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -42,7 +49,7 @@ class Sql extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'sqlDatasourceName', label: $t('re.resources.designer.processor.grid.entity.sqlDatasourceName'), type: 'w-select', @@ -50,11 +57,11 @@ class Sql extends Processor { options: this.#dsOptionsRef, rows: 1, showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 4, + colSpan: 7, name: 'sql', label: $t('re.resources.designer.processor.grid.entity.sql'), type: 'w-code-mirror', @@ -64,19 +71,20 @@ class Sql extends Processor { placeholder: true, autoCompletion: this.autoCompletionManager.autoCompletion(), showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 3, + colSpan: 5, name: 'sqlParameterValues', label: $t('re.resources.designer.processor.grid.entity.sqlParameterValues'), showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 150, title: $t('re.resources.designer.processor.grid.entity.sqlParameterValues'), + localMode: true, autoFetchData: false, dense: true, dbClickOperation: 'edit', @@ -166,24 +174,13 @@ class Sql extends Processor { ], }, }, - onBeforeEditorDataSubmit: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlParameterValues'); - const form = grid.getEditorForm(); - if ('add' == form.getStatus() || 'clone' == form.getStatus()) { - grid.addLocalData(args.data); - args.callback(false); - } else if ('edit' == form.getStatus()) { - grid.updateLocalData(args.data); - args.callback(false); - } - }, }, { - colSpan: 4, + colSpan: 7, name: 'sqlQueryResult', label: $t('re.resources.designer.processor.grid.entity.sqlQueryResult'), showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 250, @@ -228,15 +225,16 @@ class Sql extends Processor { }), }, { - colSpan: 3, + colSpan: 5, name: 'sqlFieldMapping', label: $t('re.resources.designer.processor.grid.entity.sqlFieldMapping'), showIf: (args: any) => { - return 'SQL' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, type: 'w-grid', height: 250, width: '100%', + localMode: true, autoFetchData: false, title: $t('re.resources.designer.processor.grid.entity.sqlFieldMapping'), dense: true, @@ -307,17 +305,6 @@ class Sql extends Processor { ], }, }, - onBeforeEditorDataSubmit: (args: any) => { - const grid = args.grid.getEditorForm().getFieldComponent('sqlFieldMapping'); - const form = grid.getEditorForm(); - if ('add' == form.getStatus() || 'clone' == form.getStatus()) { - grid.addLocalData(args.data); - args.callback(false); - } else if ('edit' == form.getStatus()) { - grid.updateLocalData(args.data); - args.callback(false); - } - }, }, ]; } @@ -351,7 +338,7 @@ class Sql extends Processor { } public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); @@ -372,13 +359,13 @@ class Sql extends Processor { }); }); - const sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues'); + this.#sqlParameterValuesGrid = form.getFieldComponent('sqlParameterValues'); const sqlParameterValuesRows = Tools.json2Object(row.sqlParameterValues); - sqlParameterValuesGrid.setLocalData(sqlParameterValuesRows); + this.#sqlParameterValuesGrid.setLocalData(sqlParameterValuesRows); - const sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping'); + this.#sqlFieldMappingGrid = form.getFieldComponent('sqlFieldMapping'); const sqlFieldMappingRows = Tools.json2Object(row.sqlFieldMapping); - sqlFieldMappingGrid.setLocalData(sqlFieldMappingRows); + this.#sqlFieldMappingGrid.setLocalData(sqlFieldMappingRows); } } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/Ternary.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/Ternary.ts index 137042d3..7240470b 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/Ternary.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/Ternary.ts @@ -3,20 +3,24 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class Ternary extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'TERNARY'; + this.EDITOR_DIALOG_WIDTH = 1280; + } public getToolbarAction(): any { return { extend: 'add', name: 'ternary', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.TERNARY'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-question', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'TERNARY'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -34,7 +38,7 @@ class Ternary extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'ternaryCondition', label: $t('re.resources.designer.processor.grid.entity.ternaryCondition'), type: 'w-code-mirror', @@ -46,11 +50,11 @@ class Ternary extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'TERNARY' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 7, + colSpan: 12, name: 'ternaryTrue', label: $t('re.resources.designer.processor.grid.entity.ternaryTrue'), type: 'w-code-mirror', @@ -62,11 +66,11 @@ class Ternary extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'TERNARY' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 7, + colSpan: 12, name: 'ternaryFalse', label: $t('re.resources.designer.processor.grid.entity.ternaryFalse'), type: 'w-code-mirror', @@ -78,7 +82,7 @@ class Ternary extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'TERNARY' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -95,7 +99,7 @@ class Ternary extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/shared/processors/WhenThen.ts b/io.sc.engine.rule.frontend/src/views/shared/processors/WhenThen.ts index 374c29a1..64e002a9 100644 --- a/io.sc.engine.rule.frontend/src/views/shared/processors/WhenThen.ts +++ b/io.sc.engine.rule.frontend/src/views/shared/processors/WhenThen.ts @@ -3,20 +3,24 @@ import { Processor } from '../Processor'; import { PlaceHolder } from '@/utils/PlaceHolder'; class WhenThen extends Processor { - #editorDialogWidth: number = 800; + constructor(targetType: string, context?: any) { + super(targetType, context); + this.PROCESSOR_TYPE = 'WHEN_THEN'; + this.EDITOR_DIALOG_WIDTH = 800; + } public getToolbarAction(): any { return { extend: 'add', name: 'whenThen', - label: $t('io.sc.engine.rule.core.enums.ProcessorType.WHEN_THEN'), + label: $t('io.sc.engine.rule.core.enums.ProcessorType.' + this.PROCESSOR_TYPE), icon: 'bi-sliders', enableIf: (args: any) => { const type = this.context.target.type; return type !== 'RULE_RESULT' && type !== 'SINGLE_RULE_RESULT'; }, afterClick: (args: any) => { - args.grid.getEditorForm().setFieldValue('type', 'WHEN_THEN'); + args.grid.getEditorForm().setFieldValue('type', this.PROCESSOR_TYPE); }, }; } @@ -38,7 +42,7 @@ class WhenThen extends Processor { public getEditorFields(): any { return [ { - colSpan: 7, + colSpan: 12, name: 'when', label: $t('re.resources.designer.processor.grid.entity.when'), type: 'w-code-mirror', @@ -50,11 +54,11 @@ class WhenThen extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'WHEN_THEN' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 7, + colSpan: 12, name: 'then', label: $t('re.resources.designer.processor.grid.entity.then'), type: 'w-code-mirror', @@ -66,16 +70,16 @@ class WhenThen extends Processor { autoCompletion: this.autoCompletionManager.autoCompletion(), userDefinedFunctions: this.userDefinedFunctionsManager.userDefinedFunctions(), showIf: (args: any) => { - return 'WHEN_THEN' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, { - colSpan: 7, + colSpan: 12, name: 'isWhenThenShorted', label: $t('re.resources.designer.processor.grid.entity.isWhenThenShorted'), type: 'w-checkbox', showIf: (args: any) => { - return 'WHEN_THEN' === args.form.getFieldValue('type'); + return args.form.getFieldValue('type') === this.PROCESSOR_TYPE; }, }, ]; @@ -92,7 +96,7 @@ class WhenThen extends Processor { public beforeEditorDataSubmit(args: any): void {} public afterEditorOpen(args: any): void { - args.grid.getEditorDialog().setWidth(this.#editorDialogWidth); + args.grid.getEditorDialog().setWidth(this.EDITOR_DIALOG_WIDTH); this.initAutoCompletionManager(); this.initUserDefinedFunctionsManager(); } diff --git a/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue b/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue index 70a5763a..16fd7c47 100644 --- a/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue +++ b/io.sc.engine.rule.frontend/src/views/testcase/Testcase.vue @@ -62,8 +62,8 @@ 'export', ]" :columns="[ - { width: 50, name: 'order', label: $t('order'), hidden: true }, - { width: 100, name: 'id', label: $t('id'), hidden: true }, + { width: 50, name: 'order', label: $t('order'), showIf: false }, + { width: 100, name: 'id', label: $t('id'), showIf: false }, { width: 60, name: 'testResult', diff --git a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue index f7e0c4cc..ea688c28 100644 --- a/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue +++ b/io.sc.engine.rule.frontend/src/views/workflow/Workflow.vue @@ -129,7 +129,7 @@ 'export', ]" :columns="[ - { width: 150, name: 'resourceCode', label: $t('code'), hidden: true }, + { width: 150, name: 'resourceCode', label: $t('code'), showIf: false }, { width: '100%', name: 'resourceName', label: $t('name') }, { width: 100, name: 'resourceType', label: $t('type'), format: Formater.enum(Enums.ResourceType) }, { width: 100, name: 'resourceVersion', label: $t('version') }, diff --git a/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-租后预警规则.json b/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-租后预警规则.json index 3076472d..075d5b3d 100644 --- a/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-租后预警规则.json +++ b/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-租后预警规则.json @@ -17,7 +17,7 @@ "status" : "SKETCH", "version" : 1, "effectiveDate" : null, - "imports" : "import org.wsp.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", + "imports" : "import io.sc.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", "model" : { "id" : "550530de-3bdc-4323-9e2c-afe740fe0aa8", "code" : "AFTER_RULE", diff --git a/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-财报分析预警.json b/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-财报分析预警.json index f3745654..a19fa603 100644 --- a/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-财报分析预警.json +++ b/io.sc.engine.rule.sample/src/main/resources/io/sc/engine/rule/sample/app/warning/pingan/平安租赁-财报分析预警.json @@ -5175,7 +5175,7 @@ "code" : "CSXTYYCW010", "name" : "预收账款周转天数过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5197,7 +5197,7 @@ "code" : "CSXTYYCW011", "name" : "预付账款周转天数过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5219,7 +5219,7 @@ "code" : "CSXTYYCW023", "name" : "货币资金与总资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5241,7 +5241,7 @@ "code" : "CSXTYYCW024", "name" : "货币资金与总资产之比过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5263,7 +5263,7 @@ "code" : "CSXTYYCW028", "name" : "药占比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5285,7 +5285,7 @@ "code" : "CSXTYYCW029", "name" : "政府补贴收入占比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5307,7 +5307,7 @@ "code" : "CSXTYYCW030", "name" : "医保回款过慢", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5329,7 +5329,7 @@ "code" : "CSXTYYCW031", "name" : "药品欠款账期过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5351,7 +5351,7 @@ "code" : "CSXTYYCW032", "name" : "工程款拖欠时间过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5373,7 +5373,7 @@ "code" : "SSXTYYCW017", "name" : "刚性负债波动幅度过大", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5406,7 +5406,7 @@ "code" : "SS_Wave", "name" : "科目波动率", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5439,7 +5439,7 @@ "code" : "CSXTYYCW003_NF", "name" : "租金保障倍数过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5461,7 +5461,7 @@ "code" : "CSXTYYCW005_NF", "name" : "资产负债表借款余额汇总低于我司未还租金", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5483,7 +5483,7 @@ "code" : "CSXTYYCW006_NF", "name" : "资产负债表借款余额汇总低于人行征信未结清授信余额", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5505,7 +5505,7 @@ "code" : "CSXTYYCW016_NF", "name" : "资产负债率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5527,7 +5527,7 @@ "code" : "CTXTYYCW022_NF", "name" : "财报更新频率过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5549,7 +5549,7 @@ "code" : "CSXTYYCW034_NF", "name" : "地级市二甲以上医院且刚性负债收入比超过300%", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5571,7 +5571,7 @@ "code" : "CSXTYYCW033_NF", "name" : "黑龙江、辽宁、吉林、内蒙古、贵州、湖南县级医院且刚性负债收入比超过250%", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5604,7 +5604,7 @@ "code" : "CSXTYYCW004", "name" : "一年内刚性负债收入比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5626,7 +5626,7 @@ "code" : "CSXTYYCW009", "name" : "借款增加且其他应收账款大幅增加", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5648,7 +5648,7 @@ "code" : "SSXTYYCW012", "name" : "可确认收入过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5670,7 +5670,7 @@ "code" : "SSXTYYCW013", "name" : "经营性净现金流为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5692,7 +5692,7 @@ "code" : "SSXTYYCW018", "name" : "主要资产类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5714,7 +5714,7 @@ "code" : "SSXTYYCW019", "name" : "主要负债类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5736,7 +5736,7 @@ "code" : "SSXTYYCW020", "name" : "主要权益类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5758,7 +5758,7 @@ "code" : "SSXTYYCW021", "name" : "主要损益类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5780,7 +5780,7 @@ "code" : "CSXTYYCW025", "name" : "医疗业务毛利率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5802,7 +5802,7 @@ "code" : "CSXTYYCW026", "name" : "药品业务毛利率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5824,7 +5824,7 @@ "code" : "CSXTYYCW007", "name" : "营业收入下降且营业利润上升", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5846,7 +5846,7 @@ "code" : "CSXTYYCW008", "name" : "其他应收账款与流动资产或总资产之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5868,7 +5868,7 @@ "code" : "CSXTYYCW002", "name" : "最近一年自身造血无法覆盖刚性负债利息", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5890,7 +5890,7 @@ "code" : "CSXTYYCW027", "name" : "其他收入占比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21287,7 +21287,7 @@ "code" : "ST_wave", "name" : "指标波动率", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21309,7 +21309,7 @@ "code" : "SS_Wave1", "name" : "科目波动率1", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21331,7 +21331,7 @@ "code" : "SS_Wave2", "name" : "科目波动率2", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21353,7 +21353,7 @@ "code" : "SS_Wave3", "name" : "科目波动率3", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21386,7 +21386,7 @@ "code" : "CSXTJGRZCW006", "name" : "借款增加且其他应收账款大幅增加", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21408,7 +21408,7 @@ "code" : "STXTJGRZCW011", "name" : "资产负债率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21430,7 +21430,7 @@ "code" : "CSXTJGRZCW019", "name" : "商誉与总资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21452,7 +21452,7 @@ "code" : "STXTJGRZCW023", "name" : "扣非净利率为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21474,7 +21474,7 @@ "code" : "CSXTJGRZCW029", "name" : "投资收益与净利润之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21496,7 +21496,7 @@ "code" : "SSXTJGRZCW031", "name" : "刚性负债同比下降", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21518,7 +21518,7 @@ "code" : "CSXTJGRZCW033", "name" : "拨备率异常", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21540,7 +21540,7 @@ "code" : "CSXTJGRZCW036", "name" : "期间费用与营业收入比大幅上升", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21562,7 +21562,7 @@ "code" : "CSXTJGRZCW037", "name" : "金融资产比率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21584,7 +21584,7 @@ "code" : "SSXTJGRZCW024", "name" : "实收资本过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21606,7 +21606,7 @@ "code" : "SSXTJGRZCW025", "name" : "资产规模过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21628,7 +21628,7 @@ "code" : "CSXTJGRZCW026", "name" : "杠杆倍率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21650,7 +21650,7 @@ "code" : "SSXTJGRZCW027", "name" : "融资性净现金流为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21672,7 +21672,7 @@ "code" : "SSXTJGRZCW028", "name" : "长期应收款同比大幅下降", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21694,7 +21694,7 @@ "code" : "CSXTJGRZCW034", "name" : "拨备率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21727,7 +21727,7 @@ "code" : "CSXTJGRZCW002_NF", "name" : "资产负债表借款余额汇总低于我司未还租金", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21749,7 +21749,7 @@ "code" : "CSXTJGRZCW003_NF", "name" : "资产负债表借款余额汇总低于人行征信未结清授信余额", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21771,7 +21771,7 @@ "code" : "CTXTJGRZCW007_NF", "name" : "审核对象的供应商同时为客户(即应收与应付重合)", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21786,7 +21786,7 @@ "code" : "CSXTJGRZCW012_NF", "name" : "对外担保净资产比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21808,7 +21808,7 @@ "code" : "CSXTJGRZCW013_NF", "name" : "对外担保收入比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21841,7 +21841,7 @@ "code" : "SSXTJGRZCW008", "name" : "可确认收入过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21863,7 +21863,7 @@ "code" : "SSXTJGRZCW009", "name" : "净利润为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21885,7 +21885,7 @@ "code" : "CSXTJGRZCW010", "name" : "营业成本增幅高于营业收入增幅", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21907,7 +21907,7 @@ "code" : "STXTJGRZCW014", "name" : "主要指标异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21929,7 +21929,7 @@ "code" : "SSXTJGRZCW015", "name" : "主要资产类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21951,7 +21951,7 @@ "code" : "CSXTJGRZCW041", "name" : "主要指标异常偏离(Manual)", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21973,7 +21973,7 @@ "code" : "SSXTJGRZCW016", "name" : "主要负债类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -21995,7 +21995,7 @@ "code" : "SSXTJGRZCW017", "name" : "主要权益类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22017,7 +22017,7 @@ "code" : "SSXTJGRZCW018", "name" : "主要损益类科目相比上期异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22039,7 +22039,7 @@ "code" : "CSXTJGRZCW021", "name" : "非经常性损益与净资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22061,7 +22061,7 @@ "code" : "STXTJGRZCW022", "name" : "毛利率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22083,7 +22083,7 @@ "code" : "CSXTJGRZCW040", "name" : "净利息差异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22105,7 +22105,7 @@ "code" : "CSXTJGRZCW004", "name" : "营业收入下降且拨备前利润上升", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22127,7 +22127,7 @@ "code" : "CSXTJGRZCW001", "name" : "最近一年自身造血无法覆盖刚性负债利息", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22149,7 +22149,7 @@ "code" : "CSXTJGRZCW005", "name" : "其他应收账款与流动资产或总资产之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22171,7 +22171,7 @@ "code" : "CSXTJGRZCW030", "name" : "长期应收账款与营业收入之比异常", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22193,7 +22193,7 @@ "code" : "CSXTJGRZCW032", "name" : "分红与净利润之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22215,7 +22215,7 @@ "code" : "CSXTJGRZCW035", "name" : "当期资产减值损失率异常", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22237,7 +22237,7 @@ "code" : "CSXTJGRZCW038", "name" : "生息资产平均收益率过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -22259,7 +22259,7 @@ "code" : "CSXTJGRZCW039", "name" : "净利息差过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43062,7 +43062,7 @@ "code" : "CSZQXTCW009", "name" : "融资结构恶化,长期贷款大幅减少,短期贷款大幅增加", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43084,7 +43084,7 @@ "code" : "CSZQXTCW010", "name" : "投资活动加剧,疑似短贷长用", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43106,7 +43106,7 @@ "code" : "CSZQXTCW013", "name" : "存贷双高,且刚性负债金额较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43128,7 +43128,7 @@ "code" : "CSZQXTCW017", "name" : "交易性金融资产与可供出售金融资产合计值占比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43150,7 +43150,7 @@ "code" : "CSZQXTCW019", "name" : "刚性负债波动幅度太大", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43172,7 +43172,7 @@ "code" : "STZQXTCW031", "name" : "商誉异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43194,7 +43194,7 @@ "code" : "STZQXTCW045", "name" : "应收账款周转天数过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43216,7 +43216,7 @@ "code" : "STZQXTCW046", "name" : "应付账款周转率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43238,7 +43238,7 @@ "code" : "STZQXTCW047", "name" : "应收账款周转率大幅下降", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43260,7 +43260,7 @@ "code" : "CSZQXTCW048", "name" : "预收账款周转天数过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43282,7 +43282,7 @@ "code" : "CSZQXTCW049", "name" : "预付账款周转天数过长", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43304,7 +43304,7 @@ "code" : "CSZQXTCW051", "name" : "货币资金与总资产之比过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43326,7 +43326,7 @@ "code" : "CSZQXTCW050", "name" : "货币资金与总资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43359,7 +43359,7 @@ "code" : "CTZQXTCW007", "name" : "连续三年扣非净利润均亏损 5% 及以上", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43381,7 +43381,7 @@ "code" : "CSZQXTCW011", "name" : "营业收入下降且营业利润上升", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43403,7 +43403,7 @@ "code" : "CSZQXTCW012", "name" : "非经常性损益/净利润占比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43425,7 +43425,7 @@ "code" : "CSZQXTCW014", "name" : "固定资产增幅很大但收入增幅很小", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43447,7 +43447,7 @@ "code" : "CSZQXTCW018", "name" : "EBITDA与经营性净现金流差异过大", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43469,7 +43469,7 @@ "code" : "STZQXTCW020", "name" : "刚性负债收入比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43491,7 +43491,7 @@ "code" : "CSZQXTCW021", "name" : "最近一年经营性净现金流无法覆盖刚负债利息", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43513,7 +43513,7 @@ "code" : "CSZQXTCW022", "name" : "租金保障倍数过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43535,7 +43535,7 @@ "code" : "CSZQXTCW023", "name" : "一年内刚性负债收入比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43557,7 +43557,7 @@ "code" : "STZQXTCW024", "name" : "存货周转率大幅下降", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43579,7 +43579,7 @@ "code" : "CSZQXTCW025", "name" : "销售现金回笼率较上期大幅度降低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43601,7 +43601,7 @@ "code" : "CSZQXTCW026", "name" : "销售现金回笼率过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43623,7 +43623,7 @@ "code" : "STZQXTCW027", "name" : "营业收入大幅下降", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43645,7 +43645,7 @@ "code" : "STZQXTCW028", "name" : "净利润为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43667,7 +43667,7 @@ "code" : "STZQXTCW029", "name" : "毛利率异常波动", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43689,7 +43689,7 @@ "code" : "CSZQXTCW030", "name" : "大额计提资产减值,且资产减值对比营业收入占比较较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43711,7 +43711,7 @@ "code" : "SSZQXTCW032_L", "name" : "主要资产类科目相比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43733,7 +43733,7 @@ "code" : "SSZQXTCW032_M", "name" : "主要资产类科目相比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43755,7 +43755,7 @@ "code" : "SSZQXTCW033_L", "name" : "主要负债类科目相比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43777,7 +43777,7 @@ "code" : "SSZQXTCW033_M", "name" : "主要负债类科目相比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43799,7 +43799,7 @@ "code" : "SSZQXTCW034_L", "name" : "主要权益类科目相比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43821,7 +43821,7 @@ "code" : "SSZQXTCW034_M", "name" : "主要权益类科目相比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43843,7 +43843,7 @@ "code" : "SSZQXTCW035_L", "name" : "主要损益类科目相比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43865,7 +43865,7 @@ "code" : "SSZQXTCW035_M", "name" : "主要损益类科目相比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43887,7 +43887,7 @@ "code" : "SSZQXTCW036_L", "name" : "财务指标综述中营运能力指标比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43909,7 +43909,7 @@ "code" : "SSZQXTCW036_M", "name" : "财务指标综述中营运能力指标比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43931,7 +43931,7 @@ "code" : "SSZQXTCW037_L", "name" : "财务指标综述中偿债能力指标比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43953,7 +43953,7 @@ "code" : "SSZQXTCW037_M", "name" : "财务指标综述中偿债能力指标比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43975,7 +43975,7 @@ "code" : "SSZQXTCW038_L", "name" : "财务指标综述中盈利能力指标比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -43997,7 +43997,7 @@ "code" : "SSZQXTCW038_M", "name" : "财务指标综述中盈利能力指标比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44019,7 +44019,7 @@ "code" : "SSZQXTCW039_L", "name" : "财务指标综述中发展趋势指标比上期异常偏离L", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44041,7 +44041,7 @@ "code" : "SSZQXTCW039_M", "name" : "财务指标综述中发展趋势指标比上期异常偏离M", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44063,7 +44063,7 @@ "code" : "STZQXTCW040", "name" : "经营性净现金流值异常", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44085,7 +44085,7 @@ "code" : "CSZQXTCW041", "name" : "其他应收款与流动资产之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44107,7 +44107,7 @@ "code" : "CSZQXTCW042", "name" : "其他应收款与总资产之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44129,7 +44129,7 @@ "code" : "CSZQXTCW043", "name" : "其他应付款与流动负债之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44151,7 +44151,7 @@ "code" : "CSZQXTCW044", "name" : "其他应付款与总资产之比较高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44195,7 +44195,7 @@ "code" : "SSZQXTCW052_1", "name" : "科目波动率1", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44217,7 +44217,7 @@ "code" : "SSZQXTCW052_2", "name" : "科目波动率2", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44239,7 +44239,7 @@ "code" : "SSZQXTCW052_3", "name" : "科目波动率3", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44261,7 +44261,7 @@ "code" : "STZQXTCW053", "name" : "指标波动率", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44294,7 +44294,7 @@ "code" : "STZQXTCW001_NF", "name" : "资产负债率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44316,7 +44316,7 @@ "code" : "STZQXTCW002_NF", "name" : "重大项目资产负债率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44338,7 +44338,7 @@ "code" : "STZQXTCW003_NF", "name" : "上市公司大股东质押比例过高 ", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44360,7 +44360,7 @@ "code" : "CSZQXTCW004_NF", "name" : "民营企业商誉与净资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44382,7 +44382,7 @@ "code" : "STZQXTCW005_NF", "name" : "经营性净现金流为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44404,7 +44404,7 @@ "code" : "CSZQXTCW008_NF", "name" : "民营企业对外担保净资产比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44426,7 +44426,7 @@ "code" : "CSZQXTCW015_NF", "name" : "资产负债表借款余额汇总低于人行征信未结清授信余额", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -44448,7 +44448,7 @@ "code" : "CTZQXTCW016_NF", "name" : "财报更新频率过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -52831,7 +52831,7 @@ "code" : "DP_IN", "name" : "杜邦分析指标", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57156,7 +57156,7 @@ "code" : "SS_Wave", "name" : "科目波动率", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57189,7 +57189,7 @@ "code" : "CSXTJYCW009", "name" : "资产负债率过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57211,7 +57211,7 @@ "code" : "CSXTJYCW018", "name" : "货币资金与总资产之比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57233,7 +57233,7 @@ "code" : "CSXTJYCW019", "name" : "货币资金与总资产之比过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57255,7 +57255,7 @@ "code" : "SSXTJYCW011", "name" : "刚性负债波动幅度过大", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57288,7 +57288,7 @@ "code" : "CSXTJYCW003_NF", "name" : "资产负债表借款余额汇总低于我司未还租金", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57310,7 +57310,7 @@ "code" : "CSXTJYCW004_NF", "name" : "资产负债表借款余额汇总低于人行征信未结清授信余额", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57332,7 +57332,7 @@ "code" : "CTXTJYCW017_NF", "name" : "财报更新频率过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57365,7 +57365,7 @@ "code" : "CSXTJYCW002", "name" : "租金保障倍数过低", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57387,7 +57387,7 @@ "code" : "CSXTJYCW006", "name" : "借款增加且其他应收账款大幅增加", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57409,7 +57409,7 @@ "code" : "SSXTJYCW007", "name" : "净利润为负", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57431,7 +57431,7 @@ "code" : "CSXTJYCW008", "name" : "营业成本增幅高于营业收入增幅", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57453,7 +57453,7 @@ "code" : "CTXTJYCW012", "name" : "主要指标异常偏离", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57475,7 +57475,7 @@ "code" : "SSXTJYCW013", "name" : "主要资产类科目相比上期异常偏离", "description" : " ", - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57497,7 +57497,7 @@ "code" : "SSXTJYCW014", "name" : "主要负债类科目相比上期异常偏离", "description" : " ", - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57519,7 +57519,7 @@ "code" : "SSXTJYCW015", "name" : "主要权益类科目相比上期异常偏离", "description" : " ", - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57541,7 +57541,7 @@ "code" : "SSXTJYCW016", "name" : "主要损益类科目相比上期异常偏离", "description" : " ", - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57563,7 +57563,7 @@ "code" : "CSXTJYCW005", "name" : "营业收入下降且营业利润上升", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57585,7 +57585,7 @@ "code" : "CSXTJYCW001", "name" : "最近一年自身造血无法覆盖刚性负债利息", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -57607,7 +57607,7 @@ "code" : "CSXTJYCW010", "name" : "刚性负债收入比过高", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.RuleResult", + "valueType" : "io.sc.engine.rule.core.classes.RuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/converter/IndicatorProcessorEntityConverter.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/converter/IndicatorProcessorEntityConverter.java index 7f573233..1fe35e3f 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/converter/IndicatorProcessorEntityConverter.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/converter/IndicatorProcessorEntityConverter.java @@ -91,7 +91,7 @@ public class IndicatorProcessorEntityConverter { _po.setHttpAuthBasicPassword(_entity.getHttpAuthBasicPassword()); _po.setHttpAuthBearerToken(_entity.getHttpAuthBearerToken()); _po.setHttpParams(_entity.getHttpParams()); - _po.setHttpBody(_entity.getHttpBody()); + _po.setHttpRequestBody(_entity.getHttpRequestBody()); _po.setHttpResponseMapping(_entity.getHttpResponseMapping()); po =_po; }else { @@ -199,7 +199,7 @@ public class IndicatorProcessorEntityConverter { _entity.setHttpAuthBasicPassword(_po.getHttpAuthBasicPassword()); _entity.setHttpAuthBearerToken(_po.getHttpAuthBearerToken()); _entity.setHttpParams(_po.getHttpParams()); - _entity.setHttpBody(_po.getHttpBody()); + _entity.setHttpRequestBody(_po.getHttpRequestBody()); _entity.setHttpResponseMapping(_po.getHttpResponseMapping()); entity =_entity; }else { diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/processor/HttpRequestIndicatorProcessorEntity.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/processor/HttpRequestIndicatorProcessorEntity.java index 11426932..c264832c 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/processor/HttpRequestIndicatorProcessorEntity.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/entity/processor/HttpRequestIndicatorProcessorEntity.java @@ -56,8 +56,8 @@ public class HttpRequestIndicatorProcessorEntity extends IndicatorProcessorEntit @Column(name="HTTP_PARAMS_") private String httpParams; - @Column(name="HTTP_BODY_") - private String httpBody; + @Column(name="HTTP_REQUEST_BODY_") + private String httpRequestBody; @Column(name="HTTP_RESPONSE_MAPPING_") private String httpResponseMapping; @@ -78,7 +78,7 @@ public class HttpRequestIndicatorProcessorEntity extends IndicatorProcessorEntit vo.setHttpAuthBasicPassword(this.getHttpAuthBasicPassword()); vo.setHttpAuthBearerToken(this.getHttpAuthBearerToken()); vo.setHttpParams(this.getHttpParams()); - vo.setHttpBody(this.getHttpBody()); + vo.setHttpRequestBody(this.getHttpRequestBody()); vo.setHttpResponseMapping(this.getHttpResponseMapping()); return vo; } @@ -86,128 +86,79 @@ public class HttpRequestIndicatorProcessorEntity extends IndicatorProcessorEntit public ProcessorType getType() { return ProcessorType.HTTP_REQUEST; } - - public HttpMethodType getHttpMethod() { return httpMethod; } - - public void setHttpMethod(HttpMethodType httpMethod) { this.httpMethod = httpMethod; } - - public String getHttpUrl() { return httpUrl; } - - public void setHttpUrl(String httpUrl) { this.httpUrl = httpUrl; } - - public HttpAuthorizationType getHttpAuthType() { return httpAuthType; } - - public void setHttpAuthType(HttpAuthorizationType httpAuthType) { this.httpAuthType = httpAuthType; } - - public String getHttpAuthApikey() { return httpAuthApikey; } - - public void setHttpAuthApikey(String httpAuthApikey) { this.httpAuthApikey = httpAuthApikey; } - - public String getHttpAuthApiValue() { return httpAuthApiValue; } - - public void setHttpAuthApiValue(String httpAuthApiValue) { this.httpAuthApiValue = httpAuthApiValue; } - - public String getHttpAuthApiAddTo() { return httpAuthApiAddTo; } - - public void setHttpAuthApiAddTo(String httpAuthApiAddTo) { this.httpAuthApiAddTo = httpAuthApiAddTo; } - - public String getHttpAuthBasicUsername() { return httpAuthBasicUsername; } - - public void setHttpAuthBasicUsername(String httpAuthBasicUsername) { this.httpAuthBasicUsername = httpAuthBasicUsername; } - - public String getHttpAuthBasicPassword() { return httpAuthBasicPassword; } - - public void setHttpAuthBasicPassword(String httpAuthBasicPassword) { this.httpAuthBasicPassword = httpAuthBasicPassword; } - - public String getHttpAuthBearerToken() { return httpAuthBearerToken; } - - public void setHttpAuthBearerToken(String httpAuthBearerToken) { this.httpAuthBearerToken = httpAuthBearerToken; } - - public String getHttpParams() { return httpParams; } - - public void setHttpParams(String httpParams) { this.httpParams = httpParams; } - - - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - - - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } - - public String getHttpResponseMapping() { return httpResponseMapping; } - - public void setHttpResponseMapping(String httpResponseMapping) { this.httpResponseMapping = httpResponseMapping; } - @Override public boolean replace(Map mapping) { String replaced =ExpressionReplacer.replace(this.httpParams, mapping); diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/vo/processor/HttpRequestIndicatorProcessorVo.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/vo/processor/HttpRequestIndicatorProcessorVo.java index af6b9867..6ba88d87 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/vo/processor/HttpRequestIndicatorProcessorVo.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/lib/vo/processor/HttpRequestIndicatorProcessorVo.java @@ -35,7 +35,7 @@ public class HttpRequestIndicatorProcessorVo extends IndicatorProcessorVo { private String httpParams; - private String httpBody; + private String httpRequestBody; private String httpResponseMapping; @@ -43,125 +43,76 @@ public class HttpRequestIndicatorProcessorVo extends IndicatorProcessorVo { public ProcessorType getType() { return ProcessorType.HTTP_REQUEST; } - - public HttpMethodType getHttpMethod() { return httpMethod; } - - public void setHttpMethod(HttpMethodType httpMethod) { this.httpMethod = httpMethod; } - - public String getHttpUrl() { return httpUrl; } - - public void setHttpUrl(String httpUrl) { this.httpUrl = httpUrl; } - - public HttpAuthorizationType getHttpAuthType() { return httpAuthType; } - - public void setHttpAuthType(HttpAuthorizationType httpAuthType) { this.httpAuthType = httpAuthType; } - - public String getHttpAuthApikey() { return httpAuthApikey; } - - public void setHttpAuthApikey(String httpAuthApikey) { this.httpAuthApikey = httpAuthApikey; } - - public String getHttpAuthApiValue() { return httpAuthApiValue; } - - public void setHttpAuthApiValue(String httpAuthApiValue) { this.httpAuthApiValue = httpAuthApiValue; } - - public String getHttpAuthApiAddTo() { return httpAuthApiAddTo; } - - public void setHttpAuthApiAddTo(String httpAuthApiAddTo) { this.httpAuthApiAddTo = httpAuthApiAddTo; } - - public String getHttpAuthBasicUsername() { return httpAuthBasicUsername; } - - public void setHttpAuthBasicUsername(String httpAuthBasicUsername) { this.httpAuthBasicUsername = httpAuthBasicUsername; } - - public String getHttpAuthBasicPassword() { return httpAuthBasicPassword; } - - public void setHttpAuthBasicPassword(String httpAuthBasicPassword) { this.httpAuthBasicPassword = httpAuthBasicPassword; } - - public String getHttpAuthBearerToken() { return httpAuthBearerToken; } - - public void setHttpAuthBearerToken(String httpAuthBearerToken) { this.httpAuthBearerToken = httpAuthBearerToken; } - - public String getHttpParams() { return httpParams; } - - public void setHttpParams(String httpParams) { this.httpParams = httpParams; } - - - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - - - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } - - public String getHttpResponseMapping() { return httpResponseMapping; } - - public void setHttpResponseMapping(String httpResponseMapping) { this.httpResponseMapping = httpResponseMapping; } - } diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterProcessorEntityConverter.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterProcessorEntityConverter.java index 2976883e..4c60539d 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterProcessorEntityConverter.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/converter/ParameterProcessorEntityConverter.java @@ -68,7 +68,7 @@ public class ParameterProcessorEntityConverter { _po.setHttpAuthBasicPassword(_entity.getHttpAuthBasicPassword()); _po.setHttpAuthBearerToken(_entity.getHttpAuthBearerToken()); _po.setHttpParams(_entity.getHttpParams()); - _po.setHttpBody(_entity.getHttpBody()); + _po.setHttpRequestBody(_entity.getHttpRequestBody()); _po.setHttpResponseMapping(_entity.getHttpResponseMapping()); po =_po; }else if(entity instanceof MathFormulaParameterProcessorEntity) { @@ -221,7 +221,7 @@ public class ParameterProcessorEntityConverter { _entity.setHttpAuthBasicPassword(_po.getHttpAuthBasicPassword()); _entity.setHttpAuthBearerToken(_po.getHttpAuthBearerToken()); _entity.setHttpParams(_po.getHttpParams()); - _entity.setHttpBody(_po.getHttpBody()); + _entity.setHttpRequestBody(_po.getHttpRequestBody()); _entity.setHttpResponseMapping(_po.getHttpResponseMapping()); entity =_entity; }else if(po instanceof MathFormulaParameterProcessor) { diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java index 0b795df6..e8b391bd 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/entity/processor/HttpRequestParameterProcessorEntity.java @@ -55,9 +55,8 @@ public class HttpRequestParameterProcessorEntity extends ParameterProcessorEntit @Column(name="HTTP_PARAMS_") private String httpParams; - - @Column(name="HTTP_BODY_") - private String httpBody; + @Column(name="HTTP_REQUEST_BODY_") + private String httpRequestBody; @Column(name="HTTP_RESPONSE_MAPPING_") private String httpResponseMapping; @@ -66,6 +65,7 @@ public class HttpRequestParameterProcessorEntity extends ParameterProcessorEntit public HttpRequestParameterProcessorVo toVo() { HttpRequestParameterProcessorVo vo =new HttpRequestParameterProcessorVo(); super.toVo(vo); + vo.setHttpMethod(this.getHttpMethod()); vo.setHttpUrl(this.getHttpUrl()); vo.setHttpAuthType(this.getHttpAuthType()); vo.setHttpAuthApikey(this.getHttpAuthApikey()); @@ -75,7 +75,7 @@ public class HttpRequestParameterProcessorEntity extends ParameterProcessorEntit vo.setHttpAuthBasicPassword(this.getHttpAuthBasicPassword()); vo.setHttpAuthBearerToken(this.getHttpAuthBearerToken()); vo.setHttpParams(this.getHttpParams()); - vo.setHttpBody(this.getHttpBody()); + vo.setHttpRequestBody(this.getHttpRequestBody()); vo.setHttpResponseMapping(this.getHttpResponseMapping()); return vo; } @@ -186,16 +186,14 @@ public class HttpRequestParameterProcessorEntity extends ParameterProcessorEntit } - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } - public String getHttpResponseMapping() { return httpResponseMapping; } diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterProcessorServiceImpl.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterProcessorServiceImpl.java index 6f273e66..6e3fc58c 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterProcessorServiceImpl.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/service/impl/ParameterProcessorServiceImpl.java @@ -328,7 +328,6 @@ public class ParameterProcessorServiceImpl String message =split.get(6);//预警详情 Rule rule =new Rule(); - rule.setUuid(UUID.randomUUID().toString()); rule.setLevel(level); rule.setCode(code); rule.setName(name); diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/processor/HttpRequestParameterProcessorVo.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/processor/HttpRequestParameterProcessorVo.java index c49a1eb4..e7864e33 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/processor/HttpRequestParameterProcessorVo.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/model/vo/processor/HttpRequestParameterProcessorVo.java @@ -35,7 +35,7 @@ public class HttpRequestParameterProcessorVo extends ParameterProcessorVo { private String httpParams; - private String httpBody; + private String httpRequestBody; private String httpResponseMapping; @@ -43,123 +43,99 @@ public class HttpRequestParameterProcessorVo extends ParameterProcessorVo { public ProcessorType getType() { return ProcessorType.HTTP_REQUEST; } - public HttpMethodType getHttpMethod() { return httpMethod; } - public void setHttpMethod(HttpMethodType httpMethod) { this.httpMethod = httpMethod; } - public String getHttpUrl() { return httpUrl; } - public void setHttpUrl(String httpUrl) { this.httpUrl = httpUrl; } - public HttpAuthorizationType getHttpAuthType() { return httpAuthType; } - public void setHttpAuthType(HttpAuthorizationType httpAuthType) { this.httpAuthType = httpAuthType; } - public String getHttpAuthApikey() { return httpAuthApikey; } - public void setHttpAuthApikey(String httpAuthApikey) { this.httpAuthApikey = httpAuthApikey; } - public String getHttpAuthApiValue() { return httpAuthApiValue; } - public void setHttpAuthApiValue(String httpAuthApiValue) { this.httpAuthApiValue = httpAuthApiValue; } - public String getHttpAuthApiAddTo() { return httpAuthApiAddTo; } - public void setHttpAuthApiAddTo(String httpAuthApiAddTo) { this.httpAuthApiAddTo = httpAuthApiAddTo; } - public String getHttpAuthBasicUsername() { return httpAuthBasicUsername; } - public void setHttpAuthBasicUsername(String httpAuthBasicUsername) { this.httpAuthBasicUsername = httpAuthBasicUsername; } - public String getHttpAuthBasicPassword() { return httpAuthBasicPassword; } - public void setHttpAuthBasicPassword(String httpAuthBasicPassword) { this.httpAuthBasicPassword = httpAuthBasicPassword; } - public String getHttpAuthBearerToken() { return httpAuthBearerToken; } - public void setHttpAuthBearerToken(String httpAuthBearerToken) { this.httpAuthBearerToken = httpAuthBearerToken; } - public String getHttpParams() { return httpParams; } - public void setHttpParams(String httpParams) { this.httpParams = httpParams; } - - public String getHttpBody() { - return httpBody; + public String getHttpRequestBody() { + return httpRequestBody; } - - public void setHttpBody(String httpBody) { - this.httpBody = httpBody; + public void setHttpRequestBody(String httpRequestBody) { + this.httpRequestBody = httpRequestBody; } - public String getHttpResponseMapping() { return httpResponseMapping; } - public void setHttpResponseMapping(String httpResponseMapping) { this.httpResponseMapping = httpResponseMapping; } diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java index 8d63ff9e..f8472232 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ModelResourceEntity.java @@ -5,6 +5,7 @@ import io.sc.engine.rule.core.enums.ResourceType; import io.sc.engine.rule.server.model.entity.ModelEntity; import io.sc.engine.rule.server.resource.vo.ModelResourceVo; import io.sc.engine.rule.server.testcase.entity.ResourceTestCaseEntity; +import io.sc.platform.core.util.CollectionUtil; import org.springframework.beans.BeanUtils; import javax.persistence.*; @@ -77,7 +78,7 @@ public class ModelResourceEntity extends ReleasableResourceEntity { BeanUtils.copyProperties(this, entity, "children","testCases","model","roles"); //children List children =this.getChildren(); - if(children!=null && children.size()>0) { + if(CollectionUtil.hasElements(children)){ for(ResourceEntity child : children) { ResourceEntity clone =(ResourceEntity)child.deepClone(); clone.setParent(entity); @@ -86,7 +87,7 @@ public class ModelResourceEntity extends ReleasableResourceEntity { } //testCases List testCases =this.getTestCases(); - if(testCases!=null && testCases.size()>0) { + if(CollectionUtil.hasElements(testCases)){ for(ResourceTestCaseEntity testCase : testCases) { ResourceTestCaseEntity clone =(ResourceTestCaseEntity)testCase.deepClone(); clone.setOwner(entity); @@ -100,6 +101,9 @@ public class ModelResourceEntity extends ReleasableResourceEntity { clone.setResource(entity); entity.setModel(clone); } + //roles + entity.setRoles(this.getRoles()); + return entity; } diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ReleasableResourceEntity.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ReleasableResourceEntity.java index 5a0be1c6..a0c34b9e 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ReleasableResourceEntity.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ReleasableResourceEntity.java @@ -12,7 +12,7 @@ import java.util.Date; * 可版本化资源实体类 */ @Entity -public abstract class ReleasableResourceEntity extends ResourceEntity implements DeepClone, IdClearable { +public abstract class ReleasableResourceEntity extends ResourceEntity { //状态 @Column(name="STATUS_", length=10) @Enumerated(EnumType.STRING) diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java index 8c0fba23..49094e59 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/entity/ResourceEntity.java @@ -28,6 +28,7 @@ import javax.validation.constraints.Size; import com.fasterxml.jackson.annotation.JsonIgnoreProperties; import io.sc.engine.rule.server.resource.vo.ResourceVo; +import io.sc.platform.core.util.CollectionUtil; import io.sc.platform.orm.DeepClone; import io.sc.platform.orm.IdClearable; import io.sc.platform.orm.api.vo.AuditorVo; @@ -225,7 +226,7 @@ public class ResourceEntity extends AuditorEntity implements DeepClo * @param children 子 */ public void addChildren(ResourceEntity... children){ - if(children!=null && children.length>0){ + if(CollectionUtil.hasElements(children)){ for(ResourceEntity child : children){ child.resetParent(this); } @@ -237,7 +238,7 @@ public class ResourceEntity extends AuditorEntity implements DeepClo * @param children 子 */ public void removeChildren(ResourceEntity... children){ - if(children!=null && children.length>0){ + if(CollectionUtil.hasElements(children)){ for(ResourceEntity child : children){ if(this.children!=null && this.children.contains(child)){ this.children.remove(child); @@ -253,7 +254,7 @@ public class ResourceEntity extends AuditorEntity implements DeepClo BeanUtils.copyProperties(this, entity, "children","testCases","roles"); //children List children =this.getChildren(); - if(children!=null && children.size()>0) { + if(CollectionUtil.hasElements(children)){ for(ResourceEntity child : children) { ResourceEntity clone =(ResourceEntity)child.deepClone(); clone.setParent(entity); @@ -262,13 +263,16 @@ public class ResourceEntity extends AuditorEntity implements DeepClo } //testCases List testCases =this.getTestCases(); - if(testCases!=null && testCases.size()>0) { + if(CollectionUtil.hasElements(testCases)){ for(ResourceTestCaseEntity testCase : testCases) { ResourceTestCaseEntity clone =(ResourceTestCaseEntity)testCase.deepClone(); clone.setOwner(entity); entity.getTestCases().add(clone); } } + // roles + entity.setRoles(roles); + return entity; } @@ -277,14 +281,14 @@ public class ResourceEntity extends AuditorEntity implements DeepClo this.setId(null); //children List children =this.getChildren(); - if(children!=null && children.size()>0) { + if(CollectionUtil.hasElements(children)){ for(ResourceEntity child : children) { child.clearId(); } } //testCases List testCases =this.getTestCases(); - if(testCases!=null && testCases.size()>0) { + if(CollectionUtil.hasElements(testCases)){ for(ResourceTestCaseEntity testCase : testCases) { testCase.clearId(); } diff --git a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/repository/ResourceRepository.java b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/repository/ResourceRepository.java index 4afd3365..2354c114 100644 --- a/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/repository/ResourceRepository.java +++ b/io.sc.engine.rule.server/src/main/java/io/sc/engine/rule/server/resource/repository/ResourceRepository.java @@ -21,24 +21,24 @@ public interface ResourceRepository extends DaoRepository @Query("select entity from ResourceEntity entity where entity.parent.id is null") public List findRootResources(); - @Query("select entity from ResourceEntity entity where entity.code=:code and entity.name=:name") - public List findResourceByCodeAndName(@Param("code")String code,@Param("name")String name); +// @Query("select entity from ResourceEntity entity where entity.code=:code and entity.name=:name") +// public List findResourceByCodeAndName(@Param("code")String code,@Param("name")String name); - @Query("select max(entity.order)+1 from ResourceEntity entity where entity.parent.id=:parentId") - public Integer getNextOrder(@Param("parentId") String parentId); +// @Query("select max(entity.order)+1 from ResourceEntity entity where entity.parent.id=:parentId") +// public Integer getNextOrder(@Param("parentId") String parentId); - @Query("select max(entity.order)+1 from ResourceEntity entity where entity.parent.id is null") - public Integer getNextOrder(); +// @Query("select max(entity.order)+1 from ResourceEntity entity where entity.parent.id is null") +// public Integer getNextOrder(); //==================================================================================== // ResourceEntity <-- FolderResourceEntity //==================================================================================== - @Query("select entity from FolderResourceEntity entity where entity.id=:id") - public FolderResourceEntity findFolderById(@Param("id") String id); +// @Query("select entity from FolderResourceEntity entity where entity.id=:id") +// public FolderResourceEntity findFolderById(@Param("id") String id); @Query("select entity from FolderResourceEntity entity where entity.parent.id=:parentId and entity.name=:name") public List findFolderByNameWithParentId(@Param("name") String name,@Param("parentId") String parentId); - + @Query("select entity from FolderResourceEntity entity where entity.parent.id is null and entity.name=:name") public List findFolderByNameWithNullParentId(@Param("name") String name); @@ -57,8 +57,8 @@ public interface ResourceRepository extends DaoRepository @Query("select entity from ReleasableResourceEntity entity where entity.id=:id") public ReleasableResourceEntity findReleasableResourceById(@Param("id") String id); - @Query("select entity from ReleasableResourceEntity entity where entity.code=:code and entity.name=:name") - public List findReleasableResourceByCodeAndName(@Param("code")String code,@Param("name")String name); +// @Query("select entity from ReleasableResourceEntity entity where entity.code=:code and entity.name=:name") +// public List findReleasableResourceByCodeAndName(@Param("code")String code,@Param("name")String name); @Query("select entity from ReleasableResourceEntity entity where entity.code=:code or entity.name=:name") public List findReleasableResourceByCodeOrName(@Param("code")String code,@Param("name")String name); @@ -69,11 +69,11 @@ public interface ResourceRepository extends DaoRepository @Query("select entity from ReleasableResourceEntity entity where entity.code=:code and entity.version=:version") public ReleasableResourceEntity findReleasableResourceByCodeAndVersion(@Param("code")String code,@Param("version")Integer version); - @Query("select entity from ReleasableResourceEntity entity where entity.code=:code order by entity.version") - public List findReleasableResourceByCodeOrderByVersion(@Param("code")String code); +// @Query("select entity from ReleasableResourceEntity entity where entity.code=:code order by entity.version") +// public List findReleasableResourceByCodeOrderByVersion(@Param("code")String code); - @Query("select entity from ReleasableResourceEntity entity order by entity.version") - public List findReleasableResourceByOrderByVersion(); +// @Query("select entity from ReleasableResourceEntity entity order by entity.version") +// public List findReleasableResourceByOrderByVersion(); @Query("select max(entity.version)+1 from ReleasableResourceEntity entity where entity.code=:code") public Integer getReleasableResourceNextVersion(@Param("code") String code); diff --git a/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎内置示例.json b/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎内置示例.json index 07d9aa10..477cee8c 100644 --- a/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎内置示例.json +++ b/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎内置示例.json @@ -2887,7 +2887,7 @@ "code" : "P847413598333565", "name" : "模型摘要结果值", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.ResourceAbstract", + "valueType" : "io.sc.engine.rule.core.classes.ResourceAbstract", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5050,7 +5050,7 @@ "code" : "P1581063447080", "name" : "收入增长较小", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.SingleRuleResult", + "valueType" : "io.sc.engine.rule.core.classes.SingleRuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5089,7 +5089,7 @@ "status" : "SKETCH", "version" : 1, "effectiveDate" : null, - "imports" : "import org.wsp.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", + "imports" : "import io.sc.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", "model" : { "id" : "e3381037-c488-4286-99f8-24512ee822ae", "code" : "M16304379203093", @@ -5216,7 +5216,7 @@ "status" : "SKETCH", "version" : 1, "effectiveDate" : null, - "imports" : "import org.wsp.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", + "imports" : "import io.sc.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", "model" : { "id" : "edbe80ee-b07c-4271-b16e-ead3fdce1eee", "code" : "M192312120849566", diff --git a/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎示例.json b/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎示例.json index 107a67ec..2d55338a 100644 --- a/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎示例.json +++ b/io.sc.engine.rule.server/src/main/resources/io/sc/engine/rule/server/sample/引擎示例.json @@ -1739,7 +1739,7 @@ "code" : "P847413598333565", "name" : "模型摘要结果值", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.ResourceAbstract", + "valueType" : "io.sc.engine.rule.core.classes.ResourceAbstract", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -4623,7 +4623,7 @@ "status" : "SKETCH", "version" : 1, "effectiveDate" : null, - "imports" : "import org.wsp.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", + "imports" : "import io.sc.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", "model" : { "id" : "610ae3ba-ca52-4ad4-ab03-9433842a59b9", "code" : "M192312120849566", @@ -5278,7 +5278,7 @@ "code" : "P1581063447080", "name" : "收入增长较小", "description" : null, - "valueType" : "org.wsp.engine.rule.core.classes.SingleRuleResult", + "valueType" : "io.sc.engine.rule.core.classes.SingleRuleResult", "valueTypeVersion" : null, "valueScale" : null, "valueRoundingMode" : null, @@ -5413,7 +5413,7 @@ "status" : "SKETCH", "version" : 1, "effectiveDate" : null, - "imports" : "import org.wsp.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", + "imports" : "import io.sc.engine.rule.client.spring.util.EngineSpringApplicationContextUtil;", "model" : { "id" : "5adf7297-6901-4813-b85a-a003af768716", "code" : "M16304379203093", diff --git a/io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml b/io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml index 488ef767..206e74d9 100644 --- a/io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml +++ b/io.sc.engine.rule.server/src/main/resources/liquibase/RE_1.0.0_20220515__Rule Engine Database Schema DDL.xml @@ -239,7 +239,7 @@ - + @@ -517,7 +517,7 @@ - + diff --git a/io.sc.engine.st.frontend/package.json b/io.sc.engine.st.frontend/package.json index 9b635e8d..2db1197a 100644 --- a/io.sc.engine.st.frontend/package.json +++ b/io.sc.engine.st.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.core.frontend/package.json b/io.sc.platform.core.frontend/package.json index bb267463..c78cb09b 100644 --- a/io.sc.platform.core.frontend/package.json +++ b/io.sc.platform.core.frontend/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.1.430", + "version": "8.1.433", "description": "前端核心包,用于快速构建前端的脚手架", "//main": "库的主文件", "main": "dist/platform-core.js", diff --git a/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue b/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue index d0534078..6a529a96 100644 --- a/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue +++ b/io.sc.platform.core.frontend/src/views/testcase/maxgraph/maxgraph.vue @@ -504,7 +504,7 @@ const findResourceAbstractById = (id) => { const findResourceAbstractByCodeAndVersion = (code, version) => { for (const item of resourceAbstractsRef.value) { - if (item.code === code && item.version.toString() === version) { + if (item.code === code && item.version?.toString() === version) { return item; } } diff --git a/io.sc.platform.core.frontend/template-project/package.json b/io.sc.platform.core.frontend/template-project/package.json index 8983c7f7..a4b0ee4f 100644 --- a/io.sc.platform.core.frontend/template-project/package.json +++ b/io.sc.platform.core.frontend/template-project/package.json @@ -1,6 +1,6 @@ { "name": "platform-core", - "version": "8.1.430", + "version": "8.1.433", "description": "前端核心包,用于快速构建前端的脚手架", "private": false, "keywords": [], @@ -110,7 +110,7 @@ "mockjs": "1.1.0", "node-sql-parser": "5.3.2", "pinia": "2.2.2", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "vue": "3.5.10", diff --git a/io.sc.platform.core.frontend/template-project/src/views/testcase/maxgraph/Maxgraph.vue b/io.sc.platform.core.frontend/template-project/src/views/testcase/maxgraph/Maxgraph.vue index d0534078..6a529a96 100644 --- a/io.sc.platform.core.frontend/template-project/src/views/testcase/maxgraph/Maxgraph.vue +++ b/io.sc.platform.core.frontend/template-project/src/views/testcase/maxgraph/Maxgraph.vue @@ -504,7 +504,7 @@ const findResourceAbstractById = (id) => { const findResourceAbstractByCodeAndVersion = (code, version) => { for (const item of resourceAbstractsRef.value) { - if (item.code === code && item.version.toString() === version) { + if (item.code === code && item.version?.toString() === version) { return item; } } diff --git a/io.sc.platform.core/src/main/java/io/sc/platform/core/util/CollectionUtil.java b/io.sc.platform.core/src/main/java/io/sc/platform/core/util/CollectionUtil.java index 5298163c..1fcc3eba 100644 --- a/io.sc.platform.core/src/main/java/io/sc/platform/core/util/CollectionUtil.java +++ b/io.sc.platform.core/src/main/java/io/sc/platform/core/util/CollectionUtil.java @@ -16,6 +16,25 @@ import java.util.*; */ public class CollectionUtil { private CollectionUtil(){} + + /** + * 监测集合是否为空,当集合对象为 null 或者不包含任何元素时返回 false,否则返回 true + * @param collection 集合 + * @return 是否为空 + */ + public static boolean hasElements(Collection collection){ + return collection!=null && !collection.isEmpty(); + } + + /** + * 监测数组是否为空,当数组对象为 null 或者不包含任何元素时返回 false,否则返回 true + * @param arrays 集合 + * @return 是否为空 + */ + public static boolean hasElements(Object[] arrays){ + return arrays!=null && arrays.length>0; + } + /** * 将对象列表转换成 Map * class User { diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties index c845fe58..b0a4eafe 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words.properties @@ -240,4 +240,6 @@ autoMatch=Auto Match convert=Convert upload=Upload result=Result -weight=Weight \ No newline at end of file +weight=Weight +message=Message +reload=Reload \ No newline at end of file diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties index 2929cc7d..fbcf971c 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_tw_CN.properties @@ -240,4 +240,6 @@ autoMatch=\u81EA\u52D5\u5339\u914D convert=\u8F49\u63DB upload=\u4E0A\u50B3 result=\u7D50\u679C -weight=\u6B0A\u91CD \ No newline at end of file +weight=\u6B0A\u91CD +message=\u6D88\u606F +reload=\u91CD\u65B0\u52A0\u8F09 \ No newline at end of file diff --git a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties index e5b68ca9..165ce381 100644 --- a/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties +++ b/io.sc.platform.core/src/main/resources/io/sc/platform/core/i18n/words_zh_CN.properties @@ -240,4 +240,6 @@ autoMatch=\u81EA\u52A8\u5339\u914D convert=\u8F6C\u6362 upload=\u4E0A\u4F20 result=\u7ED3\u679C -weight=\u6743\u91CD \ No newline at end of file +weight=\u6743\u91CD +message=\u6D88\u606F +reload=\u91CD\u65B0\u52A0\u8F7D \ No newline at end of file diff --git a/io.sc.platform.developer.doc/package.json b/io.sc.platform.developer.doc/package.json index a4d6bb1a..9f6a9011 100644 --- a/io.sc.platform.developer.doc/package.json +++ b/io.sc.platform.developer.doc/package.json @@ -28,7 +28,7 @@ "vuepress": "2.0.0-rc.15" }, "dependencies": { - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "vue": "3.5.10", "vue-i18n": "10.0.3" diff --git a/io.sc.platform.developer.frontend/package.json b/io.sc.platform.developer.frontend/package.json index 50f87ec8..0b06be6a 100644 --- a/io.sc.platform.developer.frontend/package.json +++ b/io.sc.platform.developer.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.lcdp.frontend/package.json b/io.sc.platform.lcdp.frontend/package.json index 631be41f..1206b278 100644 --- a/io.sc.platform.lcdp.frontend/package.json +++ b/io.sc.platform.lcdp.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.license.keygen.frontend/package.json b/io.sc.platform.license.keygen.frontend/package.json index 23de6014..ae7544d1 100644 --- a/io.sc.platform.license.keygen.frontend/package.json +++ b/io.sc.platform.license.keygen.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.mvc.frontend/package.json b/io.sc.platform.mvc.frontend/package.json index 8805d340..d723939e 100644 --- a/io.sc.platform.mvc.frontend/package.json +++ b/io.sc.platform.mvc.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.scheduler.manager.frontend/package.json b/io.sc.platform.scheduler.manager.frontend/package.json index 13749722..c0e1ea24 100644 --- a/io.sc.platform.scheduler.manager.frontend/package.json +++ b/io.sc.platform.scheduler.manager.frontend/package.json @@ -111,7 +111,7 @@ "node-sql-parser": "5.3.2", "pinia": "2.2.2", "pinia-undo": "0.2.4", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "tailwindcss": "3.4.10", diff --git a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue index 445bbc64..4d3f74cc 100644 --- a/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue +++ b/io.sc.platform.scheduler.manager.frontend/src/views/executor/Executor.vue @@ -31,7 +31,7 @@ 'export', ]" :columns="[ - { width: 100, name: 'id', label: $t('id'), hidden: true }, + { width: 100, name: 'id', label: $t('id'), showIf: false }, { width: 220, name: 'applicationName', label: $t('lcdp.scheduler.executor.grid.entity.applicationName') }, { width: 150, name: 'name', label: $t('lcdp.scheduler.executor.grid.entity.name') }, { width: 200, name: 'description', label: $t('description') }, diff --git a/io.sc.platform.system.frontend/package.json b/io.sc.platform.system.frontend/package.json index 1e609efb..771af911 100644 --- a/io.sc.platform.system.frontend/package.json +++ b/io.sc.platform.system.frontend/package.json @@ -110,7 +110,7 @@ "mockjs": "1.1.0", "node-sql-parser": "5.3.2", "pinia": "2.2.2", - "platform-core": "8.1.430", + "platform-core": "8.1.433", "quasar": "2.17.0", "svg-path-commander": "2.0.10", "vue": "3.5.10", diff --git a/io.sc.platform.system.frontend/src/views/i18n/I18n.vue b/io.sc.platform.system.frontend/src/views/i18n/I18n.vue index 61453edb..deb5a217 100644 --- a/io.sc.platform.system.frontend/src/views/i18n/I18n.vue +++ b/io.sc.platform.system.frontend/src/views/i18n/I18n.vue @@ -26,7 +26,7 @@ icon: 'bi-trash3', click: () => { DialogManager.confirm($t('system.i18n.grid.toolbar.removeAll.tip'), () => { - axios.post(Environment.apiContextPath('/api/system/i18n/removeMessages')).then(() => { + axios.post(Environment.apiContextPath('/api/system/i18n/removeMessages'), {}, { loading: true }).then(() => { NotifyManager.info($t('operationSuccess')); i18nGridRef.refresh(); }); @@ -48,6 +48,17 @@ }, }, 'separator', + { + name: 'reload', + label: $t('reload'), + icon: 'bi-arrow-repeat', + click: (args) => { + axios.post(Environment.apiContextPath('/api/system/i18n/reload')).then(() => { + NotifyManager.info($t('operationSuccess')); + }); + }, + }, + 'separator', 'view', 'separator', 'export', diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nWebController.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nWebController.java index 7986b264..012d5bb5 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nWebController.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/controller/I18nWebController.java @@ -14,6 +14,11 @@ import org.springframework.web.bind.annotation.*; public class I18nWebController extends RestCrudController { @Autowired private MessageSourceService messageSourceService; + @PostMapping("reload") + public void reload() throws Exception{ + service.reload(); + } + @PostMapping("importMessages") public void importMessages() throws Exception{ service.importMessages(true); diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java index 5a1bd9ad..aabc0483 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/I18nService.java @@ -5,6 +5,8 @@ import io.sc.platform.system.i18n.jpa.entity.I18nEntity; import io.sc.platform.system.i18n.jpa.repository.I18nRepository; public interface I18nService extends DaoService { + public void reload(); + /** * 从资源包属性文件中获取多语言消息并导入到数据库中 * @param overwrite 是否覆盖数据库中已经存在的多语言消息 diff --git a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java index 99526332..04bb6eea 100644 --- a/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java +++ b/io.sc.platform.system/src/main/java/io/sc/platform/system/i18n/service/impl/I18nServiceImpl.java @@ -22,6 +22,11 @@ public class I18nServiceImpl extends DaoServiceImpl messageSources =compositeMessageSource.getMessageSources(); @@ -52,6 +57,7 @@ public class I18nServiceImpl extends DaoServiceImpl