diff --git a/auto-solution-rule/src/main/java/com/solution/rule/domain/ultimately/fact/DroolsFact.java b/auto-solution-rule/src/main/java/com/solution/rule/domain/ultimately/fact/DroolsFact.java new file mode 100644 index 0000000..815a2e0 --- /dev/null +++ b/auto-solution-rule/src/main/java/com/solution/rule/domain/ultimately/fact/DroolsFact.java @@ -0,0 +1,20 @@ +package com.solution.rule.domain.ultimately.fact; + +import com.solution.rule.domain.ultimately.dto.FireRuleInputRedWeaponElementDTO; +import com.solution.rule.domain.ultimately.dto.FireRuleTaskInputDTO; +import com.solution.rule.domain.ultimately.vo.FireRuleOutputVO; +import lombok.Data; + +import java.util.List; + +@Data +public class DroolsFact { + + //蓝方任务列表 + private FireRuleTaskInputDTO task; + + //红方武器库 + private List redWeapons; + + private FireRuleOutputVO fireRuleOutputVO; +} diff --git a/auto-solution-rule/src/main/java/com/solution/rule/service/impl/FireRuleServiceImpl.java b/auto-solution-rule/src/main/java/com/solution/rule/service/impl/FireRuleServiceImpl.java index d9773f8..7c8971a 100644 --- a/auto-solution-rule/src/main/java/com/solution/rule/service/impl/FireRuleServiceImpl.java +++ b/auto-solution-rule/src/main/java/com/solution/rule/service/impl/FireRuleServiceImpl.java @@ -9,7 +9,9 @@ import com.solution.rule.domain.simplerulepojo.Task; import com.solution.rule.domain.simplerulepojo.Weapon; import com.solution.rule.domain.simplerulepojo.fact.FactTask; import com.solution.rule.domain.ultimately.dto.FireRuleInputDTO; +import com.solution.rule.domain.ultimately.dto.FireRuleInputRedWeaponElementDTO; import com.solution.rule.domain.ultimately.dto.FireRuleTaskInputDTO; +import com.solution.rule.domain.ultimately.fact.DroolsFact; import com.solution.rule.domain.ultimately.vo.FireRuleOutputVO; import com.solution.rule.domain.vo.ComponentCountVO; import com.solution.rule.domain.vo.PlatformComponentNamesVO; @@ -202,16 +204,28 @@ public class FireRuleServiceImpl implements FireRuleService { if(CollUtil.isEmpty( tasks)){ throw new RuntimeException(ExceptionConstants.PARAMETER_EXCEPTION); } + //创建KieSession KieSession kieSession = kieBase.newKieSession(); + //设置Drools全局变量 Map globalParams = new HashMap<>(); kieSession.setGlobal("globalParams", globalParams); + //获取红方武器库 + List redWeapons = task.getRedWeapons(); + //创建返回数据 + FireRuleOutputVO fireRuleOutputVO = new FireRuleOutputVO(); + fireRuleOutputVO.setSourceFile(task.getSourceFile()); + + DroolsFact droolsFact = new DroolsFact(); + droolsFact.setRedWeapons(redWeapons); + +// droolsFact.getFireRuleOutputVO().setRedWeapons(redWeapons); + droolsFact.setFireRuleOutputVO(fireRuleOutputVO); for (FireRuleTaskInputDTO fireRuleTaskInputDTO : tasks) { - - + droolsFact.setTask(fireRuleTaskInputDTO); + kieSession.insert(droolsFact); } - FireRuleOutputVO FireRuleOutputVO = new FireRuleOutputVO(); - return FireRuleOutputVO; + return droolsFact.getFireRuleOutputVO(); } /**