diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-15 00:50:39 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-07-15 00:50:39 +0000 |
| commit | 15c3ae6536c264db0508e4fc4aaa59c3e6d1af30 (patch) | |
| tree | 8e2ad5e6a06999bfaaf00ab4ee30083a87050bad /lib/sedp/sync-form.ts | |
| parent | d5d27847a7eded9db59462fa744b76772bc9ce1d (diff) | |
(대표님) 기본계약 및 정기평가 작업사항, OCR 변경사항
Diffstat (limited to 'lib/sedp/sync-form.ts')
| -rw-r--r-- | lib/sedp/sync-form.ts | 12 |
1 files changed, 6 insertions, 6 deletions
diff --git a/lib/sedp/sync-form.ts b/lib/sedp/sync-form.ts index 0606f4a9..87de4645 100644 --- a/lib/sedp/sync-form.ts +++ b/lib/sedp/sync-form.ts @@ -891,12 +891,12 @@ async function getContractItemsByItemCodes(itemCodes: string[], projectId: numbe for (const item of itemRecords) { // itemCode가 null이 아닌 경우에만 처리 - if (item.itemCode) { + if (item.packageCode) { const matchedContractItems = contractItemRecords.filter(ci => ci.itemId === item.id); if (matchedContractItems.length > 0) { // 일치하는 모든 contractItem을 배열로 저장 const contractItemIds = matchedContractItems.map(ci => ci.id); - itemCodeToContractItemIds.set(item.itemCode, contractItemIds); + itemCodeToContractItemIds.set(item.packageCode, contractItemIds); } } } @@ -1062,17 +1062,17 @@ export async function saveFormMappingsAndMetas( await tx.delete(formMetas).where(eq(formMetas.projectId, projectId)); if (contractItemIdsWithForms.size) await tx.delete(forms).where(inArray(forms.contractItemId, [...contractItemIdsWithForms])); - const savedMappings = mappingsToSave.length ? await tx.insert(tagTypeClassFormMappings).values(mappingsToSave).returning({ id: tagTypeClassFormMappings.id, formCode: tagTypeClassFormMappings.formCode }) : []; + const savedMappings = mappingsToSave.length ? await tx.insert(tagTypeClassFormMappings).values(mappingsToSave).onConflictDoNothing().returning({ id: tagTypeClassFormMappings.id, formCode: tagTypeClassFormMappings.formCode }) : []; totalSaved += mappingsToSave.length; if (savedMappings.length) { const rows: any[] = []; savedMappings.forEach(m => (templateDataByFormCode.get(m.formCode) || []).forEach(t => rows.push({ formMappingId: m.id, tmplId: t.TMPL_ID, name: t.NAME, tmplType: t.TMPL_TYPE, sprLstSetup: t.SPR_LST_SETUP, grdLstSetup: t.GRD_LST_SETUP, sprItmLstSetup: t.SPR_ITM_LST_SETUP, description: `Template for form ${m.formCode}`, isActive: true, createdAt: new Date(), updatedAt: new Date() }))); - if (rows.length) { await tx.insert(templateItems).values(rows); totalSaved += rows.length; } + if (rows.length) { await tx.insert(templateItems).values(rows).onConflictDoNothing(); totalSaved += rows.length; } } - if (formMetasToSave.length) { await tx.insert(formMetas).values(formMetasToSave); totalSaved += formMetasToSave.length; } - if (formsToSave.length) { await tx.insert(forms).values(formsToSave); totalSaved += formsToSave.length; } + if (formMetasToSave.length) { await tx.insert(formMetas).values(formMetasToSave).onConflictDoNothing(); totalSaved += formMetasToSave.length; } + if (formsToSave.length) { await tx.insert(forms).values(formsToSave).onConflictDoNothing(); totalSaved += formsToSave.length; } }); return totalSaved; |
