drools Decision Table决策表Word文档下载推荐.docx

上传人:b****2 文档编号:3944121 上传时间:2023-05-02 格式:DOCX 页数:17 大小:35.29KB
下载 相关 举报
drools Decision Table决策表Word文档下载推荐.docx_第1页
第1页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第2页
第2页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第3页
第3页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第4页
第4页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第5页
第5页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第6页
第6页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第7页
第7页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第8页
第8页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第9页
第9页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第10页
第10页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第11页
第11页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第12页
第12页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第13页
第13页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第14页
第14页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第15页
第15页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第16页
第16页 / 共17页
drools Decision Table决策表Word文档下载推荐.docx_第17页
第17页 / 共17页
亲,该文档总共17页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

drools Decision Table决策表Word文档下载推荐.docx

《drools Decision Table决策表Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《drools Decision Table决策表Word文档下载推荐.docx(17页珍藏版)》请在冰点文库上搜索。

drools Decision Table决策表Word文档下载推荐.docx

//速算扣除数

privatedoublewageminus;

//当月工资扣减数

/**

*当月工资

*@return

*/

publicdoublegetWage(){

returnwage;

}

publicvoidsetWage(doublewage){

this.wage=wage;

*当月税后工资

publicdoublegetActualwage(){

returnactualwage;

publicvoidsetActualwage(doubleactualwage){

this.actualwage=actualwage;

*全月应纳税所得额

publicdoublegetWagemore(){

returnwagemore;

publicvoidsetWagemore(doublewagemore){

this.wagemore=wagemore;

*税率

publicdoublegetCess(){

returncess;

publicvoidsetCess(doublecess){

this.cess=cess;

*速算扣除数

publicdoublegetPreminus(){

returnpreminus;

publicvoidsetPreminus(doublepreminus){

this.preminus=preminus;

*当月工资扣减数

publicdoublegetWageminus(){

returnwageminus;

publicvoidsetWageminus(doublewageminus){

this.wageminus=wageminus;

publicCalculation(){

publicCalculation(doublewage){

super();

publicCalculation(doublewage,doublewagemore){

this.wagemore=wagemore;

@Override

publicStringtoString(){

return"

当月工资="

+wage+"

\n当月税后工资="

+actualwage+"

\n全月应纳税所得额="

+wagemore+

"

\n税率="

+cess+"

\n速算扣除数="

+preminus+"

\n当月工资扣减数="

+wageminus;

}

2.1.2calculation.drl

packagecom.flagleader.bean

globalCalculationcal;

no-looptrue

rule"

全月应纳税额"

salience3

when

$cal:

Calculation(wage>

0)

then

#System.out.println("

-----全月应纳税额------"

);

cal.setWagemore(cal.getWage()-3500);

update(cal);

end

设置税率"

salience2

eval(true)

-----设置税率------"

if(cal.getWagemore()<

=1500){

cal.setCess(0.03);

cal.setPreminus(0);

}

elseif(cal.getWagemore()>

1500&

&

cal.getWagemore()<

=4500){

cal.setCess(0.1);

cal.setPreminus(105);

elseif(cal.getWagemore()>

4500&

=9000){

cal.setCess(0.2);

cal.setPreminus(555);

9000&

=35000){

cal.setCess(0.25);

cal.setPreminus(1005);

35000&

=55000){

cal.setCess(0.3);

cal.setPreminus(2755);

elseif((cal.getWagemore()>

55000&

=80000)){

cal.setCess(0.35);

cal.setPreminus(5505);

80000){

cal.setCess(0.45);

cal.setPreminus(13505);

insert(cal);

税后工资"

salience1

#System.out.println("

-----税后工资------"

cal.setWageminus(cal.getWagemore()*cal.getCess()-cal.getPreminus());

cal.setActualwage(cal.getWage()-cal.getWageminus());

insert(cal);

2.1.3CalculationDrl.java

importorg.apache.log4j.Logger;

importorg.drools.KnowledgeBase;

importorg.drools.builder.KnowledgeBuilder;

importorg.drools.builder.KnowledgeBuilderFactory;

importorg.drools.builder.ResourceType;

importorg.drools.io.ResourceFactory;

importorg.drools.runtime.StatefulKnowledgeSession;

@SuppressWarnings("

restriction"

publicclassCalculationDrl{

staticLoggerlogger=Logger.getLogger(CalculationDrl.class);

publicstaticvoidmain(String[]args){

logger.info("

开始"

KnowledgeBuilderkBuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();

//规则生成器:

将编写好的规则进行编译

kBuilder.add(ResourceFactory.newClassPathResource("

calculation.drl"

CalculationDrl.class),ResourceType.DRL);

//添加规则到规则生成其中进行编译

KnowledgeBasekBase=kBuilder.newKnowledgeBase();

//收集应用当中的知识定义知识库对象

kBase.addKnowledgePackages(kBuilder.getKnowledgePackages());

//添加规则包

StatefulKnowledgeSessionsession=kBase.newStatefulKnowledgeSession();

//与规则的交互通道

Calculationcal=newCalculation(10000);

//输入当月工资

session.setGlobal("

cal"

cal);

session.insert(cal);

//将对象添加到交互通道中

session.fireAllRules();

//执行规则

session.dispose();

//释放资源

System.out.println(cal.toString());

结束"

2.1.4calculation.xls

2.1.5CalculationXls.java

importorg.drools.builder.DecisionTableConfiguration;

importorg.drools.builder.DecisionTableInputType;

publicclassCalculationXls{

DecisionTableConfigurationdtc=KnowledgeBuilderFactory.newDecisionTableConfiguration();

dtc.setInputType(DecisionTableInputType.XLS);

KnowledgeBuilderbuilder=KnowledgeBuilderFactory.newKnowledgeBuilder();

builder.add(ResourceFactory.newClassPathResource("

com/flagleader/bean/calculation.xls"

CalculationXls.class),ResourceType.DTABLE,dtc);

KnowledgeBasebase=builder.newKnowledgeBase();

base.addKnowledgePackages(base.getKnowledgePackages());

StatefulKnowledgeSessionsession=base.newStatefulKnowledgeSession();

Calculationcal=newCalculation(10000,6500.0);

2.1.6GenerationRules.java

importjava.io.*;

importorg.drools.decisiontable.InputType;

importorg.drools.decisiontable.SpreadsheetCompiler;

importorg.junit.Test;

publicclassGenerationRules{

@Test

publicvoidcompile()throwsFileNotFoundException{

Filefile=newFile(

"

E:

\\qzxx_workspace\\calculation\\src\\main\\java\\com\\flagleader\\bean\\calculation.xls"

InputStreamis=newFileInputStream(file);

SpreadsheetCompilerconverter=newSpreadsheetCompiler();

Stringdrl=pile(is,InputType.XLS);

System.out.println("

\n\n"

+drl);

2.1.7calculations.drl

//generatedfromDecisionTable

importcom.flagleader.bean.Calculation;

importjava.lang.Object;

functiondoublegetCes(doublecess){

//System.out.println("

cess="

+cess);

returncess;

}

functiondoublegetPre(doublepreminus){

preminus="

+preminus);

returnpreminus;

salience65526

System.out.println("

//rulevaluesatD11,headeratD6

test_11"

salience65525

Calculation(wagemore>

0,wagemore<

=1500)

cal.setCess(getCes(0.03));

cal.setPreminus(getPre(0.00));

//rulevaluesatD12,headeratD6

test_12"

salience65524

1500,wagemore<

=4500)

cal.setCess(getCes(0.1));

cal.setPreminus(getPre(105.00));

//rulevaluesatD13,headeratD6

test_13"

salience65523

4500,wagemore<

=9000)

cal.setCess(getCes(0.2));

cal.setPreminus(getPre(555.00));

//rulevaluesatD14,headeratD6

test_14"

salience65522

9000,wagemore<

=35000)

cal.setCess(getCes(0.25));

cal.setPreminus(getPre(1005.00));

//rulevaluesatD15,headeratD6

test_15"

salience65521

35000,wagemore<

=55000)

cal.setCess(getCes(0.3));

cal.setPreminus(getPre(2755.00));

//rulevaluesatD16,headeratD6

test_16"

salience65520

55000,wagemore<

=80000)

cal.setCess(getCes(0.35));

cal.setPreminus(getPre(5505.00));

//rulevaluesatD17,headeratD6

test_17"

salience65519

80000,wagemore<

=100000)

cal.setCess(getCes(0.45));

cal.setPreminus(getPre(13505.00));

 

salience65518

+cal.getCess());

2.1.8CalculationDrlXls.java

publicclassCalculationDrlXls{

staticLoggerlogger=Logger.getLogger(CalculationDrlXls.class);

calculations.drl"

CalculationDrlXls.class),ResourceType.DRL);

//添加规

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2