diff options
| author | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-05-26 04:25:47 +0000 |
|---|---|---|
| committer | dujinkim <dujin.kim@dtsolution.co.kr> | 2025-05-26 04:25:47 +0000 |
| commit | 1c1c1019b6af72771358d387a2ae70ca965cd9f9 (patch) | |
| tree | 6b1204684e7b52cf7d40de37b9c58decc4fac38b /lib/items/service.ts | |
| parent | 0547ab2fe1701d84753d0e078bba718a79b07a0c (diff) | |
(김준회) 아이템 리스트를 자재그룹으로 변경하고 PLM 인터페이스 처리
Diffstat (limited to 'lib/items/service.ts')
| -rw-r--r-- | lib/items/service.ts | 55 |
1 files changed, 48 insertions, 7 deletions
diff --git a/lib/items/service.ts b/lib/items/service.ts index 226742ca..99ef79ef 100644 --- a/lib/items/service.ts +++ b/lib/items/service.ts @@ -45,9 +45,18 @@ export async function getItems(input: GetItemsSchema) { let globalWhere if (input.search) { const s = `%${input.search}%` - globalWhere = or(ilike(items.itemCode, s), ilike(items.itemName, s) - , ilike(items.description, s) - ) + globalWhere = or( + ilike(items.itemLevel, s), + ilike(items.itemCode, s), + ilike(items.itemName, s), + ilike(items.description, s), + ilike(items.parentItemCode, s), + ilike(items.unitOfMeasure, s), + ilike(items.steelType, s), + ilike(items.gradeMaterial, s), + ilike(items.baseUnitOfMeasure, s), + ilike(items.changeDate, s) + ) // 필요시 여러 칼럼 OR조건 (status, priority, etc) } @@ -87,6 +96,7 @@ export async function getItems(input: GetItemsSchema) { return { data, pageCount }; } catch (err) { // 에러 발생 시 디폴트 + console.error(err) return { data: [], pageCount: 0 }; } }, @@ -106,6 +116,14 @@ export interface ItemCreateData { itemCode: string itemName: string description: string | null + parentItemCode?: string | null + itemLevel?: number | null + deleteFlag?: string | null + unitOfMeasure?: string | null + steelType?: string | null + gradeMaterial?: string | null + changeDate?: string | null + baseUnitOfMeasure?: string | null } @@ -142,6 +160,14 @@ export async function createItem(input: ItemCreateData) { txResult = await updateItem(tx, existingItem.id, { itemName: input.itemName, description: input.description, + parentItemCode: input.parentItemCode, + itemLevel: input.itemLevel, + deleteFlag: input.deleteFlag, + unitOfMeasure: input.unitOfMeasure, + steelType: input.steelType, + gradeMaterial: input.gradeMaterial, + changeDate: input.changeDate, + baseUnitOfMeasure: input.baseUnitOfMeasure, }) } else { // 새 아이템 생성 @@ -149,6 +175,14 @@ export async function createItem(input: ItemCreateData) { itemCode: input.itemCode, itemName: input.itemName, description: input.description, + parentItemCode: input.parentItemCode, + itemLevel: input.itemLevel, + deleteFlag: input.deleteFlag, + unitOfMeasure: input.unitOfMeasure, + steelType: input.steelType, + gradeMaterial: input.gradeMaterial, + changeDate: input.changeDate, + baseUnitOfMeasure: input.baseUnitOfMeasure, }) } @@ -193,13 +227,20 @@ export async function createItem(input: ItemCreateData) { export async function modifyItem(input: UpdateItemSchema & { id: number }) { unstable_noStore(); try { - const data = await db.transaction(async (tx) => { - const [res] = await updateItem(tx, input.id, { + await db.transaction(async (tx) => { + await updateItem(tx, input.id, { itemCode: input.itemCode, itemName: input.itemName, description: input.description, + parentItemCode: input.parentItemCode, + itemLevel: input.itemLevel, + deleteFlag: input.deleteFlag, + unitOfMeasure: input.unitOfMeasure, + steelType: input.steelType, + gradeMaterial: input.gradeMaterial, + changeDate: input.changeDate, + baseUnitOfMeasure: input.baseUnitOfMeasure, }); - return res; }); revalidateTag("items"); @@ -250,6 +291,6 @@ export async function getAllItems(): Promise<Item[]> { try { return await findAllItems(); } catch (err) { - throw new Error("Failed to get roles"); + throw new Error("Failed to get items"); } } |
