From 75249e6fa46864f49d4eb91bd755171b6b65eaae Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Mon, 28 Jul 2025 12:10:39 +0000 Subject: (김준회) 공통모듈 - Knox 결재 모듈 구현, 유저 선택기 구현, 상신 결재 저장을 위한 DB 스키마 및 서비스 추가, spreadjs 라이센스 환경변수 통일, 유저 테이블에 epId 컬럼 추가 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .env.development | 4 +- .env.production | 4 +- app/[lng]/admin/approval-test/page.tsx | 10 +- app/[lng]/admin/approval-test/page.tsx.bak | 32 - app/[lng]/admin/mdg/page.tsx.bak | 277 ------ app/api/auth/[...nextauth]/route.ts | 1 + components/common/user/user-selector.tsx | 447 ++++++++++ components/knox/approval/ApprovalCancel.tsx | 34 +- components/knox/approval/ApprovalDetail.tsx | 58 +- components/knox/approval/ApprovalList.tsx | 38 +- components/knox/approval/ApprovalManager.tsx | 92 +- components/knox/approval/ApprovalSubmit.tsx | 1063 +++++++++++++++++------ components/knox/approval/index.ts | 3 - components/knox/approval/mocks/approval-mock.ts | 230 ----- components/qna/tiptap-editor.tsx | 16 - components/rich-text-editor/RichTextEditor.tsx | 998 +++++++++++++++++++++ components/spread-js/dataBinding.tsx | 4 +- components/spread-js/testSheet.tsx | 4 +- db/schema/index.ts | 9 +- db/schema/knox/approvals.ts | 16 + db/schema/users.ts | 1 + lib/knox-api/approval/approval.ts | 74 +- lib/knox-api/approval/service.ts | 140 +++ lib/knox-api/common.ts | 1 + lib/knox-sync/employee-sync-service.ts | 3 + lib/knox-sync/master-sync-service.ts | 2 +- lib/users/service.ts | 95 +- 27 files changed, 2708 insertions(+), 948 deletions(-) delete mode 100644 app/[lng]/admin/approval-test/page.tsx.bak delete mode 100644 app/[lng]/admin/mdg/page.tsx.bak create mode 100644 components/common/user/user-selector.tsx delete mode 100644 components/knox/approval/mocks/approval-mock.ts create mode 100644 components/rich-text-editor/RichTextEditor.tsx create mode 100644 db/schema/knox/approvals.ts create mode 100644 lib/knox-api/approval/service.ts diff --git a/.env.development b/.env.development index 6b74e5de..2ea1c4b0 100644 --- a/.env.development +++ b/.env.development @@ -117,7 +117,7 @@ MDG_SOAP_USERNAME=P2038_01 # 개발/품질/운영 공통 # MDG_SOAP_PASSWORD=STG4857602 # 개발 MDG_SOAP_PASSWORD=SEW2765890 # 품질 # MDG_SOAP_PASSWORD=POI9807861 # 운영 -SOAP_LOG_MAX_RECORDS=500 +SOAP_LOG_MAX_RECORDS=5000 # === SOAP 인터페이스 설정 === # === KNOX API 사용을 위한 설정 === @@ -128,7 +128,7 @@ KNOX_SYSTEM_ID="KCD60REST00046" KNOX_API_BEARER="5a84ab62-d523-3602-ad3d-e3421893ae0c" # 운영 # 동기화 설정 KNOX_API_FORCE_LIMIT=false # 주간대량호출 강제 제한 여부 -KNOX_API_HOURLY_LIMIT=90 # 시간당 API 호출횟수 제한 +KNOX_API_HOURLY_LIMIT=400 # 시간당 API 호출횟수 제한 # KNOX_API_CALL_DELAY_MS # API 배치 처리간 딜레이 수동 설정이며, 자동 산출값보다 높아야 적용 KNOX_MASTER_SYNC_CRON="0 2 * * *" # cron 스케줄, 새벽 2시에 적용되며, 직급-조직도-임직원 순으로 적용. KNOX_MASTER_SYNC_FIRST_RUN="false" # 앱 시작시 동기화 시작 여부 diff --git a/.env.production b/.env.production index 0efe9996..17dbaa42 100644 --- a/.env.production +++ b/.env.production @@ -118,7 +118,7 @@ MDG_SOAP_USERNAME=P2038_01 # 개발/품질/운영 공통 # MDG_SOAP_PASSWORD=STG4857602 # 개발 MDG_SOAP_PASSWORD=SEW2765890 # 품질 # MDG_SOAP_PASSWORD=POI9807861 # 운영 -SOAP_LOG_MAX_RECORDS=500 +SOAP_LOG_MAX_RECORDS=5000 # === SOAP 인터페이스 설정 === # === KNOX API 사용을 위한 설정 === @@ -129,7 +129,7 @@ KNOX_SYSTEM_ID="KCD60REST00046" KNOX_API_BEARER="5a84ab62-d523-3602-ad3d-e3421893ae0c" # 운영 # 동기화 설정 KNOX_API_FORCE_LIMIT=false # 주간대량호출 강제 제한 여부 -KNOX_API_HOURLY_LIMIT=90 # 시간당 API 호출횟수 제한 +KNOX_API_HOURLY_LIMIT=400 # 시간당 API 호출횟수 제한 # KNOX_API_CALL_DELAY_MS # API 배치 처리간 딜레이 수동 설정이며, 자동 산출값보다 높아야 적용 KNOX_MASTER_SYNC_CRON="0 2 * * *" # cron 스케줄, 새벽 2시에 적용되며, 직급-조직도-임직원 순으로 적용. KNOX_MASTER_SYNC_FIRST_RUN="false" # 앱 시작시 동기화 시작 여부 diff --git a/app/[lng]/admin/approval-test/page.tsx b/app/[lng]/admin/approval-test/page.tsx index f044d87d..ab5654f3 100644 --- a/app/[lng]/admin/approval-test/page.tsx +++ b/app/[lng]/admin/approval-test/page.tsx @@ -2,8 +2,8 @@ import { Metadata } from 'next'; import ApprovalManager from '@/components/knox/approval/ApprovalManager'; export const metadata: Metadata = { - title: 'Knox 결재 시스템 테스트 | Admin', - description: 'Knox API를 사용한 결재 시스템 기능 테스트용', + title: 'Knox 결재 시스템 | Admin', + description: 'Knox API를 사용한 결재 시스템', }; export default function ApprovalTestPage() { @@ -12,18 +12,14 @@ export default function ApprovalTestPage() {
Knox API를 사용한 결재 시스템 컴포넌트입니다.
-
- 테스트 모드가 기본적으로 활성화되어 있으며, 테스트 모드에서는 실제 API 대신 모킹 데이터를 사용
- Knox API를 사용한 결재 시스템의 모든 기능을 테스트할 수 있습니다.
-
- 테스트 모드가 기본적으로 활성화되어 있으며, 실제 API 대신 가짜 데이터를 사용합니다.
-
- VENDOR 마스터 데이터를 MDG 시스템으로 테스트 송신합니다 -
-CSV 로딩 중...
- ) : ( -{field.description}
- )} -
- {resultXml}
-
- ) : (
- - 테스트 송신 버튼을 클릭하면 결과가 표시됩니다. -
-