diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-28 09:19:42 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-28 09:19:42 +0000 |
| commit | 50ae0b8f02c034e60d4cbb504620dfa1575a836f (patch) | |
| tree | 24c661a0c7354e15ad56e2bded4d300bd7fd2b41 /lib/docu-list-rule/utils.ts | |
| parent | 738f956aa61264ffa761e30398eca23393929f8c (diff) | |
(박서영) 설계 document Numbering Rule 개발-최겸 업로드
Diffstat (limited to 'lib/docu-list-rule/utils.ts')
| -rw-r--r-- | lib/docu-list-rule/utils.ts | 60 |
1 files changed, 60 insertions, 0 deletions
diff --git a/lib/docu-list-rule/utils.ts b/lib/docu-list-rule/utils.ts new file mode 100644 index 00000000..ddeb5e6d --- /dev/null +++ b/lib/docu-list-rule/utils.ts @@ -0,0 +1,60 @@ +// docu-list-rule 모듈 공통 유틸리티 함수들 + +/** + * Code Group ID에서 다음 번호를 생성하는 함수 + * DOC_CLASS는 제외하고 계산 + */ +export function generateNextCodeGroupId(lastGroupId: string): string { + if (!lastGroupId.startsWith('GROUP')) { + return 'GROUP001' + } + + const numberPart = lastGroupId.substring(5) + const nextNumber = parseInt(numberPart) + 1 + return `GROUP${nextNumber.toString().padStart(3, '0')}` +} + +/** + * Document Class Code에서 다음 번호를 생성하는 함수 + */ +export function generateNextDocumentClassCode(lastCode: string): string { + if (!lastCode.startsWith('DOC_CLASS_')) { + return 'DOC_CLASS_001' + } + + const numberPart = lastCode.substring(10) + const nextNumber = parseInt(numberPart) + 1 + return `DOC_CLASS_${nextNumber.toString().padStart(3, '0')}` +} + +/** + * Number Type Config에서 다음 SDQ를 생성하는 함수 + */ +export function generateNextSdq(configs: Array<{ sdq: number }>): number { + if (configs.length === 0) { + return 1 + } + + const maxSdq = Math.max(...configs.map(config => config.sdq)) + return maxSdq + 1 +} + +/** + * 활성화된 항목만 필터링하는 함수 + */ +export function filterActiveItems<T extends { isActive: boolean }>(items: T[]): T[] { + return items.filter(item => item.isActive) +} + +/** + * 날짜를 포맷팅하는 함수 + */ +export function formatDate(date: Date): string { + return new Intl.DateTimeFormat('ko-KR', { + year: 'numeric', + month: '2-digit', + day: '2-digit', + hour: '2-digit', + minute: '2-digit' + }).format(date) +}
\ No newline at end of file |
