summaryrefslogtreecommitdiff
path: root/lib/docu-list-rule/utils.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-07-28 09:19:42 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-07-28 09:19:42 +0000
commit50ae0b8f02c034e60d4cbb504620dfa1575a836f (patch)
tree24c661a0c7354e15ad56e2bded4d300bd7fd2b41 /lib/docu-list-rule/utils.ts
parent738f956aa61264ffa761e30398eca23393929f8c (diff)
(박서영) 설계 document Numbering Rule 개발-최겸 업로드
Diffstat (limited to 'lib/docu-list-rule/utils.ts')
-rw-r--r--lib/docu-list-rule/utils.ts60
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