summaryrefslogtreecommitdiff
path: root/lib/tags-plant
diff options
context:
space:
mode:
Diffstat (limited to 'lib/tags-plant')
-rw-r--r--lib/tags-plant/service.ts17
-rw-r--r--lib/tags-plant/table/add-tag-dialog.tsx2
2 files changed, 16 insertions, 3 deletions
diff --git a/lib/tags-plant/service.ts b/lib/tags-plant/service.ts
index 02bd33be..9e9d9ebf 100644
--- a/lib/tags-plant/service.ts
+++ b/lib/tags-plant/service.ts
@@ -15,6 +15,7 @@ import { contractItems, contracts } from "@/db/schema/contract";
import { getCodeListsByID } from "../sedp/sync-object-class";
import { projects, vendors } from "@/db/schema";
import { randomBytes } from 'crypto';
+import { getSEDPToken } from "../sedp/sedp-token";
// 폼 결과를 위한 인터페이스 정의
interface CreatedOrExistingForm {
@@ -105,12 +106,15 @@ export async function createTag(
projectCode: string,
packageCode: string,
) {
+
+
if (!projectCode) {
return { error: "No selectedPackageId provided" }
}
// Validate formData
const validated = createTagSchema.safeParse(formData)
+
if (!validated.success) {
return { error: validated.error.flatten().formErrors.join(", ") }
}
@@ -121,6 +125,7 @@ export async function createTag(
try {
// 하나의 트랜잭션에서 모든 작업 수행
return await db.transaction(async (tx) => {
+
const project = await db.query.projects.findFirst({
where: eq(projects.code, projectCode),
columns: {
@@ -130,6 +135,7 @@ export async function createTag(
const projectId = project.id
+
// 2) 해당 계약 내에서 같은 tagNo를 가진 태그가 있는지 확인
const duplicateCheck = await tx
.select({ count: sql<number>`count(*)` })
@@ -153,10 +159,12 @@ export async function createTag(
projectId, // projectId 전달
validated.data.class
)
+
// ep가 "IMEP"인 것만 필터링
const formMappings = allFormMappings?.filter(mapping => mapping.ep === "IMEP") || []
+ console.log(formMappings,"formMappings")
// 폼 매핑이 없으면 로그만 남기고 진행
if (!formMappings || formMappings.length === 0) {
@@ -244,7 +252,6 @@ export async function createTag(
.values(insertValues)
.returning({ id: formsPlant.id, formCode: formsPlant.formCode, formName: formsPlant.formName })
- console.log("insertResult:", insertResult)
formId = insertResult[0].id
createdOrExistingForms.push({
id: formId,
@@ -282,7 +289,7 @@ export async function createTag(
for (const form of createdOrExistingForms) {
try {
// 기존 formEntry 가져오기
- const existingEntry = await tx.query.formEntries.findFirst({
+ const existingEntry = await tx.query.formEntriesPlant.findFirst({
where: and(
eq(formEntriesPlant.formCode, form.formCode),
eq(formEntriesPlant.projectCode, projectCode),
@@ -348,6 +355,7 @@ export async function createTag(
console.log(`[CREATE TAG] Created new formEntry with tag ${validated.data.tagNo} and tagIdx ${generatedTagIdx} for form ${form.formCode}`);
}
} catch (formEntryError) {
+ console.log(formEntryError)
console.error(`[CREATE TAG] Error updating formEntry for form ${form.formCode}:`, formEntryError);
// 개별 formEntry 에러는 로그만 남기고 전체 트랜잭션은 계속 진행
}
@@ -1612,6 +1620,9 @@ export async function getEngineeringForms(
projectCode: string,
packageCode: string
): Promise<FormInfo[]> {
+ console.log("eng 폼 조회 시작")
+ console.log(projectCode,packageCode)
+
try {
// 1. DB에서 eng=true인 폼 조회
const existingForms = await db
@@ -1628,6 +1639,8 @@ export async function getEngineeringForms(
)
)
+ console.log("existingForms",existingForms)
+
// DB에 데이터가 있으면 반환
if (existingForms.length > 0) {
return existingForms
diff --git a/lib/tags-plant/table/add-tag-dialog.tsx b/lib/tags-plant/table/add-tag-dialog.tsx
index 41731f63..de5d2bf8 100644
--- a/lib/tags-plant/table/add-tag-dialog.tsx
+++ b/lib/tags-plant/table/add-tag-dialog.tsx
@@ -345,7 +345,7 @@ export function AddTagDialog({ projectCode, packageCode }: AddTagDialogProps) {
try {
const res = await createTag(tagData, projectCode, packageCode);
if ("error" in res) {
- console.log(res.error)
+ console.log(res)
failedTags.push({ tag: row.tagNo, error: res.error });
} else {
successfulTags.push(row.tagNo);