From 2ded9dcc3968b7fff3e29a128d327df6b77923ab Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Mon, 7 Jul 2025 08:59:50 +0000 Subject: (김준회) 벤더 상세페이지 - 신용평가정보 조회 (nonsap oracle db) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../evcp/(evcp)/vendors/[id]/info/credit/page.tsx | 440 +++++++++++++++++++++ app/[lng]/evcp/(evcp)/vendors/[id]/info/layout.tsx | 4 + 2 files changed, 444 insertions(+) create mode 100644 app/[lng]/evcp/(evcp)/vendors/[id]/info/credit/page.tsx (limited to 'app') diff --git a/app/[lng]/evcp/(evcp)/vendors/[id]/info/credit/page.tsx b/app/[lng]/evcp/(evcp)/vendors/[id]/info/credit/page.tsx new file mode 100644 index 00000000..e90969b5 --- /dev/null +++ b/app/[lng]/evcp/(evcp)/vendors/[id]/info/credit/page.tsx @@ -0,0 +1,440 @@ +'use client'; + +import { useState, useEffect } from 'react'; +import { useParams } from 'next/navigation'; +import { getCreditInfo } from '@/lib/oracle-db/nonsap/services/creditService'; +import { + Table, + TableBody, + TableCell, + TableHead, + TableHeader, + TableRow, +} from '@/components/ui/table'; + +// 신용평가사 옵션 +const creditServices = [ + { code: 'I', name: '이크레더블' }, + { code: 'K', name: '한국기업데이터' }, + { code: 'N', name: '나이스디앤비' }, + { code: 'E', name: 'NICE신용평가사' } +]; + +interface CreditData { + // 기본 정보 + RESNO: string; + EENTNM: string; + OPEDT: string; + REPR_NM: string; + TYSCALE: string; + RELCMP: string; + ADR: string; + LISTYN: string; + GOODSNM: string; + TELNO: string; + FAXNO: string; + FSTRDRT: string; + + // 매출순위 + MO_1: string; + MO_4: string; + MO_2: string; + MO_5: string; + MO_3: string; + MO_6: string; + + // 매입순위 + MI_1: string; + MI_4: string; + MI_2: string; + MI_5: string; + MI_3: string; + MI_6: string; + + // 지분관계 + GIBUN_RL_1: string; + LSH_STK_RATE1: string; + GIBUN_RL_2: string; + LSH_STK_RATE2: string; + GIBUN_RL_3: string; + LSH_STK_RATE3: string; + + // 기타 정보 + HAPGYE: string; + NOTICE: string; + NOTICE_DT: string; + HPGBNCR_TY: string; + FCLOSDT: string; + LASTGRD: string; + DECISION: string; + FRISKRV: string; + EXPIRE_GB: string; + FWATCHD: string; + SUVDT: string; + ESETDTT: string; + + // 재무년월 + bs_dt0: string; + bs_dt1: string; + bs_dt2: string; + + // 재무현황 + bs59_0: string; // 총자산 + bs59_1: string; + bs59_2: string; + bs91_0: string; // 부채총계 + bs91_1: string; + bs91_2: string; + bs113_0: string; // 자본총계 + bs113_1: string; + bs113_2: string; + pl01_0: string; // 매출액 + pl01_1: string; + pl01_2: string; + pl27_0: string; // 영업이익 + pl27_1: string; + pl27_2: string; + pl71_0: string; // 당기순이익 + pl71_1: string; + pl71_2: string; + + // 재무비율 + TR0053: string; // 부채비율 + TR0052: string; + TR0051: string; + TR0513: string; // 차입금의존도 + TR0512: string; + TR0511: string; + TR0523: string; // 영업이익율 + TR0522: string; + TR0521: string; + TR0103: string; // 매출순이익율 + TR0102: string; + TR0101: string; + TR0223: string; // 매출액증가율 + TR0222: string; + TR0221: string; + TR0013: string; // 유동비율 + TR0012: string; + TR0011: string; +} + +export default function CreditInfoPage() { + const params = useParams(); + const vendorId = params?.id as string; + + const [selectedCreditService, setSelectedCreditService] = useState('I'); + const [creditData, setCreditData] = useState(null); + const [loading, setLoading] = useState(false); + const [error, setError] = useState(null); + + // 데이터 로딩 함수 + const loadCreditData = async (reno: string, creditGb: string) => { + setLoading(true); + setError(null); + + try { + const result = await getCreditInfo(reno, creditGb); + if (result && result.length > 0) { + setCreditData(result[0]); + } else { + setCreditData(null); + } + } catch (err) { + setError('데이터를 불러오는 중 오류가 발생했습니다.'); + console.error(err); + } finally { + setLoading(false); + } + }; + + // 신용평가사 선택 변경 + const handleCreditServiceChange = (code: string) => { + setSelectedCreditService(code); + if (vendorId) { + loadCreditData(vendorId, code); + } + }; + + // 초기 데이터 로딩 + useEffect(() => { + if (vendorId) { + loadCreditData(vendorId, selectedCreditService); + } + }, [vendorId]); + + return ( +
+
+

협력업체 신용정보

+ + {/* 신용평가사 선택 */} +
+ 평가업체의 기본 정보를 확인 및 관리하는 화면입니다. +
+ {creditServices.map((service) => ( + + ))} +
+
+
+ + {loading && ( +
+
+

데이터를 불러오는 중...

+
+ )} + + {error && ( +
+

{error}

+
+ )} + + {creditData && ( +
+ {/* 매출순위, 매입순위, 지분관계 */} +
+ {/* 매출순위 */} +
+
매출순위
+ + + + 1 + {creditData.MO_1} + {creditData.MO_4} % + + + 2 + {creditData.MO_2} + {creditData.MO_5} % + + + 3 + {creditData.MO_3} + {creditData.MO_6} % + + +
+
+ + {/* 매입순위 */} +
+
매입순위
+ + + + 1 + {creditData.MI_1} + {creditData.MI_4} % + + + 2 + {creditData.MI_2} + {creditData.MI_5} % + + + 3 + {creditData.MI_3} + {creditData.MI_6} % + + +
+
+ + {/* 지분관계 */} +
+
지분관계
+ + + + 1 + {creditData.GIBUN_RL_1} + {creditData.LSH_STK_RATE1} % + + + 2 + {creditData.GIBUN_RL_2} + {creditData.LSH_STK_RATE2} % + + + 3 + {creditData.GIBUN_RL_3} + {creditData.LSH_STK_RATE3} % + + +
+
+
+ + {/* 기본 정보 */} +
+ {/* 섹션1: 종업원 수, 신용등급, WATCH 등급 */} +
+ + + + 종업원 수 + {creditData.HAPGYE} + + + 신용등급 + {creditData.LASTGRD} + + + WATCH등급 + {creditData.FWATCHD} + + +
+
+ + {/* 섹션2: 기업회생/파산정보, 현금흐름등급, 평가기준일 */} +
+ + + + 기업회생/파산정보 + {creditData.NOTICE || '없음'} + + + 현금흐름등급 + {creditData.DECISION} + + + 평가기준일 + {creditData.SUVDT} + + +
+
+ + {/* 섹션3: 휴/폐업 여부, RISK등급, 결산기준일 */} +
+ + + + 휴/폐업 여부 + {creditData.HPGBNCR_TY || '정상'} + + + RISK등급 + {creditData.FRISKRV} + + + 결산기준일 + {creditData.ESETDTT} + + +
+
+
+ + {/* 재무현황 */} +
+
재무현황(3개년)
+ + + + 구분 + 총자산
(단위:백만원)
+ 부채총계
(단위:백만원)
+ 자본총계
(단위:백만원)
+ 매출액
(단위:백만원)
+ 영업이익
(단위:백만원)
+ 당기순이익
(단위:백만원)
+
+
+ + + {creditData.bs_dt0} + {creditData.bs59_0} + {creditData.bs91_0} + {creditData.bs113_0} + {creditData.pl01_0} + {creditData.pl27_0} + {creditData.pl71_0} + + + {creditData.bs_dt1} + {creditData.bs59_1} + {creditData.bs91_1} + {creditData.bs113_1} + {creditData.pl01_1} + {creditData.pl27_1} + {creditData.pl71_1} + + + {creditData.bs_dt2} + {creditData.bs59_2} + {creditData.bs91_2} + {creditData.bs113_2} + {creditData.pl01_2} + {creditData.pl27_2} + {creditData.pl71_2} + + +
+
+ + {/* 재무비율 */} +
+
재무비율(3개년)
+ + + + 구분 + 부채비율 + 차입금의존도 + 영업이익율 + 순이익율 + 전년대비 매출액 증가율 + 유동비율 + + + + + {creditData.bs_dt0} + {creditData.TR0053} % + {creditData.TR0513} % + {creditData.TR0523} % + {creditData.TR0103} % + {creditData.TR0223} % + {creditData.TR0013} % + + + {creditData.bs_dt1} + {creditData.TR0052} % + {creditData.TR0512} % + {creditData.TR0522} % + {creditData.TR0102} % + {creditData.TR0222} % + {creditData.TR0012} % + + + {creditData.bs_dt2} + {creditData.TR0051} % + {creditData.TR0511} % + {creditData.TR0521} % + {creditData.TR0101} % + {creditData.TR0221} % + {creditData.TR0011} % + + +
+
+
+ )} +
+ ); +} diff --git a/app/[lng]/evcp/(evcp)/vendors/[id]/info/layout.tsx b/app/[lng]/evcp/(evcp)/vendors/[id]/info/layout.tsx index 7826a7c0..50e2723e 100644 --- a/app/[lng]/evcp/(evcp)/vendors/[id]/info/layout.tsx +++ b/app/[lng]/evcp/(evcp)/vendors/[id]/info/layout.tsx @@ -38,6 +38,10 @@ export default async function SettingsLayout({ title: "기본정보", href: `/${lng}/evcp/vendors/${id}/info/basic`, }, + { + title: "신용평가", + href: `/${lng}/evcp/vendors/${id}/info/credit`, + }, { title: "공급품목(패키지)", href: `/${lng}/evcp/vendors/${id}/info/items`, -- cgit v1.2.3