From 8d5a676693e9cb0aa32af5bd571cde591f3d6faf Mon Sep 17 00:00:00 2001 From: 75349 <753495441@qq.com> Date: Wed, 6 Jul 2022 09:53:43 +0800 Subject: [PATCH] =?UTF-8?q?1.=E6=8F=90=E4=BA=A4=E5=88=A9=E6=B6=A6=E4=B8=AD?= =?UTF-8?q?=E5=BF=83=E6=B5=8B=E8=AF=95=E7=94=A8=E4=BE=8B?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wezone/drools/test/ProfitCenterTest.java | 66 +++++++++++++++++++ .../java/com/wezone/drools/test/RuleTest.java | 57 ---------------- 2 files changed, 66 insertions(+), 57 deletions(-) create mode 100644 src/test/java/com/wezone/drools/test/ProfitCenterTest.java diff --git a/src/test/java/com/wezone/drools/test/ProfitCenterTest.java b/src/test/java/com/wezone/drools/test/ProfitCenterTest.java new file mode 100644 index 0000000..45a569e --- /dev/null +++ b/src/test/java/com/wezone/drools/test/ProfitCenterTest.java @@ -0,0 +1,66 @@ +package com.wezone.drools.test; + +import cn.hutool.core.util.ReflectUtil; +import cn.hutool.json.JSONUtil; +import com.wezone.drools.model.ProfitCenter; +import org.assertj.core.util.Lists; +import org.drools.core.base.RuleNameStartsWithAgendaFilter; +import org.junit.jupiter.api.Test; +import org.kie.api.KieServices; +import org.kie.api.runtime.KieContainer; +import org.kie.api.runtime.KieSession; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.List; +import java.util.Map; + +public class ProfitCenterTest { + @Test + public void testProfitCenter() { + // 事实对象 + ProfitCenter profitCenter = new ProfitCenter(); + profitCenter.setBusinessType("货代"); + profitCenter.setSalesman("商品车物流部(物流)"); +// profitCenter.setBusinessCategory("运输业务"); +// profitCenter.setSectionClassification("银行科目"); + Map map = new HashMap<>(); + Field[] fields = ReflectUtil.getFields(ProfitCenter.class); + for (Field field : fields) { + Object fieldValue = ReflectUtil.getFieldValue(profitCenter, field); + String name = field.getName(); + map.put(name, fieldValue == null ? null : String.valueOf(fieldValue)); + } + System.out.println(JSONUtil.toJsonStr(map)); + List businessTypeList = Lists.newArrayList("货代", "船代", "散杂货"); + List salesmanList = Lists.newArrayList("仓干配物流部(物流)"); + List businessCategoryList = Lists.newArrayList("运输业务", "全货船业务", "进出岛仓干配"); + List sectionClassificationList = Lists.newArrayList("银行科目", "预付科目", "预收科目"); + //第一步:获取服务 + KieServices kieServices = KieServices.Factory.get(); + // 第二步:通过服务获取容器 + KieContainer container = kieServices.getKieClasspathContainer(); + // 第三步:通过容器获取KieSession,由KieSession去和规则引擎交互 + KieSession kieSession = container.newKieSession(); + + kieSession.setGlobal("globalBusinessTypeList", businessTypeList); + kieSession.setGlobal("globalSalesmanList", salesmanList); + kieSession.setGlobal("globalBusinessCategoryList", businessCategoryList); + kieSession.setGlobal("globalSectionClassificationList", sectionClassificationList); + kieSession.setGlobal("globalSalesman", "商品车物流部(物流)"); + kieSession.setGlobal("profitCenter01Code", "P350401028"); + kieSession.setGlobal("profitCenter01Name", "仓干配物流部利润中心"); + kieSession.setGlobal("profitCenter02Code", "P350401026"); + kieSession.setGlobal("profitCenter02Name", "商品车物流部利润中心"); + + kieSession.insert(map); + + + // 第五步:执行规则引擎,触发规则 +// kieSession.fireAllRules(); + kieSession.fireAllRules(new RuleNameStartsWithAgendaFilter("profitCenter")); + // 第六步:关闭容器 + kieSession.dispose(); + System.out.println(JSONUtil.toJsonPrettyStr(map)); + } +} diff --git a/src/test/java/com/wezone/drools/test/RuleTest.java b/src/test/java/com/wezone/drools/test/RuleTest.java index 5badbbd..6efbfcf 100644 --- a/src/test/java/com/wezone/drools/test/RuleTest.java +++ b/src/test/java/com/wezone/drools/test/RuleTest.java @@ -1,24 +1,15 @@ package com.wezone.drools.test; -import cn.hutool.core.util.ReflectUtil; import cn.hutool.json.JSONUtil; import com.wezone.drools.model.Customer; import com.wezone.drools.model.Order; -import com.wezone.drools.model.ProfitCenter; import org.assertj.core.util.Lists; import org.drools.core.base.RuleNameEqualsAgendaFilter; -import org.drools.core.base.RuleNameStartsWithAgendaFilter; import org.junit.jupiter.api.Test; -import org.kie.api.KieBase; import org.kie.api.KieServices; -import org.kie.api.io.Resource; -import org.kie.api.io.ResourceType; import org.kie.api.runtime.KieContainer; import org.kie.api.runtime.KieSession; -import org.kie.internal.io.ResourceFactory; -import org.kie.internal.utils.KieHelper; -import java.lang.reflect.Field; import java.math.BigDecimal; import java.util.HashMap; import java.util.List; @@ -105,54 +96,6 @@ public class RuleTest { } - @Test - public void testProfitCenter() { - // 事实对象 - ProfitCenter profitCenter = new ProfitCenter(); - profitCenter.setBusinessType("货代"); - profitCenter.setSalesman("商品车物流部(物流)"); -// profitCenter.setBusinessCategory("运输业务"); -// profitCenter.setSectionClassification("银行科目"); - Map map = new HashMap<>(); - Field[] fields = ReflectUtil.getFields(ProfitCenter.class); - for (Field field : fields) { - Object fieldValue = ReflectUtil.getFieldValue(profitCenter, field); - String name = field.getName(); - map.put(name, fieldValue == null ? null : String.valueOf(fieldValue)); - } - System.out.println(JSONUtil.toJsonStr(map)); - List businessTypeList = Lists.newArrayList("货代", "船代", "散杂货"); - List salesmanList = Lists.newArrayList("仓干配物流部(物流)"); - List businessCategoryList = Lists.newArrayList("运输业务", "全货船业务", "进出岛仓干配"); - List sectionClassificationList = Lists.newArrayList("银行科目", "预付科目", "预收科目"); - //第一步:获取服务 - KieServices kieServices = KieServices.Factory.get(); - // 第二步:通过服务获取容器 - KieContainer container = kieServices.getKieClasspathContainer(); - // 第三步:通过容器获取KieSession,由KieSession去和规则引擎交互 - KieSession kieSession = container.newKieSession(); - - kieSession.setGlobal("globalBusinessTypeList", businessTypeList); - kieSession.setGlobal("globalSalesmanList", salesmanList); - kieSession.setGlobal("globalBusinessCategoryList", businessCategoryList); - kieSession.setGlobal("globalSectionClassificationList", sectionClassificationList); - kieSession.setGlobal("globalSalesman", "商品车物流部(物流)"); - kieSession.setGlobal("profitCenter01Code", "profitCenter01Code"); - kieSession.setGlobal("profitCenter01Name", "profitCenter01Name"); - kieSession.setGlobal("profitCenter02Code", "profitCenter02Code"); - kieSession.setGlobal("profitCenter02Name", "profitCenter02Name"); - - kieSession.insert(map); - - - // 第五步:执行规则引擎,触发规则 -// kieSession.fireAllRules(); - kieSession.fireAllRules(new RuleNameStartsWithAgendaFilter("profitCenter")); - // 第六步:关闭容器 - kieSession.dispose(); - System.out.println(JSONUtil.toJsonPrettyStr(map)); - } - @Test public void testMapAndStr() { // 事实对象