У меня есть файл drool, в котором правило 2 всегда принимает значение true.
rule "R2"
salience 1000
when
((residence status = "US Citizen") || ((residence status = "Lawfully-entered Alien") and (residence duration >= 5))) and (fpl <= 133)
then
Add to Programs List "3"
end
значение
residence status is US Citizen
residence status is null
residence duration is 0
fpl is 278.77
Почему оно входит в него всегда, хотя для указанного значенияусловие ложно.
Пожалуйста, найдите все файлы.
package com.eligibility.service;
import com.platform.enrollment.domain.BasicInfo;
import com.platform.enrollment.domain.FamilyMember;
global java.util.List prog_id_list;
global java.lang.Double fpl;
[condition][] and=and
[condition][] or=or
[condition][]residence status \= "{value}"=FamilyMember(basicInfo.citizenshipStatus == "{value}")
[condition][]residence duration >\= {value}=FamilyMember(basicInfo.permanentResidenceDuration >= {value})
[condition][]job status \= "{value}"=FamilyMember(basicInfo.jobStatus == "{value}")
[condition][]large business status \= "{value}"=FamilyMember(basicInfo.largeBusinessStatus == "{value}")
[condition][]false=eval(false)
[condition][]true=eval(true)
[condition][]age \= {value}=FamilyMember(basicInfo.getAge=={value})
[condition][]age < {value}=FamilyMember(basicInfo.getAge<{value})
[condition][]age > {value}=FamilyMember(basicInfo.getAge>{value})
[condition][]age <\= {value}=FamilyMember(basicInfo.getAge<={value})
[condition][]age >\= {value}=FamilyMember(basicInfo.getAge>={value})
[condition][]fpl \= {value}=eval(fpl=={value})
[condition][]fpl < {value}=eval(fpl<{value})
[condition][]fpl > {value}=eval(fpl>{value})
[condition][]fpl <\= {value}=eval(fpl<={value})
[condition][]fpl >\= {value}=eval(fpl>={value})
[condition][]gender \= "{value}"=FamilyMember(basicInfo.gender == "{value}")
[condition][]pregnant \= true=Applicant(eval(pregnant))
[condition][]pregnant \= false=Applicant(eval(!pregnant))
[condition][]Family member age greater than or equal to 60 \= true=eval(any_member_greater_than_equal_to_60)
[condition][]Family member age greater than or equal to 60 \= false=eval(!any_member_greater_than_equal_to_60)
[condition][]job status \= "{value}"=Applicant(eval(job_status.contains("{value}")))
[condition][]large business status \= "{value}"=Applicant(eval(large_business_status.contains("{value}")))
[condition][]employer benefits \= "{value}"=Applicant(eval(large_business_status.contains("{value}")))
[condition][]spouse \= true=eval(spouse)
[condition][]spouse \= false=eval(!spouse)
[condition][]total assets \= {value}=eval(total_assets=={value})
[condition][]total assets < {value}=eval(total_assets<{value})
[condition][]total assets > {value}=eval(total_assets>{value})
[condition][]total assets <\= {value}=eval(total_assets<={value})
[condition][]total assets >\= {value}=eval(total_assets>={value})
[condition][] Question with code "{code}" has answer "{answer}"=Question(code=="{code}"&& eval(answer.contains("{answer}")))
[consequence][]Add to Programs List {id}=prog_id_list.add({id});
rule "R0"
salience 1000
when
(age <= 0) and ((residence status = "US Citizen") || (residence status = "Lawfully-entered Alien")) and (fpl <= 200)
then
Add to Programs List "1"
end
rule "R1"
salience 1000
when
((residence status = "US Citizen") || (residence status = "Lawfully-entered Alien")) and (fpl >= 400)
then
Add to Programs List "2"
end
rule "R2"
salience 1000
when
((residence status = "US Citizen") || ((residence status = "Lawfully-entered Alien") and (residence duration >= 5))) and (fpl <= 133)
then
Add to Programs List "3"
end
rule "R3"
salience 1000
when
((residence status = "US Citizen") || (residence status = "Lawfully-entered Alien")) and (fpl > 133) and (fpl < 400)
then
Add to Programs List "4"
end
Кто-нибудь может мне помочь, почему это enetring, это list3, хотя данные, как указано выше, не делают его действительным