👔 feat: 解析DRL规则
This commit is contained in:
parent
1e5d1274d7
commit
034ac1fc8a
|
@ -4,7 +4,6 @@ import cn.bunny.drools.bean.exercise.CreditCardApply;
|
||||||
import io.swagger.v3.oas.annotations.Operation;
|
import io.swagger.v3.oas.annotations.Operation;
|
||||||
import io.swagger.v3.oas.annotations.tags.Tag;
|
import io.swagger.v3.oas.annotations.tags.Tag;
|
||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import org.kie.api.KieBase;
|
|
||||||
import org.kie.api.KieServices;
|
import org.kie.api.KieServices;
|
||||||
import org.kie.api.runtime.KieContainer;
|
import org.kie.api.runtime.KieContainer;
|
||||||
import org.kie.api.runtime.KieSession;
|
import org.kie.api.runtime.KieSession;
|
||||||
|
@ -24,13 +23,13 @@ public class CreditCardApplyController {
|
||||||
public CreditCardApply creditCardApply(@RequestBody CreditCardApply creditCardApply) {
|
public CreditCardApply creditCardApply(@RequestBody CreditCardApply creditCardApply) {
|
||||||
KieServices kieServices = KieServices.Factory.get();
|
KieServices kieServices = KieServices.Factory.get();
|
||||||
KieContainer kieContainer = kieServices.getKieClasspathContainer();
|
KieContainer kieContainer = kieServices.getKieClasspathContainer();
|
||||||
KieBase kieBase = kieContainer.getKieBase("CreditCardApply");
|
// KieBase kieBase = kieContainer.getKieBase("CreditCardApply");
|
||||||
KieSession kieSession = kieBase.newKieSession();
|
KieSession session = kieContainer.newKieSession("credit_card_apply_card_1");
|
||||||
|
|
||||||
kieSession.insert(creditCardApply);
|
session.insert(creditCardApply);
|
||||||
kieSession.fireAllRules();
|
session.fireAllRules();
|
||||||
kieSession.dispose();
|
session.dispose();
|
||||||
kieSession.close();
|
session.close();
|
||||||
return creditCardApply;
|
return creditCardApply;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
|
|
||||||
<!-- 练习 -->
|
<!-- 练习 -->
|
||||||
<kbase name="Exercise" packages="rules.exercise.test" default="false">
|
<kbase name="Exercise" packages="rules.exercise.test" default="false">
|
||||||
|
<ksession name="exercise_test_1" default="true"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
<!-- 计算税额 -->
|
<!-- 计算税额 -->
|
||||||
|
@ -9,7 +10,8 @@
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
<!-- 信用卡 -->
|
<!-- 信用卡 -->
|
||||||
<kbase name="CreditCardApply" packages="rules.exercise.card" default="false">
|
<kbase name="Group_CreditCardApply" packages="rules.exercise.card" default="false">
|
||||||
|
<ksession name="credit_card_apply_card_1" default="true"/>
|
||||||
</kbase>
|
</kbase>
|
||||||
|
|
||||||
<!-- demo 练习 -->
|
<!-- demo 练习 -->
|
||||||
|
|
|
@ -0,0 +1,31 @@
|
||||||
|
package cn.bunny.drools.demo;
|
||||||
|
|
||||||
|
import lombok.SneakyThrows;
|
||||||
|
import org.drools.decisiontable.InputType;
|
||||||
|
import org.drools.decisiontable.SpreadsheetCompiler;
|
||||||
|
import org.kie.api.io.ResourceType;
|
||||||
|
import org.kie.api.runtime.KieSession;
|
||||||
|
import org.kie.internal.utils.KieHelper;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.FileInputStream;
|
||||||
|
import java.io.InputStream;
|
||||||
|
|
||||||
|
public class DrlResourceTypeTest {
|
||||||
|
@SneakyThrows
|
||||||
|
public static void main(String[] args) {
|
||||||
|
KieHelper kieHelper = new KieHelper();
|
||||||
|
KieHelper addContent = kieHelper.addContent("", ResourceType.DRL);
|
||||||
|
KieSession kieSession = kieHelper.build().newKieSession();
|
||||||
|
|
||||||
|
// 指定决策表xls文件的磁盘路径
|
||||||
|
String realPath = "C:\\testRule.xls";
|
||||||
|
File file = new File(realPath);
|
||||||
|
InputStream is = new FileInputStream(file);
|
||||||
|
SpreadsheetCompiler compiler = new SpreadsheetCompiler();
|
||||||
|
String drl = compiler.compile(is, InputType.XLS);
|
||||||
|
|
||||||
|
kieSession.dispose();
|
||||||
|
kieSession.close();
|
||||||
|
}
|
||||||
|
}
|
Loading…
Reference in New Issue