Compare commits
No commits in common. "be0e63e57787be92497ad5f68004ec532af5e294" and "c06b4ff9eba492a59da4fd81c65c2817a04c5045" have entirely different histories.
be0e63e577
...
c06b4ff9eb
|
|
@ -191,6 +191,3 @@ mcp-task-queue/
|
||||||
.cursor/rules/multi-agent-tester.mdc
|
.cursor/rules/multi-agent-tester.mdc
|
||||||
.cursor/rules/multi-agent-reviewer.mdc
|
.cursor/rules/multi-agent-reviewer.mdc
|
||||||
.cursor/rules/multi-agent-knowledge.mdc
|
.cursor/rules/multi-agent-knowledge.mdc
|
||||||
|
|
||||||
# 파이프라인 회고록 (자동 생성)
|
|
||||||
docs/retrospectives/
|
|
||||||
|
|
|
||||||
|
|
@ -97,23 +97,10 @@ export interface ExcelUploadModalProps {
|
||||||
interface ColumnMapping {
|
interface ColumnMapping {
|
||||||
excelColumn: string;
|
excelColumn: string;
|
||||||
systemColumn: string | null;
|
systemColumn: string | null;
|
||||||
|
// 중복 체크 설정 (해당 컬럼을 중복 체크 키로 사용할지)
|
||||||
checkDuplicate?: boolean;
|
checkDuplicate?: boolean;
|
||||||
}
|
}
|
||||||
|
|
||||||
function flattenCategoryValues(
|
|
||||||
values: Array<{ valueCode: string; valueLabel: string; children?: any[] }>
|
|
||||||
): Array<{ valueCode: string; valueLabel: string }> {
|
|
||||||
const result: Array<{ valueCode: string; valueLabel: string }> = [];
|
|
||||||
const traverse = (items: any[]) => {
|
|
||||||
for (const item of items) {
|
|
||||||
result.push({ valueCode: item.valueCode, valueLabel: item.valueLabel });
|
|
||||||
if (item.children?.length > 0) traverse(item.children);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
traverse(values);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const ExcelUploadModal: React.FC<ExcelUploadModalProps> = ({
|
export const ExcelUploadModal: React.FC<ExcelUploadModalProps> = ({
|
||||||
open,
|
open,
|
||||||
onOpenChange,
|
onOpenChange,
|
||||||
|
|
@ -694,8 +681,12 @@ export const ExcelUploadModal: React.FC<ExcelUploadModalProps> = ({
|
||||||
const valuesResponse = await getCategoryValues(targetTableName, catCol.systemCol);
|
const valuesResponse = await getCategoryValues(targetTableName, catCol.systemCol);
|
||||||
if (!valuesResponse.success || !valuesResponse.data) continue;
|
if (!valuesResponse.success || !valuesResponse.data) continue;
|
||||||
|
|
||||||
const validValues = flattenCategoryValues(valuesResponse.data as any[]);
|
const validValues = valuesResponse.data as Array<{
|
||||||
|
valueCode: string;
|
||||||
|
valueLabel: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
|
// 유효한 코드와 라벨 Set 생성
|
||||||
const validCodes = new Set(validValues.map((v) => v.valueCode));
|
const validCodes = new Set(validValues.map((v) => v.valueCode));
|
||||||
const validLabels = new Set(validValues.map((v) => v.valueLabel));
|
const validLabels = new Set(validValues.map((v) => v.valueLabel));
|
||||||
const validLabelsLower = new Set(validValues.map((v) => v.valueLabel.toLowerCase()));
|
const validLabelsLower = new Set(validValues.map((v) => v.valueLabel.toLowerCase()));
|
||||||
|
|
|
||||||
|
|
@ -51,20 +51,6 @@ interface ColumnMapping {
|
||||||
targetColumn: string | null;
|
targetColumn: string | null;
|
||||||
}
|
}
|
||||||
|
|
||||||
function flattenCategoryValues(
|
|
||||||
values: Array<{ valueCode: string; valueLabel: string; children?: any[] }>
|
|
||||||
): Array<{ valueCode: string; valueLabel: string }> {
|
|
||||||
const result: Array<{ valueCode: string; valueLabel: string }> = [];
|
|
||||||
const traverse = (items: any[]) => {
|
|
||||||
for (const item of items) {
|
|
||||||
result.push({ valueCode: item.valueCode, valueLabel: item.valueLabel });
|
|
||||||
if (item.children?.length > 0) traverse(item.children);
|
|
||||||
}
|
|
||||||
};
|
|
||||||
traverse(values);
|
|
||||||
return result;
|
|
||||||
}
|
|
||||||
|
|
||||||
export const MultiTableExcelUploadModal: React.FC<MultiTableExcelUploadModalProps> = ({
|
export const MultiTableExcelUploadModal: React.FC<MultiTableExcelUploadModalProps> = ({
|
||||||
open,
|
open,
|
||||||
onOpenChange,
|
onOpenChange,
|
||||||
|
|
@ -370,7 +356,10 @@ export const MultiTableExcelUploadModal: React.FC<MultiTableExcelUploadModalProp
|
||||||
const valuesResponse = await getCategoryValues(level.tableName, catColName);
|
const valuesResponse = await getCategoryValues(level.tableName, catColName);
|
||||||
if (!valuesResponse.success || !valuesResponse.data) continue;
|
if (!valuesResponse.success || !valuesResponse.data) continue;
|
||||||
|
|
||||||
const validValues = flattenCategoryValues(valuesResponse.data as any[]);
|
const validValues = valuesResponse.data as Array<{
|
||||||
|
valueCode: string;
|
||||||
|
valueLabel: string;
|
||||||
|
}>;
|
||||||
|
|
||||||
const validCodes = new Set(validValues.map((v) => v.valueCode));
|
const validCodes = new Set(validValues.map((v) => v.valueCode));
|
||||||
const validLabels = new Set(validValues.map((v) => v.valueLabel));
|
const validLabels = new Set(validValues.map((v) => v.valueLabel));
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue