👔 feat: 解析DRL规则

This commit is contained in:
bunny 2025-05-18 21:09:35 +08:00
parent 1e5d1274d7
commit 034ac1fc8a
3 changed files with 40 additions and 8 deletions

View File

@ -4,7 +4,6 @@ import cn.bunny.drools.bean.exercise.CreditCardApply;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.SneakyThrows;
import org.kie.api.KieBase;
import org.kie.api.KieServices;
import org.kie.api.runtime.KieContainer;
import org.kie.api.runtime.KieSession;
@ -24,13 +23,13 @@ public class CreditCardApplyController {
public CreditCardApply creditCardApply(@RequestBody CreditCardApply creditCardApply) {
KieServices kieServices = KieServices.Factory.get();
KieContainer kieContainer = kieServices.getKieClasspathContainer();
KieBase kieBase = kieContainer.getKieBase("CreditCardApply");
KieSession kieSession = kieBase.newKieSession();
// KieBase kieBase = kieContainer.getKieBase("CreditCardApply");
KieSession session = kieContainer.newKieSession("credit_card_apply_card_1");
kieSession.insert(creditCardApply);
kieSession.fireAllRules();
kieSession.dispose();
kieSession.close();
session.insert(creditCardApply);
session.fireAllRules();
session.dispose();
session.close();
return creditCardApply;
}
}

View File

@ -2,6 +2,7 @@
<!-- 练习 -->
<kbase name="Exercise" packages="rules.exercise.test" default="false">
<ksession name="exercise_test_1" default="true"/>
</kbase>
<!-- 计算税额 -->
@ -9,7 +10,8 @@
</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>
<!-- demo 练习 -->

View File

@ -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();
}
}