zoukankan      html  css  js  c++  java
  • Java Drools5.1 规则流基础【示例】(上)


    一、问题描述

     

    假设雇员Employ有:

               学历信息 eduInfo,   简历信息  resume,

               考核信息 annualExam  和奖惩信息 awardPunish

    要确定其:

               基本工资 basicSalary, 职务工资 dutySalary

               分红金额 bonus 和 总工资 totalSalary.

     

    规则如下:

    1】学历决定基本工资(basicSalary):

                           ====>本科1500研究生2500

    2】简历决定职务工资(dutySalary) :

                           ====>技术2000管理4500

    3】年度考核决定分红(bonus)

                           ====>分红总金额1000

                           ==>考核结果:

                            ==>优秀100%1000);良好90%900);

                                           合格60%600); 不合格0%0);

    4】奖惩决定计算最终工资与【123】项工资之和的比例:

                           ====>奖励:*110%+10%

                           ====>惩罚:*90%-10%

                           ====>无:*100%0%

    5】计算总工资: (【1+2+3】)*4

     

    二、问题分析

     

    1.基本流程:

     

    P【计算基本工资,计算职务工资,计算分红, 计算奖惩比例】

                        ====>计算总工资(根据奖惩情况)

    其中,P[i,...,k]表示任务i,...,k并发执行,====>表示顺序执行。

    即有:P[1,2,3, 4] ===> 5

     

    三、概要设计

     

    1】类Employ的设计:

    2】规则文件的编写和组织:

                    ==>学历规则文件:EduInfoRule.drl

                    ==>简历规则文件:ResumeRule.drl

                    ==>分红规则文件:BonusRule.drl

                    ==>奖惩规则文件:AwardPunish.drl

                    ==>计算总工资规则:TotalRule.drl

    3】规则文件的组合(规则流):

     

                     ==>EduInfo.drl含规则组basic_salary

                     ==>ResumeRule.drl含规则组duty_salary

                     ==>BonusRule.drl含规则组bonus_salary

                     ==>AwardPunish.drl含规则组award_punish

                      ==>TotalRule.drl含规则组sum_salary

     

    组合方式:

    [start]--->  P[basic_sal ary , duty_salary, bonus_salary, award_punish]

                      --->sum_salary ---> [end]

     


    其中:P表示并发,--->表示顺序 【规则流图在后面的实现中给出】

     

    4】编写测试文件:EmployTest.java

     

    四、详细设计

     

    1】使用EclipseIDE作为开发环境,drools5.1作为规则引擎

    2为简单起见,Employ类的属性作了简化处理,

                 eduInfo, resume , annualExam,   awardPunish均为String,

                       basic{duty,bonus,total}_salary , percent作为double类型。

     

     

  • 相关阅读:
    JavaScript DOM 选择器 querySelector
    JavaScript call()函数的应用
    flex布局中 align-items 和 align-content的区别
    移动端WEB
    触发器与存储过程
    游标
    触发器---存储过程---存储函数
    mysql中check无效
    mysql唯一性约束和索引
    分页查询
  • 原文地址:https://www.cnblogs.com/lovesqcc/p/4037863.html
Copyright © 2011-2022 走看看