From 3e871e2dbda1eeeb7571254501fffe2607a3eb0d Mon Sep 17 00:00:00 2001 From: MHW Date: Tue, 7 Apr 2026 10:02:31 +0800 Subject: [PATCH] =?UTF-8?q?=E7=81=AB=E5=8A=9B=E8=A7=84=E5=88=99=EF=BC=9Aja?= =?UTF-8?q?va=E4=BB=A3=E7=A0=81=E5=B1=82=E9=9D=A2=E8=AE=BE=E8=AE=A1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../domain/ultimately/fact/DroolsFact.java | 20 +++++++++++++++++ .../service/impl/FireRuleServiceImpl.java | 22 +++++++++++++++---- 2 files changed, 38 insertions(+), 4 deletions(-) create mode 100644 auto-solution-rule/src/main/java/com/solution/rule/domain/ultimately/fact/DroolsFact.java 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(); } /**