应用Jboss rules规则引擎,以中文定义业务规则

时间:2022-11-27 06:53:59

1.rulesWithDSL.drl文件的定义:

应用Jboss rules规则引擎,以中文定义业务规则package com.mip.biz.operatebill.rules;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则
import com.mip.biz.operatebill.objects.ValueBean;
应用Jboss rules规则引擎,以中文定义业务规则
import org.apache.commons.lang.StringUtils;
应用Jboss rules规则引擎,以中文定义业务规则
import com.mip.core.utils.Log;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则global com.mip.biz.operatebill.services.RulesService operateRulesService;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则expander rules.dsl;
应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
/**
应用Jboss rules规则引擎,以中文定义业务规则 * 判断操作项目内容中是否存在相应的标记字符串
应用Jboss rules规则引擎,以中文定义业务规则 
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则function 
boolean itemContains(String content,String flag){
应用Jboss rules规则引擎,以中文定义业务规则    
boolean res = StringUtils.contains(content,flag);
应用Jboss rules规则引擎,以中文定义业务规则    
return res;
应用Jboss rules规则引擎,以中文定义业务规则}

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
/**
应用Jboss rules规则引擎,以中文定义业务规则 * 判断操作项目内容中是否存在相应的标记字符串
应用Jboss rules规则引擎,以中文定义业务规则 
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则function 
boolean judge(String content,String action,String dev){
应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则    
//判断指定的设备是否存在
应用Jboss rules规则引擎,以中文定义业务规则
    Log.debug("content:"+content);
应用Jboss rules规则引擎,以中文定义业务规则    String[] splitDevname 
= dev.split("");    
应用Jboss rules规则引擎,以中文定义业务规则    
boolean exitsDevname = false;
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
for(int i=0;i<splitDevname.length;i++){    
应用Jboss rules规则引擎,以中文定义业务规则        String oneDevname 
= splitDevname[i];
应用Jboss rules规则引擎,以中文定义业务规则        
//Log.debug("oneDevname:"+oneDevname);
应用Jboss rules规则引擎,以中文定义业务规则
        exitsDevname = StringUtils.contains(content,oneDevname);
应用Jboss rules规则引擎,以中文定义业务规则        
if(exitsDevname) break;
应用Jboss rules规则引擎,以中文定义业务规则    }
    
应用Jboss rules规则引擎,以中文定义业务规则    Log.debug(
"exitsDevName:"+exitsDevname);
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则    String[] splitAction 
= action.split("");
应用Jboss rules规则引擎,以中文定义业务规则    
boolean exitsAction = false;
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
for(int i=0;i<splitAction.length;i++){
应用Jboss rules规则引擎,以中文定义业务规则        String oneAction 
= splitAction[i];
应用Jboss rules规则引擎,以中文定义业务规则        
//Log.debug("oneAction:"+oneAction);
应用Jboss rules规则引擎,以中文定义业务规则
        exitsAction = StringUtils.contains(content,oneAction);
应用Jboss rules规则引擎,以中文定义业务规则        
if(exitsAction) break;
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则    Log.debug(
"exitsAction:"+exitsAction);
应用Jboss rules规则引擎,以中文定义业务规则        
应用Jboss rules规则引擎,以中文定义业务规则    
return exitsAction && exitsDevname;
应用Jboss rules规则引擎,以中文定义业务规则}

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则rule 
"拉闸操作时设置“操作标志”为RULES_IS_OPEN_SWITCH(2)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "拉或拉开或断开" "某某" "刀闸或开关"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"2
应用Jboss rules规则引擎,以中文定义业务规则end
应用Jboss rules规则引擎,以中文定义业务规则rule 
"合闸操作时设置“操作标志”为RULES_IS_CLOSE_SWITCH(3)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "合或合上" "某某" "刀闸或开关"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"3
应用Jboss rules规则引擎,以中文定义业务规则end
应用Jboss rules规则引擎,以中文定义业务规则rule 
"拉或拉开##地刀操作设置“操作标志”为RULES_IS_OPEN_SWITCH_FLOOR(4)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "拉或拉开或断开" "某某" "地刀"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"4
应用Jboss rules规则引擎,以中文定义业务规则end
应用Jboss rules规则引擎,以中文定义业务规则rule 
"合或合上##地刀操作设置“操作标志”为RULES_IS_CLOSE_SWITCH_FLOOR(5)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "合或合上" "某某" "地刀"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"5
应用Jboss rules规则引擎,以中文定义业务规则end
应用Jboss rules规则引擎,以中文定义业务规则rule 
"安装地线操作时设置“操作标志”为RULES_IS_FIX_FLOOR_LINE(6)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "安装" "某某" "地线"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"6
应用Jboss rules规则引擎,以中文定义业务规则end
应用Jboss rules规则引擎,以中文定义业务规则rule 
"拆除地线操作时设置“操作标志”为RULES_IS_UNFIX_FLOOR_LINE(7)"
应用Jboss rules规则引擎,以中文定义业务规则    when 
应用Jboss rules规则引擎,以中文定义业务规则        
"本次操作如果" "拆除" "某某" "地线"
应用Jboss rules规则引擎,以中文定义业务规则    then 
应用Jboss rules规则引擎,以中文定义业务规则        
"设置标记为:"7
应用Jboss rules规则引擎,以中文定义业务规则end


2.rules.dsl文件的定义

[when]"本次操作如果" {action} "某某" {dev}=vb:ValueBean(itemc:content->(judge(itemc,{action},{dev})))
[then]"设置标记为:"{level}=operateRulesService.setResult(vb,new Long({level}));

3.RulesServiceImpl类

应用Jboss rules规则引擎,以中文定义业务规则package com.mip.biz.operatebill.services.imp;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则
import org.drools.WorkingMemory;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则
import com.mip.biz.operatebill.objects.ValueBean;
应用Jboss rules规则引擎,以中文定义业务规则
import com.mip.biz.operatebill.services.RulesService;
应用Jboss rules规则引擎,以中文定义业务规则
import com.mip.core.jbossrules.DroolsTemplate;
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
/**
应用Jboss rules规则引擎,以中文定义业务规则 * <p> 
应用Jboss rules规则引擎,以中文定义业务规则 * 处理操作票中的一引起逻辑规则
应用Jboss rules规则引擎,以中文定义业务规则 * </p>
应用Jboss rules规则引擎,以中文定义业务规则 * 
@author Libin
应用Jboss rules规则引擎,以中文定义业务规则 * @date Mar 17, 2007
应用Jboss rules规则引擎,以中文定义业务规则 * 
@version 4.0
应用Jboss rules规则引擎,以中文定义业务规则 *
应用Jboss rules规则引擎,以中文定义业务规则 * 
@see AnotherClass
应用Jboss rules规则引擎,以中文定义业务规则 
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
public class RulesServiceImpl implements RulesService {
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/** Drools的封装便利函数,返回WorkingMemory */
应用Jboss rules规则引擎,以中文定义业务规则    
private DroolsTemplate operateReluesTemplate;
应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/**
应用Jboss rules规则引擎,以中文定义业务规则     * A judge function
应用Jboss rules规则引擎,以中文定义业务规则     * <p> 运行规则 </p>
应用Jboss rules规则引擎,以中文定义业务规则     * 
@param valueBean
应用Jboss rules规则引擎,以中文定义业务规则     
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public void runRules(ValueBean valueBean){
应用Jboss rules规则引擎,以中文定义业务规则        WorkingMemory wm 
= operateReluesTemplate.getWorkingMemory(valueBean);
应用Jboss rules规则引擎,以中文定义业务规则        
//注入本类,提供各种简便函数供规则中使用
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
        if(wm.getGlobal(OPERATE_RULES_SERVICE_NAME)==null){
应用Jboss rules规则引擎,以中文定义业务规则            wm.setGlobal(OPERATE_RULES_SERVICE_NAME, 
this);
应用Jboss rules规则引擎,以中文定义业务规则        }

应用Jboss rules规则引擎,以中文定义业务规则        wm.fireAllRules();        
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/* (非 Javadoc)
应用Jboss rules规则引擎,以中文定义业务规则     * @see com.mip.biz.operatebill.services.RulesService#setResult(com.mip.biz.operatebill.objects.ValueBean, java.lang.Long)
应用Jboss rules规则引擎,以中文定义业务规则     
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public void setResult(ValueBean valueBean, Long result) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则
        switch(result.intValue()){
应用Jboss rules规则引擎,以中文定义业务规则            
//拉闸操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_OPEN_SWITCH:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setOpenSwitch(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;
应用Jboss rules规则引擎,以中文定义业务规则            
//合闸操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_CLOSE_SWITCH:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setCloseSwitch(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;                
应用Jboss rules规则引擎,以中文定义业务规则            
//拉地刀闸操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_OPEN_SWITCH_FLOOR:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setOpenSwitchFloor(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;
应用Jboss rules规则引擎,以中文定义业务规则            
//合地刀闸操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_CLOSE_SWITCH_FLOOR:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setCloseSwitchFloor(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;    
应用Jboss rules规则引擎,以中文定义业务规则            
//装地线操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_FIX_FLOOR_LINE:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setFixFloorLine(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;
应用Jboss rules规则引擎,以中文定义业务规则            
//拆地线操作
应用Jboss rules规则引擎,以中文定义业务规则
            case RULES_IS_UNFIX_FLOOR_LINE:
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setUnfixFloorLine(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                valueBean.setStress(
new Boolean(true));
应用Jboss rules规则引擎,以中文定义业务规则                
break;    
应用Jboss rules规则引擎,以中文定义业务规则        }

应用Jboss rules规则引擎,以中文定义业务规则        valueBean.setResult(result);
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/* (非 Javadoc)
应用Jboss rules规则引擎,以中文定义业务规则     * @see com.mip.biz.operatebill.services.RulesService#isStress(com.mip.biz.operatebill.objects.ValueBean)
应用Jboss rules规则引擎,以中文定义业务规则     
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isStress(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getStress();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/* (非 Javadoc)
应用Jboss rules规则引擎,以中文定义业务规则     * @see com.mip.biz.operatebill.services.RulesService#isCloseSwith(com.mip.biz.operatebill.objects.ValueBean)
应用Jboss rules规则引擎,以中文定义业务规则     
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isCloseSwitch(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getCloseSwitch();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isCloseSwitchFloor(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getCloseSwitchFloor();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isOpenSwitchFloor(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getOpenSwitchFloor();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
/* (非 Javadoc)
应用Jboss rules规则引擎,以中文定义业务规则     * @see com.mip.biz.operatebill.services.RulesService#isOpenSwitch(com.mip.biz.operatebill.objects.ValueBean)
应用Jboss rules规则引擎,以中文定义业务规则     
*/

应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isOpenSwitch(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getOpenSwitch();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则    
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public void setOperateReluesTemplate(DroolsTemplate operateReluesTemplate) {
应用Jboss rules规则引擎,以中文定义业务规则        
this.operateReluesTemplate = operateReluesTemplate;
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isFixFloorLine(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getFixFloorLine();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则
应用Jboss rules规则引擎,以中文定义业务规则应用Jboss rules规则引擎,以中文定义业务规则    
public boolean isUnfixFloorLine(ValueBean valueBean) {
应用Jboss rules规则引擎,以中文定义业务规则        
// TODO Auto-generated method stub
应用Jboss rules规则引擎,以中文定义业务规则
        return valueBean.getUnfixFloorLine();
应用Jboss rules规则引擎,以中文定义业务规则    }

应用Jboss rules规则引擎,以中文定义业务规则}

应用Jboss rules规则引擎,以中文定义业务规则