2장 계산 수식

  1. 단순 수식
  2. 판단 수식

계산 수식

용어 설명
단순 수식 단순 계산을 위한 수식
판단 수식 조건이 있는 계산 수식을 위한 수식

단순 수식(Simple Formula)

구구단 (예1)

이 예제는 구구단 수식을 계산수식의 단순수식에 적용한 경우의 예제 입니다. 그리고 version 1, version 1.1의 API의 사용에 대해서도 같이 기술 하였습니다.

계산목록 화면(version 1)

manager화면, 구구단의 version 1에 대한 계산목록 등록 화면.

그림 : 구구단 - 계산목록 화면(version 1)
구구단 - 계산목록 화면(version 1)
계산목록 화면(version 1.1)

manager화면, 구구단의 version 1.1에 대한 계산목록의 등록된 화면.

그림 : 구구단 - 계산목록 화면(version 1.1)
구구단 - 계산목록 화면(version 1.1)
계산수식 입력항목 화면(version 1, 1.1이 동일함)

manager화면, 구구단의 version 1, 1.1에 대한 입력 항목 화면.

그림 : 구구단 - 입력항목 화면(version 1, 1.1)
구구단 - 입력항목 화면(version 1, 1.1)
계산수식 공식 화면(version 1)

manager화면, 구구단의 version 1에 대한 공식 화면.

그림 : 구구단 - 공식 화면(version 1)
구구단 - 공식 화면(version 1)
계산수식 공식 화면(version 1.1)

manager화면, 구구단의 version 1.1에 대한 공식 화면

그림 : 구구단 - 공식 화면(version 1.1)
구구단 - 공식 화면(version 1.1)
API 사용 - 1 (버전 지정)

해당 version에 대한 마스터의 결과(PosCalcValueInfo)를 취득한다.

PosCalcValueInfo MasterAccess.getCalcValueInfo(calcID 계산수식 ID, calcVer 계산수식 버전, inputParamList 입력값(배열));

PosCalcValueInfo 대한 메소드

메소드명 내용
String getHeaderInfo() 마스터 헤더 정보를 반환한다.
String getFormula() 계산수식 공식을 반환한다.
MapString, String getInputValues() 입력값 맵을 반환한다.
BigDecimal getCalcResultValue() 계산수식 결과를 반환한다.

예)

//parameter 구성
List<String[]> inputParams = new ArrayList<String[]>();
inputParams.add( new String[] { "9" } );
inputParams.add( new String[] { "8" } );

// version 1의 계산 결과에 대한 출력
PosCalcValueInfo posCalc2 = MasterAccess.getCalcValueInfo( "CALFORM01", "1" ,inputParams );
System.out.println("-------------------------------------------------------------");
System.out.println("계산 헤드 정보(String)           = " + posCalc2.getHeaderInfo());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 공식(String)           = " + posCalc2.getFormula());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 항목(Map<String, String>) = " + posCalc2.getInputValues());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 결과값(BigDecimal)     = " + posCalc2.getCalcResultValue());
System.out.println("-------------------------------------------------------------");

출력 결과(version 1)

-------------------------------------------------------------
계산 헤드 정보(String)           = Master Type : Calculation Rule
ID : CALFORM01
Version : 1
Master Name : 구구단
Detail Type : Simple Formula
Expiration Period : 2014-03-07 00:00:00.0 ~ 2999-12-31 23:59:00.0
-------------------------------------------------------------
계산 수식 공식(String)           = V1-V2
-------------------------------------------------------------
계산 항목(Map<String, String>) = {V2=8, V1=9}
-------------------------------------------------------------
계산 수식 결과값(BigDecimal)     = 1
-------------------------------------------------------------
API 사용 - 2 (최신 버전)

가장 최신 버전에 해당한 마스터 결과(PosCalcValueInfo)를 취득한다.

PosCalcValueInfo MasterAccess.getCalcValueInfo(calcID 계산수식 ID, inputParamList 입력값(배열));

PosCalcValueInfo 대한 메소드

메소드명 내용
String getHeaderInfo() 마스터 헤더 정보를 반환한다.
String getFormula() 계산수식 공식을 반환한다.
MapString, String getInputValues() 입력값 맵을 반환한다.
BigDecimal getCalcResultValue() 계산수식 결과를 반환한다.

예)

//parameter 구성
List<String[]> inputParams = new ArrayList<String[]>();
inputParams.add( new String[] { "9" } );
inputParams.add( new String[] { "8" } );

// 가장 최신 version에 대해서 계산 결과에 대한 출력
PosCalcValueInfo posCalc = MasterAccess.getCalcValueInfo( "CALFORM01", inputParams );
System.out.println("-------------------------------------------------------------");
System.out.println("계산 헤드 정보(String)           = " + posCalc.getHeaderInfo());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 공식(String)           = " + posCalc.getFormula());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 항목(Map<String, String>)   = " + posCalc.getInputValues());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 결과값(BigDecimal)     = " + posCalc.getCalcResultValue());
System.out.println("-------------------------------------------------------------");

출력 결과(최신버전)

-------------------------------------------------------------
계산 헤드 정보(String)           = Master Type : Calculation Rule
ID : CALFORM01
Version : 1.1
Master Name : 구구단
Detail Type : Simple Formula
Expiration Period : 2014-03-07 00:00:00.0 ~ 2999-12-31 23:59:00.0
-------------------------------------------------------------
계산 수식 공식(String)           = V1*V2
-------------------------------------------------------------
계산 항목(Map<String, String>)   = {V2=8, V1=9}
-------------------------------------------------------------
계산 수식 결과값(BigDecimal)     = 72
-------------------------------------------------------------

불쾌지수 구하기(예2)

이 예제는 불쾌지수를 계산수식의 단순수식에 적용한 경우의 예제 입니다.

불퀘지수 설명
계산목록 화면

manager화면, 불쾌지수에 대한 계산수식 목록 등록 화면.

그림 : 불쾌지수 - 계산목록 화면
불쾌지수 - 계산목록 화면
계산수식 입력항목 화면

manager화면, 불쾌지수에 대한 계산수식 입력항목 등록 화면.

그림 : 불쾌지수 - 입력항목 화면
불쾌지수 - 입력항목 화면
계산수식 공식 화면

manager화면, 불퀘지수에 대한 계산수식 공식 등록 화면.

그림 : 불쾌지수 - 공식 화면
불쾌지수 - 공식 화면
API 사용

해당한 마스터 결과(PosCalcValueInfo)를 취득한다.

PosCalcValueInfo MasterAccess.getCalcValueInfo (calcID 계산수식 ID, inputParamList 입력값(배열));

PosCalcValueInfo 대한 메소드

메소드명 내용
String getHeaderInfo() 마스터 헤더 정보를 반환한다.
String getFormula() 계산수식 공식을 반환한다.
MapString, String getInputValues() 입력값 맵을 반환한다.
BigDecimal getCalcResultValue() 계산수식 결과를 반환한다.

예)

//계산수식2
//parameter 구성
List<String[]> inputParams2 = new ArrayList<String[]>();
inputParams2.add( new String[] { "15" } );//현재온도
inputParams2.add( new String[] { "0.5" } );//상대습도
// 계산 결과에 대한 출력
PosCalcValueInfo posCalc3 = MasterAccess.getCalcValueInfo( "CALFORM03", inputParams2 );
System.out.println("-------------------------------------------------------------");
System.out.println("계산 헤드 정보(String)           = " + posCalc3.getHeaderInfo());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 공식(String)           = " + posCalc3.getFormula());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 항목(Map<String, String>)   = " + posCalc3.getInputValues());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 결과값(BigDecimal)     = " + posCalc3.getCalcResultValue());
System.out.println("-------------------------------------------------------------");

출력 결과

-------------------------------------------------------------
계산 헤드 정보(String)           = Master Type : Calculation Rule
ID : CALFORM03
Version : 1
Master Name : 불쾌지수
Detail Type : Simple Formula
Expiration Period : 2014-03-09 00:00:00.0 ~ 2999-12-31 23:59:00.0
-------------------------------------------------------------
계산 수식 공식(String)           = (9/5)*V1-0.55*(1-V2)*(9/5*V1-26)+32
-------------------------------------------------------------
계산 항목(Map<String, String>)   = {V2=0.5, V1=15}
-------------------------------------------------------------
계산 수식 결과값(BigDecimal)     = 59
-------------------------------------------------------------

판단 수식(Conditional Formula)

주택 취등록세 구하기 (예1)

이 예제는 주택 취등록세 계산수식을 판단수식에 적용한 경우의 예제 입니다.

구분 취득세율 농특세율 교육세율 합계
6억이하 85㎡이하 1% - 0.1% 1.1%
85㎡초과 1% 0.65% 0.1% 1.75%
9억이하 85㎡이하 2% - 0.2% 2.2%
85㎡초과 2% 0.5% 0.2% 2.5%
9억초과 85㎡이하 3% - 0.3% 3.3%
85㎡초과 3% 0.35% 0.3% 3.65%
계산목록 화면

manager화면, 주택취등록세에 대한 계산수식 목록 등록 화면.

그림 : 주택 취등록세 - 계산목록 화면
주택 취등록세 - 계산목록 화면
계산목록 입력항목 화면

manager화면, 주택취등록세에 대한 계산수식 입력항목 등록 화면.

그림 : 주택 취등록세 - 입력항목 화면
주택 취등록세 - 입력항목 화면
계산목록 공식 화면

manager화면, 주택취등록세에 대한 계산수식 공식 등록 화면.

그림 : 주택 취등록세 - 공식 화면
주택 취등록세 - 공식 화면
API 사용

해당한 마스터 결과(PosCalcValueInfo)를 취득한다.

PosCalcValueInfo MasterAccess.getCalcValueInfo (calcID 계산수식 ID, inputParamList 입력값(배열));

PosCalcValueInfo 대한 메소드

메소드명 내용
String getHeaderInfo() 마스터 헤더 정보를 반환한다.
String getFormula() 계산수식 공식을 반환한다.
MapString, String getInputValues() 입력값 맵을 반환한다.
BigDecimal getCalcResultValue() 계산수식 결과를 반환한다.

예)

//계산수식4
//parameter 구성
List<String[]> inputParams4 = new ArrayList<String[]>();
inputParams4.add( new String[] { "800000000" } );//금액
inputParams4.add( new String[] { "103" } );//면적
// 계산 결과에 대한 출력
PosCalcValueInfo posCalc4 = MasterAccess.getCalcValueInfo( "CALFORM04", inputParams4 );
System.out.println("-------------------------------------------------------------");
System.out.println("계산 헤드 정보(String)           = " + posCalc4.getHeaderInfo());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 공식(String)           = " + posCalc4.getFormula());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 항목(Map<String, String>)   = " + posCalc4.getInputValues());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 결과값(BigDecimal)     = " + posCalc4.getCalcResultValue());
System.out.println("-------------------------------------------------------------");

출력 결과

-------------------------------------------------------------
계산 헤드 정보(String)           = Master Type : Calculation Rule
ID : CALFORM04
Version : 1
Master Name : 취등록세
Detail Type : Conditional Formula
Expiration Period : 2014-03-10 00:00:00.0 ~ 2999-12-31 23:59:00.0
-------------------------------------------------------------
계산 수식 공식(String)           = V1*(2+0.5+0.2)/100
-------------------------------------------------------------
계산 항목(Map<String, String>)   = {V2=103, V1=800000000}
-------------------------------------------------------------
계산 수식 결과값(BigDecimal)     = 21600000
-------------------------------------------------------------

근로소득공제 금액 구하기(예2)

예제는 근로소득공제 금액을 계산수식을 판단수식에 적용한 경우의 예제 입니다.

근로소독공제 공식
계산목록 화면

manager화면, 근로소득공제 금액산출 계산목록의 등록된 화면.

그림 : 근로소득공제 - 계산목록 화면
근로소득공제 - 계산목록 화면
계산목록 입력항목 화면

manager화면, 근로소득공제 금액산출 계산목록의 등록된 화면.

그림 : 근로소득공제 - 입력항목 화면
근로소득공제 - 입력항목 화면
계산목록 공식 화면

manager화면, 근로소득공제 금액산출 공식의 등록된 화면.

그림 : 근로소득공제 - 공식 화면
근로소득공제 - 공식 화면
API 사용

해당한 마스터 결과(PosCalcValueInfo)를 취득한다.

PosCalcValueInfo MasterAccess.getCalcValueInfo (calcID 계산수식 ID, inputParamList 입력값(배열));

PosCalcValueInfo 대한 메소드

메소드명 내용
String getHeaderInfo() 마스터 헤더 정보를 반환한다.
String getFormula() 계산수식 공식을 반환한다.
MapString, String getInputValues() 입력값 맵을 반환한다.
BigDecimal getCalcResultValue() 계산수식 결과를 반환한다.

예)

//계산수식5
//parameter 구성
List<String[]> inputParams5 = new ArrayList<String[]>();
inputParams5.add( new String[] { "50000000" } );//금액
// 계산 결과에 대한 출력
PosCalcValueInfo posCalc5 = MasterAccess.getCalcValueInfo( "CALFORM05", inputParams5 );
System.out.println("-------------------------------------------------------------");
System.out.println("계산 헤드 정보(String)           = " + posCalc5.getHeaderInfo());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 공식(String)           = " + posCalc5.getFormula());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 항목(Map<String, String>)   = " + posCalc5.getInputValues());
System.out.println("-------------------------------------------------------------");
System.out.println("계산 수식 결과값(BigDecimal)     = " + posCalc5.getCalcResultValue());
System.out.println("-------------------------------------------------------------");

출력 결과

-------------------------------------------------------------
계산 헤드 정보(String)           = Master Type : Calculation Rule
ID : CALFORM05
Version : 1
Master Name : 근로소득공제
Detail Type : Conditional Formula
Expiration Period : 2014-03-10 00:00:00.0 ~ 2999-12-31 23:59:00.0
-------------------------------------------------------------
계산 수식 공식(String)           = 12750000+(V1-45000000)*5/100
-------------------------------------------------------------
계산 항목(Map<String, String>)   = {V1=50000000}
-------------------------------------------------------------
계산 수식 결과값(BigDecimal)     = 13000000
-------------------------------------------------------------