1.提交利润中心测试用例

This commit is contained in:
chenweilong 2022-07-06 09:53:43 +08:00
parent 5c49ddd40c
commit 8d5a676693
2 changed files with 66 additions and 57 deletions

View File

@ -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<String, String> 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<String> businessTypeList = Lists.newArrayList("货代", "船代", "散杂货");
List<String> salesmanList = Lists.newArrayList("仓干配物流部(物流)");
List<String> businessCategoryList = Lists.newArrayList("运输业务", "全货船业务", "进出岛仓干配");
List<String> 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));
}
}

View File

@ -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<String, String> 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<String> businessTypeList = Lists.newArrayList("货代", "船代", "散杂货");
List<String> salesmanList = Lists.newArrayList("仓干配物流部(物流)");
List<String> businessCategoryList = Lists.newArrayList("运输业务", "全货船业务", "进出岛仓干配");
List<String> 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() {
// 事实对象