在规则中进行复杂计算的Drools复杂结构事实

时间:2019-05-15 20:59:31

标签: java drools

我们正在使用基于drools规则的系统作为Java中的推理引擎。

但是,我们有一些复杂的数据结构。如何处理规则中如此复杂的结构化事实和这些事实的数据计算?

我们的事实是这样的

  

即InputObject->报告->客户->每个客户都有   CustomerTranscriptObject->列表->每个表单都有->   CustomerAppreciationForm,CustomerRequestForm,CustomerComplainForm   和SectionalInformation->(每个SectionalInformation都有列表   )。

规则将具有逻辑:

检查表单是否为CustomerRequestForm或CustomerComplainForm类型。然后从InputObject中读取customerId列表和客户身份列表,对于customersIdList中的每个customersId,CustomerID的最后6位数字应显示在客户身份列表中(检查每个客户身份的最后7位数字)。

如何使用Drools实现如此复杂的结构和规则?

public class Report {
    private List<Customer> customerList;
    private Set<String> allCustomerIds;
    private Set<String> allCustomerIdentities;
}
public class InputObject {
    private Report report;
}

public class Customer {
    private CustomerTranscriptObject customerTranscriptObject;
}

public class CustomerTranscriptObject {
    private List<Forms> forms;
}

public class Form {
    private CustomerAppreciationForm  customerAppreciationForm
    private CustomerRequestForm customerRequestForm
    private CustomerComplainForm customerComplainForm
    private SectionalInformation sectionalInformation;
}
public class SectionalInformation {
    private List<Section> SectionList;
}

0 个答案:

没有答案