summaryrefslogtreecommitdiff
path: root/lib/basic-contract/sslvw-service.ts
diff options
context:
space:
mode:
authordujinkim <dujin.kim@dtsolution.co.kr>2025-11-18 10:31:47 +0000
committerdujinkim <dujin.kim@dtsolution.co.kr>2025-11-18 10:31:47 +0000
commit1e6d30c9f649dcaa0c1d24561af35d7a77fd51b2 (patch)
treeb6f42a441886e06dbb003bc73ef06e0ecc32e76e /lib/basic-contract/sslvw-service.ts
parentc4f5472b961afb237dc819f9dd3f42a7b8f71075 (diff)
(최겸) 구매 법무검토 조회 dialog 개발
Diffstat (limited to 'lib/basic-contract/sslvw-service.ts')
-rw-r--r--lib/basic-contract/sslvw-service.ts82
1 files changed, 82 insertions, 0 deletions
diff --git a/lib/basic-contract/sslvw-service.ts b/lib/basic-contract/sslvw-service.ts
new file mode 100644
index 00000000..9650d43a
--- /dev/null
+++ b/lib/basic-contract/sslvw-service.ts
@@ -0,0 +1,82 @@
+"use server"
+
+import { oracleKnex } from '@/lib/oracle-db/db'
+
+// SSLVW_PUR_INQ_REQ 테이블 데이터 타입 (실제 테이블 구조에 맞게 조정 필요)
+export interface SSLVWPurInqReq {
+ [key: string]: string | number | Date | null | undefined
+}
+
+// 테스트 환경용 폴백 데이터
+const FALLBACK_TEST_DATA: SSLVWPurInqReq[] = [
+ {
+ id: 1,
+ request_number: 'REQ001',
+ status: 'PENDING',
+ created_date: new Date('2025-01-01'),
+ description: '테스트 요청 1'
+ },
+ {
+ id: 2,
+ request_number: 'REQ002',
+ status: 'APPROVED',
+ created_date: new Date('2025-01-02'),
+ description: '테스트 요청 2'
+ }
+]
+
+/**
+ * SSLVW_PUR_INQ_REQ 테이블 전체 조회
+ * @returns 테이블 데이터 배열
+ */
+export async function getSSLVWPurInqReqData(): Promise<{
+ success: boolean
+ data: SSLVWPurInqReq[]
+ error?: string
+ isUsingFallback?: boolean
+}> {
+ try {
+ console.log('📋 [getSSLVWPurInqReqData] SSLVW_PUR_INQ_REQ 테이블 조회 시작...')
+
+ const result = await oracleKnex.raw(`
+ SELECT *
+ FROM SSLVW_PUR_INQ_REQ
+ WHERE ROWNUM < 100
+ ORDER BY 1
+ `)
+
+ // Oracle raw query의 결과는 rows 배열에 들어있음
+ const rows = (result.rows || result) as Array<Record<string, unknown>>
+
+ console.log(`✅ [getSSLVWPurInqReqData] 조회 성공 - ${rows.length}건`)
+
+ // 데이터 타입 변환 (필요에 따라 조정)
+ const cleanedResult = rows.map((item) => {
+ const convertedItem: SSLVWPurInqReq = {}
+ for (const [key, value] of Object.entries(item)) {
+ if (value instanceof Date) {
+ convertedItem[key] = value
+ } else if (value === null) {
+ convertedItem[key] = null
+ } else {
+ convertedItem[key] = String(value)
+ }
+ }
+ return convertedItem
+ })
+
+ return {
+ success: true,
+ data: cleanedResult,
+ isUsingFallback: false
+ }
+ } catch (error) {
+ console.error('❌ [getSSLVWPurInqReqData] 오류:', error)
+ console.log('🔄 [getSSLVWPurInqReqData] 폴백 테스트 데이터 사용')
+ return {
+ success: true,
+ data: FALLBACK_TEST_DATA,
+ isUsingFallback: true
+ }
+ }
+}