Auto-load missing 8092 overview and plan data

This commit is contained in:
2026-06-09 11:20:57 +09:00
parent bc5d68e465
commit 20dcb839dd

View File

@@ -1167,11 +1167,45 @@
const data = await detailResponse.json();
const overviewData = await overviewResponse.json();
const budgetPlanData = await budgetPlanResponse.json();
const fetchFreshOverviewIfNeeded = async () => {
if (refresh || (overviewResponse.ok && Array.isArray(overviewData.overviews) && overviewData.overviews.length)) {
return Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
}
try {
const freshOverviewResponse = await fetch(
`/api/erp-bridge-overviews?page=const&projectCode=${encodeURIComponent(projectCode)}&projectName=${encodeURIComponent(projectName || '')}&refresh=1`,
{ cache: 'no-store' }
);
const freshOverviewData = await freshOverviewResponse.json();
if (freshOverviewResponse.ok) {
return Array.isArray(freshOverviewData.overviews) ? freshOverviewData.overviews : [];
}
} catch (error) {
}
return Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
};
const fetchFreshBudgetPlanIfNeeded = async () => {
if (refresh || (budgetPlanResponse.ok && budgetPlanData.plan)) {
return budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
}
try {
const freshBudgetPlanResponse = await fetch(
`/api/erp-budget-plan?page=const&projectCode=${encodeURIComponent(projectCode)}&projectName=${encodeURIComponent(projectName || '')}&refresh=1`,
{ cache: 'no-store' }
);
const freshBudgetPlanData = await freshBudgetPlanResponse.json();
if (freshBudgetPlanResponse.ok) {
return freshBudgetPlanData.plan || null;
}
} catch (error) {
}
return budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
};
if (!detailResponse.ok) {
if (!refresh && detailResponse.status === 404) {
state.bridgeOverviews = overviewResponse.ok ? (Array.isArray(overviewData.overviews) ? overviewData.overviews : []) : [];
state.budgetPlan = budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
state.bridgeOverviews = await fetchFreshOverviewIfNeeded();
state.budgetPlan = await fetchFreshBudgetPlanIfNeeded();
detailTitle.textContent = `${projectName || '-'} [${projectCode}]`;
detailMeta.textContent = 'DB 캐시에 계약정보가 없어 ERP에서 기본 계약정보를 가져오는 중입니다.';
try {
@@ -1216,8 +1250,8 @@
}
state.detail = data.detail || null;
state.bridgeOverviews = Array.isArray(overviewData.overviews) ? overviewData.overviews : [];
state.budgetPlan = budgetPlanResponse.ok ? (budgetPlanData.plan || null) : null;
state.bridgeOverviews = await fetchFreshOverviewIfNeeded();
state.budgetPlan = await fetchFreshBudgetPlanIfNeeded();
if (state.selectedRow && state.detail) {
state.selectedRow.businessCode = state.detail.businessCode || state.selectedRow.businessCode || '';
state.selectedRow.siteLocation = state.detail.siteLocation || state.selectedRow.siteLocation || '';