com.sds.acube.bpm.framework.api
Class CriticalPathProcessor

java.lang.Object
  extended by com.sds.acube.bpm.framework.api.CriticalPathProcessor

public class CriticalPathProcessor
extends java.lang.Object

CriticalPathProcessor.java 2011. 03. 07. 최장경로(expirationTime기준) 관련 BPM API

Version:
1.0.0.0 Copyright 2011 Samsung SDS Co., Ltd. All rights reserved.
Author:
LEE IL YONG

Constructor Summary
CriticalPathProcessor()
           
 
Method Summary
static java.util.Date caculateExpirationDate(java.util.Date baseDate, int dayCount)
          baseDate(일)을 기준으로 주말과 공휴일을 제외한 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
static java.util.Date caculateExpirationDate(java.util.Date baseDate, int dayCount, boolean saturdayWorkFlag, boolean sundayWorkFlag, boolean holidayWorkFlag)
          baseDate(일)를 기준으로 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
static java.util.Date caculateExpirationDate(int dayCount)
          오늘을 기준으로 주말과 공휴일을 제외한 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
static java.util.Date caculateExpirationDate(int dayCount, boolean saturdayWorkFlag, boolean sundayWorkFlag, boolean holidayWorkFlag)
          오늘을 기준으로 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.sql.Connection conn, java.lang.String flowID, int version, boolean recursiveFlag, int subprocessIncludeType, org.apache.log4j.Logger logger)
          시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.sql.Connection conn, java.lang.String flowID, int version, int subprocessIncludeType, org.apache.log4j.Logger logger)
          시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
순환이 있으면 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.lang.String flowID, int version, boolean recursiveFlag, int subprocessIncludeType, org.apache.log4j.Logger logger)
          시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.lang.String flowID, int version, int subprocessIncludeType, org.apache.log4j.Logger logger)
          시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
순환이 있으면 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathListByFlow(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID, boolean recursiveFlag, int subprocessIncludeType, org.apache.log4j.Logger logger)
          nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathListByFlow(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
순환이 있을 경우 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathListByFlow(java.lang.String flowID, int version, java.lang.String nodeID, boolean recursiveFlag, int subprocessIncludeType, org.apache.log4j.Logger logger)
          nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.util.ArrayList[] getAllCompletePathListByFlow(java.lang.String flowID, int version, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
순환이 있을 경우 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
static java.lang.String[] getAllExpirationTermIDByFlow(java.sql.Connection conn, java.lang.String flowID, int version)
          해당 플로우에 설정된 모든 '구간별 처리기한'의 ID를 찾아 리턴함
static java.lang.String[] getAllExpirationTermIDByFlow(java.lang.String flowID, int version)
          해당 플로우에 설정된 모든 '구간별 처리기한'의 ID를 찾아 리턴함
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 해당 nodeID(리턴값에 포함됨)부터 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.lang.String flowID, int version, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.lang.String flowID, int version, java.lang.String nodeID, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.sql.Connection conn, java.lang.String processID, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.sql.Connection conn, java.lang.String processID, java.lang.String nodeID, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.lang.String processID, java.lang.String nodeID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.lang.String processID, java.lang.String nodeID, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.sql.Connection conn, java.lang.String flowID, int version, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.lang.String flowID, int version, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.lang.String flowID, int version, org.apache.log4j.Logger logger)
          주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.sql.Connection conn, java.lang.String processID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime 기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.lang.String processID, int subprocessIncludeType, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.lang.String processID, org.apache.log4j.Logger logger)
          주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
static java.lang.String getExpirationTermIDByFlowNode(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID)
          해당 노드의 '구간별 처리기한' 식별자를 리턴함
static java.lang.String getExpirationTermIDByFlowNode(java.lang.String flowID, int version, java.lang.String nodeID)
          해당 노드의 '구간별 처리기한' 식별자를 리턴함
static int getExpirationTimeByFlowNode(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String nodeID)
          해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음
static int getExpirationTimeByFlowNode(java.lang.String flowID, int version, java.lang.String nodeID)
          해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음
static int getExpirationTimeByProcessNode(java.sql.Connection conn, java.lang.String topProcessID, java.lang.String nodeID)
          해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음
static int getExpirationTimeByProcessNode(java.lang.String topProcessID, java.lang.String nodeID)
          해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음
static int getExpirationTimeByTermID(java.sql.Connection conn, java.lang.String flowID, int version, java.lang.String termID)
          해당 '구간별 처리기한'의 expirationTime(분단위)를 찾아 리턴함
static int getExpirationTimeByTermID(java.lang.String flowID, int version, java.lang.String termID)
          해당 '구간별 처리기한'의 expirationTime(분단위)를 찾아 리턴함
static java.lang.String[] getHolidayList(java.sql.Connection conn, int year)
          해당 년도의 등록된 공휴일을 찾아 리턴함
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.
static java.lang.String[] getHolidayList(int year)
          해당 년도의 등록된 공휴일을 찾아 리턴함
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.
static int getTotalExpirationTime(com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] criticalPath)
          CriticalPath로 얻어낸 경로에서 처리기한 총합을 분단위로 리턴함.
static int getTotalExpirationTime(com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] criticalPath)
          CriticalPath로 얻어낸 경로에서 처리기한 총합을 분단위로 리턴함.
static boolean isHoliday(java.sql.Connection conn, java.util.Date date)
          해당 날짜가 등록된 공휴일인지 여부를 리턴
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.
static boolean isHoliday(java.util.Date date)
          해당 날짜가 등록된 공휴일인지 여부를 리턴
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.
static void main(java.lang.String[] args)
           
 
Methods inherited from class java.lang.Object
equals, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

CriticalPathProcessor

public CriticalPathProcessor()
Method Detail

getCriticalPathFromStartByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.lang.String processID,
                                                                                                    org.apache.log4j.Logger logger)
                                                                                             throws java.lang.Exception
주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
processID - 프로세스 ID
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathFromStartByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.lang.String processID,
                                                                                                    int subprocessIncludeType,
                                                                                                    org.apache.log4j.Logger logger)
                                                                                             throws java.lang.Exception
주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
processID - 프로세스 ID
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathFromStartByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathFromStartByProcess(java.sql.Connection conn,
                                                                                                    java.lang.String processID,
                                                                                                    int subprocessIncludeType,
                                                                                                    org.apache.log4j.Logger logger)
                                                                                             throws java.lang.Exception
주어진 processID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime 기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
processID - 프로세스 ID
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.lang.String processID,
                                                                                           java.lang.String nodeID,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
processID - 프로세스 ID
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.sql.Connection conn,
                                                                                           java.lang.String processID,
                                                                                           java.lang.String nodeID,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
processID - 프로세스 ID
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.lang.String processID,
                                                                                           java.lang.String nodeID,
                                                                                           int subprocessIncludeType,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
processID - 프로세스 ID
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByProcess

public static com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] getCriticalPathByProcess(java.sql.Connection conn,
                                                                                           java.lang.String processID,
                                                                                           java.lang.String nodeID,
                                                                                           int subprocessIncludeType,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 processID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 ProcessApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
processID - 프로세스 ID
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
ProcessApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathFromStartByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.lang.String flowID,
                                                                                           int version,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathFromStartByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.lang.String flowID,
                                                                                           int version,
                                                                                           int subprocessIncludeType,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathFromStartByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathFromStartByFlow(java.sql.Connection conn,
                                                                                           java.lang.String flowID,
                                                                                           int version,
                                                                                           int subprocessIncludeType,
                                                                                           org.apache.log4j.Logger logger)
                                                                                    throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 시작노드부터(리턴값에는 포함안됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.lang.String flowID,
                                                                                  int version,
                                                                                  java.lang.String nodeID,
                                                                                  org.apache.log4j.Logger logger)
                                                                           throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.sql.Connection conn,
                                                                                  java.lang.String flowID,
                                                                                  int version,
                                                                                  java.lang.String nodeID,
                                                                                  org.apache.log4j.Logger logger)
                                                                           throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.lang.String flowID,
                                                                                  int version,
                                                                                  java.lang.String nodeID,
                                                                                  int subprocessIncludeType,
                                                                                  org.apache.log4j.Logger logger)
                                                                           throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 해당 nodeID부터(리턴값에 포함됨) 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getCriticalPathByFlow

public static com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] getCriticalPathByFlow(java.sql.Connection conn,
                                                                                  java.lang.String flowID,
                                                                                  int version,
                                                                                  java.lang.String nodeID,
                                                                                  int subprocessIncludeType,
                                                                                  org.apache.log4j.Logger logger)
                                                                           throws java.lang.Exception
주어진 flowID에 해당하는 업무에서 해당 nodeID(리턴값에 포함됨)부터 종료노드까지의 최장경로(expirationTime기준)를 찾아 FlowApproverRefVO 배열로 리턴함.
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] '구간별 처리기한'도 지원함.
[참고] 순환이 있을 경우 무시함.
[주의] 리턴배열의 마지막 노드는 'END_NODE'임, ApproverRef테이블에 없는 노드이므로 주의할 것.
[주의] 서브 프로세스 분기가 포함되면 리턴배열에 'END_NODE'가 여러개 나옴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드는 'START_NODE'로 설정할 것)
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathFromStartByFlow

public static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.lang.String flowID,
                                                                      int version,
                                                                      int subprocessIncludeType,
                                                                      org.apache.log4j.Logger logger)
                                                               throws java.lang.Exception
시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
순환이 있으면 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathFromStartByFlow

public static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.sql.Connection conn,
                                                                      java.lang.String flowID,
                                                                      int version,
                                                                      int subprocessIncludeType,
                                                                      org.apache.log4j.Logger logger)
                                                               throws java.lang.Exception
시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
순환이 있으면 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathFromStartByFlow

public static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.lang.String flowID,
                                                                      int version,
                                                                      boolean recursiveFlag,
                                                                      int subprocessIncludeType,
                                                                      org.apache.log4j.Logger logger)
                                                               throws java.lang.Exception
시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함. 이 경우 마지막노드의 NodeID는 'END_NODE'가 아님.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathFromStartByFlow

public static java.util.ArrayList[] getAllCompletePathFromStartByFlow(java.sql.Connection conn,
                                                                      java.lang.String flowID,
                                                                      int version,
                                                                      boolean recursiveFlag,
                                                                      int subprocessIncludeType,
                                                                      org.apache.log4j.Logger logger)
                                                               throws java.lang.Exception
시작 노드에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(시작노드는 결과 경로에 포함되지 않음)
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함. 이 경우 마지막노드의 NodeID는 'END_NODE'가 아님.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathListByFlow

public static java.util.ArrayList[] getAllCompletePathListByFlow(java.lang.String flowID,
                                                                 int version,
                                                                 java.lang.String nodeID,
                                                                 int subprocessIncludeType,
                                                                 org.apache.log4j.Logger logger)
                                                          throws java.lang.Exception
nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
순환이 있을 경우 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드면 'START_NODE'로 넘길 것 - 이경우 시작노드는 결과경로에 포함되지 않음)
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathListByFlow

public static java.util.ArrayList[] getAllCompletePathListByFlow(java.sql.Connection conn,
                                                                 java.lang.String flowID,
                                                                 int version,
                                                                 java.lang.String nodeID,
                                                                 int subprocessIncludeType,
                                                                 org.apache.log4j.Logger logger)
                                                          throws java.lang.Exception
nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
순환이 있을 경우 제외됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드면 'START_NODE'로 넘길 것 - 이경우 시작노드는 결과경로에 포함되지 않음)
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathListByFlow

public static java.util.ArrayList[] getAllCompletePathListByFlow(java.lang.String flowID,
                                                                 int version,
                                                                 java.lang.String nodeID,
                                                                 boolean recursiveFlag,
                                                                 int subprocessIncludeType,
                                                                 org.apache.log4j.Logger logger)
                                                          throws java.lang.Exception
nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 순환이 있을 경우 순환점까지만 경로에 추가함. 이 경우 마지막노드의 NodeID는 'END_NODE'가 아님.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID (시작노드면 'START_NODE'로 넘길 것 - 이경우 시작노드는 결과경로에 포함되지 않음)
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllCompletePathListByFlow

public static java.util.ArrayList[] getAllCompletePathListByFlow(java.sql.Connection conn,
                                                                 java.lang.String flowID,
                                                                 int version,
                                                                 java.lang.String nodeID,
                                                                 boolean recursiveFlag,
                                                                 int subprocessIncludeType,
                                                                 org.apache.log4j.Logger logger)
                                                          throws java.lang.Exception
nodeID를 주면 해당 노드(포함)에서부터 종료노드까지의 모든 경로를 찾아 FlowApproverRefVO배열로 리턴함
(마지막노드의 NodeID는 'END_NODE'임)
주어진 노드부터 포함됨
[참고] 결재관련 어댑터만 계산 대상임.
[참고] 서브 프로세스 분기가 있으면 포함하지 않거나 최장(최단) 경로만 포함해서 계산해줌.
[참고] 순환이 있을 경우 순환점까지만 경로에 추가함. 이 경우 마지막노드의 NodeID는 'END_NODE'가 아님.
[참고] 주어진 노드에서 종료에 도달할 수 없으면 null을 리턴.

Parameters:
flowID - 플로우 ID
version - 플로우 버전
tmpNodeID - 노드 ID (시작노드면 'START_NODE'로 넘길 것 - 이경우 시작노드는 결과경로에 포함되지 않음)
recursiveFlag - recursiveFlag가 false이면 순환은 무시됨, recursiveFlag가 true면 순환점까지만 경로에 추가함.
subprocessIncludeType - 서브프로세스 포함 여부(0:무시,1:최장경로로 포함,2:최단경로로 포함(현재미지원))
logger - null가능
Returns:
FlowApproverRefVO[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getTotalExpirationTime

public static int getTotalExpirationTime(com.sds.acube.bpm.vo.flow.FlowApproverRefVO[] criticalPath)
                                  throws java.lang.Exception
CriticalPath로 얻어낸 경로에서 처리기한 총합을 분단위로 리턴함.
파라미터 FlowApproverRefVO 배열 : getCriticalPathFromStartByFlow()나 getCriticalPathByFlow()의 결과
파라미터 FlowApproverRefVO 배열 : getAllCompletePathFromStartByFlow()나 getAllCompletePathListByFlow()의 결과를 for를 돌면서 가장 큰 것을 평가할 때 쓰일 수도 있음

Parameters:
criticalPath - FlowApproverRefVO 배열
Returns:
int 분단위
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getTotalExpirationTime

public static int getTotalExpirationTime(com.sds.acube.bpm.vo.process.ProcessApproverRefVO[] criticalPath)
                                  throws java.lang.Exception
CriticalPath로 얻어낸 경로에서 처리기한 총합을 분단위로 리턴함.
파라미터 ProcessApproverRefVO 배열 : getCriticalPathFromStartByProcess()나 getCriticalPathByProcess()의 결과
파라미터 ProcessApproverRefVO 배열 : getAllCompletePathFromStartByProcess()나 getAllCompletePathListByProcess()의 결과를 for를 돌면서 가장 큰 것을 평가할 때 쓰일 수도 있음

Parameters:
criticalPath - ProcessApproverRefVO 배열
Returns:
int 분단위
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByFlowNode

public static int getExpirationTimeByFlowNode(java.lang.String flowID,
                                              int version,
                                              java.lang.String nodeID)
                                       throws java.lang.Exception
해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByFlowNode

public static int getExpirationTimeByFlowNode(java.sql.Connection conn,
                                              java.lang.String flowID,
                                              int version,
                                              java.lang.String nodeID)
                                       throws java.lang.Exception
해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByProcessNode

public static int getExpirationTimeByProcessNode(java.lang.String topProcessID,
                                                 java.lang.String nodeID)
                                          throws java.lang.Exception
해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음

Parameters:
topProcessID - 탑프로세스 ID(프로세스 ID아님 - ProcessProcessor.getTopProcessID() 참조)
nodeID - 노드 ID
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByProcessNode

public static int getExpirationTimeByProcessNode(java.sql.Connection conn,
                                                 java.lang.String topProcessID,
                                                 java.lang.String nodeID)
                                          throws java.lang.Exception
해당 노드의 expirationTime(분단위)을 리턴함
해당 노드가 '구간별 처리기한'을 설정했는 지는 검사하지 않음

Parameters:
topProcessID - 탑프로세스 ID(프로세스 ID아님 - ProcessProcessor.getTopProcessID() 참조)
nodeID - 노드 ID
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTermIDByFlowNode

public static java.lang.String getExpirationTermIDByFlowNode(java.lang.String flowID,
                                                             int version,
                                                             java.lang.String nodeID)
                                                      throws java.lang.Exception
해당 노드의 '구간별 처리기한' 식별자를 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID
Returns:
termID (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTermIDByFlowNode

public static java.lang.String getExpirationTermIDByFlowNode(java.sql.Connection conn,
                                                             java.lang.String flowID,
                                                             int version,
                                                             java.lang.String nodeID)
                                                      throws java.lang.Exception
해당 노드의 '구간별 처리기한' 식별자를 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
nodeID - 노드 ID
Returns:
termID (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByTermID

public static int getExpirationTimeByTermID(java.lang.String flowID,
                                            int version,
                                            java.lang.String termID)
                                     throws java.lang.Exception
해당 '구간별 처리기한'의 expirationTime(분단위)를 찾아 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
termID - 구간별처리기한 식별자
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getExpirationTimeByTermID

public static int getExpirationTimeByTermID(java.sql.Connection conn,
                                            java.lang.String flowID,
                                            int version,
                                            java.lang.String termID)
                                     throws java.lang.Exception
해당 '구간별 처리기한'의 expirationTime(분단위)를 찾아 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
termID - 구간별처리기한 식별자
Returns:
expirationTime (없을 경우 0 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllExpirationTermIDByFlow

public static java.lang.String[] getAllExpirationTermIDByFlow(java.lang.String flowID,
                                                              int version)
                                                       throws java.lang.Exception
해당 플로우에 설정된 모든 '구간별 처리기한'의 ID를 찾아 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
Returns:
String[] TermID 배열 (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getAllExpirationTermIDByFlow

public static java.lang.String[] getAllExpirationTermIDByFlow(java.sql.Connection conn,
                                                              java.lang.String flowID,
                                                              int version)
                                                       throws java.lang.Exception
해당 플로우에 설정된 모든 '구간별 처리기한'의 ID를 찾아 리턴함

Parameters:
flowID - 플로우 ID
version - 플로우 버전
Returns:
String[] TermID 배열 (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

caculateExpirationDate

public static java.util.Date caculateExpirationDate(int dayCount)
                                             throws java.lang.Exception
오늘을 기준으로 주말과 공휴일을 제외한 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
리턴값은 만기되는 첫날(기간이 초과되는 첫날)이며 이날이 주말(공휴일)인지는 따지지 않음(호출하는 쪽에서 판단할 것)
[참고] dayCount가 1이면 오늘 하루만 유효하며 내일부터는 초과되는 것을 판단하여 내일날짜를 리턴함(오늘이 공휴일이면 공휴일이 아닌 날의 다음날이됨)
[참고] dayCount가 0이면 유효기간이 없으므로 오늘이 공휴일인지와 상관없이 무조건 현재일을 기간경과일로 리턴함

Parameters:
dayCount - 유효기간(날짜) - 분단위아님(getTotalExpirationTime()의 결과값을 쓰려면 /60/24하면 됨)
Returns:
Date 기간경과의 첫날
Throws:
java.lang.Exception
Since:
2011.03.09 LEE IL YONG

caculateExpirationDate

public static java.util.Date caculateExpirationDate(java.util.Date baseDate,
                                                    int dayCount)
                                             throws java.lang.Exception
baseDate(일)을 기준으로 주말과 공휴일을 제외한 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
리턴값은 만기되는 첫날(기간이 초과되는 첫날)이며 이날이 주말(공휴일)인지는 따지지 않음(호출하는 쪽에서 판단할 것)
[참고] dayCount가 1이면 오늘 하루만 유효하며 내일부터는 초과되는 것을 판단하여 내일날짜를 리턴함(오늘이 공휴일이면 공휴일이 아닌 날의 다음날이됨)
[참고] dayCount가 0이면 유효기간이 없으므로 오늘이 공휴일인지와 상관없이 무조건 현재일을 기간경과일로 리턴함

Parameters:
baseDate - 기준일
dayCount - 유효기간(날짜) - 분단위아님(getTotalExpirationTime()의 결과값을 쓰려면 /60/24하면 됨)
Returns:
Date 기간경과의 첫날
Throws:
java.lang.Exception
Since:
2011.03.09 LEE IL YONG

caculateExpirationDate

public static java.util.Date caculateExpirationDate(int dayCount,
                                                    boolean saturdayWorkFlag,
                                                    boolean sundayWorkFlag,
                                                    boolean holidayWorkFlag)
                                             throws java.lang.Exception
오늘을 기준으로 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
리턴값은 만기되는 첫날(기간이 초과되는 첫날)이며 이날이 주말(공휴일)인지는 따지지 않음(호출하는 쪽에서 판단할 것)
[참고] dayCount가 1이면 오늘 하루만 유효하며 내일부터는 초과되는 것을 판단하여 내일날짜를 리턴함(오늘이 공휴일이면 공휴일이 아닌 날의 다음날이됨)
[참고] dayCount가 0이면 유효기간이 없으므로 오늘이 공휴일인지와 상관없이 무조건 현재일을 기간경과일로 리턴함

Parameters:
baseDate - 기준일
dayCount - 유효기간(날짜) - 분단위아님(getTotalExpirationTime()의 결과값을 쓰려면 /60/24하면 됨)
saturdayWorkFlag - 토요일 포함 여부(false면 기간계산시 제외됨)
sundayWorkFlag - 일요일 포함 여부(false면 기간계산시 제외됨)
holidayWorkFlag - 공휴일 포함 여부(false면 기간계산시 제외됨)
Returns:
Date 기간경과의 첫날
Throws:
java.lang.Exception
Since:
2011.03.09 LEE IL YONG

caculateExpirationDate

public static java.util.Date caculateExpirationDate(java.util.Date baseDate,
                                                    int dayCount,
                                                    boolean saturdayWorkFlag,
                                                    boolean sundayWorkFlag,
                                                    boolean holidayWorkFlag)
                                             throws java.lang.Exception
baseDate(일)를 기준으로 특정 날짜 이후의 만기되는 첫날(기간경과첫날)을 계산해서 리턴함.
리턴값은 만기되는 첫날(기간이 초과되는 첫날)이며 이날이 주말(공휴일)인지는 따지지 않음(호출하는 쪽에서 판단할 것)
[참고] dayCount가 1이면 오늘 하루만 유효하며 내일부터는 초과되는 것을 판단하여 내일날짜를 리턴함(오늘이 공휴일이면 공휴일이 아닌 날의 다음날이됨)
[참고] dayCount가 0이면 유효기간이 없으므로 오늘이 공휴일인지와 상관없이 무조건 현재일을 기간경과일로 리턴함

Parameters:
baseDate - 기준일
dayCount - 유효기간(날짜) - 분단위아님(getTotalExpirationTime()의 결과값을 쓰려면 /60/24하면 됨)
saturdayWorkFlag - 토요일 포함 여부(false면 기간계산시 제외됨)
sundayWorkFlag - 일요일 포함 여부(false면 기간계산시 제외됨)
holidayWorkFlag - 공휴일 포함 여부(false면 기간계산시 제외됨)
Returns:
Date 기간경과의 첫날
Throws:
java.lang.Exception
Since:
2011.03.09 LEE IL YONG

getHolidayList

public static java.lang.String[] getHolidayList(int year)
                                         throws java.lang.Exception
해당 년도의 등록된 공휴일을 찾아 리턴함
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.

Parameters:
year - 기준년도
Returns:
String[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

getHolidayList

public static java.lang.String[] getHolidayList(java.sql.Connection conn,
                                                int year)
                                         throws java.lang.Exception
해당 년도의 등록된 공휴일을 찾아 리턴함
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.

Parameters:
year - 기준년도
Returns:
String[] (없을 경우 null 리턴)
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

isHoliday

public static boolean isHoliday(java.util.Date date)
                         throws java.lang.Exception
해당 날짜가 등록된 공휴일인지 여부를 리턴
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.

Parameters:
date -
Returns:
boolean
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

isHoliday

public static boolean isHoliday(java.sql.Connection conn,
                                java.util.Date date)
                         throws java.lang.Exception
해당 날짜가 등록된 공휴일인지 여부를 리턴
공휴일은 관리자가 매년초 TBPM_CODE_MANAGEMENT 테이블에 GROUP_CODE를 'RED_LETTER_DAY'로 등록하여야 함.

Parameters:
date -
Returns:
boolean
Throws:
java.lang.Exception
Since:
2011.03.07 LEE IL YONG

main

public static void main(java.lang.String[] args)
Parameters:
args -