From 163850f8fff72411a64f533f412e762b8f36e78f Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Fri, 22 Aug 2025 04:49:31 +0000 Subject: (고건) 리스크 관리 페이지 내 알림 및 문구 수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lib/risk-management/service.ts | 42 +++++++++++----------- lib/risk-management/table/risks-dashboard.tsx | 6 ++-- .../table/risks-date-range-picker.tsx | 2 +- lib/risk-management/table/risks-mail-dialog.tsx | 15 ++++---- .../table/risks-table-toolbar-actions.tsx | 14 ++++---- lib/risk-management/table/risks-update-sheet.tsx | 12 +++---- lib/risk-management/table/user-combo-box.tsx | 2 +- 7 files changed, 46 insertions(+), 47 deletions(-) (limited to 'lib') diff --git a/lib/risk-management/service.ts b/lib/risk-management/service.ts index a0efb892..62b18060 100644 --- a/lib/risk-management/service.ts +++ b/lib/risk-management/service.ts @@ -249,7 +249,7 @@ async function sendRiskEmail( return { vendorList: selectRes }; }); if (vendorList.length === 0) { - throw new Error('존재하지 않는 협력업체에요. 다시 한 번 확인해주세요.'); + throw new Error('존재하지 않는 협력업체입니다. 다시 한 번 확인해주십시오.'); } const { vendorName, vendorCode, taxId } = vendorList[0]; const businessNumber = /^\d{10}$/.test(taxId) @@ -270,7 +270,7 @@ async function sendRiskEmail( })); }); if (!procurementManagerList || procurementManagerList.length === 0) { - throw new Error('해당하는 구매 담당자가 존재하지 않아요.'); + throw new Error('해당하는 구매 담당자가 존재하지 않습니다.'); } const procurementManager = procurementManagerList[0]; @@ -289,7 +289,7 @@ async function sendRiskEmail( })); }); if (!riskManagerList || riskManagerList.length === 0) { - throw new Error('해당하는 리스크 관리 담당자가 존재하지 않아요.'); + throw new Error('해당하는 리스크 관리 담당자가 존재하지 않습니다.'); } const riskManager = riskManagerList[0]; @@ -387,12 +387,12 @@ async function generateRiskEventsTemplate(): Promise { const exampleData = [ { - eventType: '리스크 항목을 입력하세요.', - vendorName: '협력업체명을 입력하세요.', - businessNumber: '사업자등록번호를 입력하세요.', - provider: '신용평가사를 입력하세요.', - content: '상세 내용을 입력하세요.', - occuredAt: '발생일자를 YYYY-MM-DD형식으로 입력하세요.' + eventType: '리스크 항목을 입력하십시오.', + vendorName: '협력업체명을 입력하십시오.', + businessNumber: '사업자등록번호를 입력하십시오.', + provider: '신용평가사를 입력하십시오.', + content: '상세 내용을 입력하십시오.', + occuredAt: '발생일자를 YYYY-MM-DD형식으로 입력하십시오.' }, ]; @@ -455,7 +455,7 @@ async function importRiskEventsExcel(file: File): Promise<{ const worksheet = workbook.getWorksheet(1); if (!worksheet) { - return { errorMessage: '워크시트를 찾을 수 없어요.' }; + return { errorMessage: '워크시트를 찾을 수 없습니다.' }; } const errors: string[] = []; const importDataList: { @@ -471,7 +471,7 @@ async function importRiskEventsExcel(file: File): Promise<{ const rows = worksheet.getRows(2, worksheet.rowCount - 1); if (!rows) { - return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않아요.' }; + return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않습니다.' }; } for (const [index, row] of rows.entries()) { @@ -513,20 +513,20 @@ async function importRiskEventsExcel(file: File): Promise<{ } if (!rowData.eventType || !rowData.vendorName || !rowData.businessNumber || !rowData.provider || !rowData.occuredAt) { - errors.push(`행 ${rowIndex}: 필수 필드(항목, 협력업체명, 사업자등록번호, 신용평가사, 발생일자)가 누락되었어요.`); + errors.push(`행 ${rowIndex}: 필수 필드(항목, 협력업체명, 사업자등록번호, 신용평가사, 발생일자)가 누락되었습니다.`); continue; } rowData.businessNumber = rowData.businessNumber.replace(/\D/g, ''); if (rowData.businessNumber.length !== 10) { - errors.push(`행 ${rowIndex}: 사업자등록번호는 숫자 10자리여야 해요.`); + errors.push(`행 ${rowIndex}: 사업자등록번호는 숫자 10자리여야 합니다.`); continue; } const datePattern = /^\d{4}-\d{2}-\d{2}$/; if (!datePattern.test(rowData.occuredAt)) { - errors.push(`행 ${rowIndex}: 발생일자는 YYYY-MM-DD 형식이어야 해요.`); + errors.push(`행 ${rowIndex}: 발생일자는 YYYY-MM-DD 형식이어야 합니다.`); continue; } @@ -537,7 +537,7 @@ async function importRiskEventsExcel(file: File): Promise<{ dateObj.getMonth() + 1 !== month || dateObj.getDate() !== day ) { - errors.push(`행 ${rowIndex}: 발생일자가 올바른 날짜가 아니에요.`); + errors.push(`행 ${rowIndex}: 발생일자가 올바른 날짜가 아닙니다.`); continue; } @@ -550,7 +550,7 @@ async function importRiskEventsExcel(file: File): Promise<{ }); if (vendorList.length === 0) { - errors.push(`행 ${rowIndex}: 협력업체로 등록되지 않은 사업자등록번호에요. 다시 한 번 확인해주세요.`); + errors.push(`행 ${rowIndex}: 협력업체로 등록되지 않은 사업자등록번호입니다. 다시 한 번 확인해주십시오.`); continue; } @@ -559,7 +559,7 @@ async function importRiskEventsExcel(file: File): Promise<{ importDataList.push(rowData); } catch (error) { - errors.push(`행 ${rowIndex}: 데이터 처리 중 오류가 발생했어요 - ${error}`); + errors.push(`행 ${rowIndex}: 데이터 처리 중 오류가 발생했습니다 - ${error}`); } } @@ -589,12 +589,12 @@ async function importRiskEventsExcel(file: File): Promise<{ return { errorFile, - errorMessage: `${errors.length}개의 오류가 발견되었어요. 오류 파일을 확인하세요.` + errorMessage: `${errors.length}개의 오류가 발견되었습니다. 오류 파일을 확인하십시오.` }; } if (importDataList.length === 0) { - return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않아요. 파일을 다시 한 번 확인해주세요.' }; + return { errorMessage: '새로 추가할 리스크 데이터가 존재하지 않습니다. 파일을 다시 한 번 확인해주십시오.' }; } const currentUserId = await getCurrentUserId(); @@ -614,10 +614,10 @@ async function importRiskEventsExcel(file: File): Promise<{ }); } - return { successMessage: `Excel 파일이 성공적으로 업로드되었어요. ${importDataList.length}개의 리스크 이벤트가 추가되었어요.` }; + return { successMessage: `Excel 파일이 성공적으로 업로드되었습니다. ${importDataList.length}개의 리스크 이벤트가 추가되었습니다.` }; } catch (error) { console.error('Error in Importing Regular Evaluation Criteria from Excel:', error); - return { errorMessage: 'Excel 파일 처리 중 오류가 발생했어요.' }; + return { errorMessage: 'Excel 파일 처리 중 오류가 발생했습니다.' }; } } diff --git a/lib/risk-management/table/risks-dashboard.tsx b/lib/risk-management/table/risks-dashboard.tsx index 1f26d48a..f0ac3753 100644 --- a/lib/risk-management/table/risks-dashboard.tsx +++ b/lib/risk-management/table/risks-dashboard.tsx @@ -99,7 +99,7 @@ function RisksDashboard(props: RisksDashboardProps) { flags: [], page: 1, perPage: 10, - sort: [{ id: 'createdAt', desc: true }], + sort: [{ id: 'occuredAt', desc: true }], }; const { count } = await getRisksViewCount(searchParams as any); @@ -114,7 +114,7 @@ function RisksDashboard(props: RisksDashboardProps) { setCounts(newCounts); } catch (error) { - console.error('리스크 데이터 개수 조회에 실패했어요:', error); + console.error('리스크 데이터 개수 조회에 실패했습니다:', error); const resetCounts: CountData = {}; targetValues.forEach(value => { resetCounts[value] = 0; @@ -196,7 +196,7 @@ function RisksDashboard(props: RisksDashboardProps) { {chartData.filter(item => item.count > 0).length === 0 ? (
- 주요 리스크가 존재하지 않아요. + 주요 리스크가 존재하지 않습니다.
) : ( diff --git a/lib/risk-management/table/risks-date-range-picker.tsx b/lib/risk-management/table/risks-date-range-picker.tsx index 96acff6c..8cb192a9 100644 --- a/lib/risk-management/table/risks-date-range-picker.tsx +++ b/lib/risk-management/table/risks-date-range-picker.tsx @@ -34,7 +34,7 @@ interface RisksDateRangePickerProps extends ComponentPropsWithoutRef file.size <= 10485760, { - message: '파일 크기는 10MB를 초과할 수 없어요.', + message: '파일 크기는 10MB를 초과할 수 없습니다.', }) .optional(), }); @@ -225,7 +224,7 @@ function RisksMailDialog(props: RisksMailDialogProps) { startTransition(async () => { try { if (!selectedVendorId) { - throw Error('선택된 협력업체가 존재하지 않아요.'); + throw Error('선택된 협력업체가 존재하지 않습니다.'); } const newRiskEventData = { @@ -343,7 +342,7 @@ function RisksMailDialog(props: RisksMailDialogProps) { 리스크 정보 - 메일로 전송할 리스크 정보를 선택하세요. + 메일로 전송할 리스크 정보를 선택하십시오. {Object.entries( @@ -449,7 +448,7 @@ function RisksMailDialog(props: RisksMailDialogProps) {