⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 insurancefactor.drl

📁 使用Drool规则引擎开发关于保险评估的一个案例。仅供参考
💻 DRL
字号:
package org.acme.insuranceimport org.acme.insurance.base.Rejection;import org.acme.insurance.base.Policy;import org.acme.insurance.base.Driver;import org.acme.insurance.base.DriverAdditionalInfo;import org.acme.insurance.base.AccessoriesCoverage;import org.acme.insurance.base.SupplementalInfo;rule "Driver is underage"	ruleflow-group "risk assessment"	when		not Rejection()	 		$driver : Driver ( age < 18)	then		$driver.updateInsuranceFactor(0.0);		insert(new Rejection("Driver is Underage"));		System.out.println("Driver is Underage");endrule "New licenced Driver"	ruleflow-group "risk assessment"	when		$driver : Driver ( licenceYears < 3 )	then		$driver.updateInsuranceFactor(1.2);		System.out.println("New Licenced driver " + $driver.getInsuranceFactor());		endrule "Driver Single Young Male Driver factor"	ruleflow-group "risk assessment"	when		$driver : Driver( genre == Driver.MALE, age < 25, maritalState == Driver.SINGLE )	then 		$driver.updateInsuranceFactor(1.6);		System.out.println("Driver Single Young Male Driver factor: " + $driver.getInsuranceFactor());endrule "Driver Mature Married With Young Child factor"	ruleflow-group "risk assessment"	when		$driver : Driver( genre == Driver.MALE, age > 40, maritalState == Driver.MARRIED, hasChildren == true )	then 		$driver.updateInsuranceFactor(1.5);		System.out.println("Driver Mature Married With Young Child factor: " + $driver.getInsuranceFactor());endrule "Priory Claimed Driver"	ruleflow-group "risk assessment"	when		$driver : Driver ( $prior : priorClaims > 2 )	then		$driver.updateInsuranceFactor((0.2 * $prior) + 1);		System.out.println("Priory Claimed Driver + 20% for each previous problem " + $driver.getInsuranceFactor());		endrule "Day Vehicle Place"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$daddit : DriverAdditionalInfo ( driverId == driverID, dayVehiclePlace == DriverAdditionalInfo.STREET ) 	then		$driver.updateInsuranceFactor( 1.15 );		System.out.println("Day Vehicle Place: " + $driver.getInsuranceFactor());		endrule "Night Vehicle Place"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$daddit : DriverAdditionalInfo ( driverId == driverID, nightVehiclePlace  == DriverAdditionalInfo.STREET ) 	then		$driver.updateInsuranceFactor(1.44); // streets are very dangerous dangerous at night ;) 		System.out.println("Night Vehicle Place: " + $driver.getInsuranceFactor());		end// Supplemental itens insurance rule "Driver wants an extra Car"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$supple : SupplementalInfo ( driverId == driverID, extraCar  == true) 	then		$driver.updateInsuranceFactor( 1.05 );		System.out.println("Driver wants an extra Car: " + $driver.getInsuranceFactor());		endrule "Driver wants extra assistence"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$supple : SupplementalInfo ( driverId == driverID, extraAssistence   == true) 	then		$driver.updateInsuranceFactor( 1.05 );		System.out.println("Driver wants extra assistence: " + $driver.getInsuranceFactor());		endrule "Driver wants glass coverage"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$supple : SupplementalInfo ( driverId == driverID, glassCoverage  == true) 	then		$driver.updateInsuranceFactor( 1.05 );		System.out.println("Driver wants glass coverage: " + $driver.getInsuranceFactor());		endrule "Driver wants non related expenses coverage"	ruleflow-group "risk assessment"	when		$driver : Driver ( driverID : id )		$supple : SupplementalInfo ( driverId == driverID, nonRelatedExpenses  == true) 	then		$driver.updateInsuranceFactor( 1.05 );		System.out.println("Driver wants non related expenses coverage: " + $driver.getInsuranceFactor());		end

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -