From 2e92d5f83ae5f0f39090552b46c519982e9279c9 Mon Sep 17 00:00:00 2001 From: joonhoekim <26rote@gmail.com> Date: Mon, 27 Oct 2025 12:31:52 +0900 Subject: (김준회) SWP 컬럼조정 및 그에 따른 로직 변경, 결재로그 오류수정 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../table/approval-log-table-column.tsx | 21 ++++++++-- lib/swp/actions.ts | 3 ++ lib/swp/table/swp-revision-list-dialog.tsx | 2 +- lib/swp/table/swp-table-columns.tsx | 46 ++++++++-------------- 4 files changed, 38 insertions(+), 34 deletions(-) (limited to 'lib') diff --git a/lib/approval-log/table/approval-log-table-column.tsx b/lib/approval-log/table/approval-log-table-column.tsx index 8b466c69..a77ed0d3 100644 --- a/lib/approval-log/table/approval-log-table-column.tsx +++ b/lib/approval-log/table/approval-log-table-column.tsx @@ -8,7 +8,6 @@ import { Checkbox } from "@/components/ui/checkbox" import { DataTableColumnHeaderSimple } from "@/components/data-table/data-table-column-simple-header" import { type ApprovalLog } from "../service" import { formatDate } from "@/lib/utils" -import { getApprovalStatusText } from "@/lib/knox-api/approval/approval" import { MoreHorizontal, Eye } from "lucide-react" import { DropdownMenu, @@ -88,7 +87,23 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef { const status = row.getValue("status") as string; - const statusText = getApprovalStatusText(status); + + // 클라이언트 측에서 상태 텍스트 변환 + const getStatusText = (status: string) => { + const statusMap: Record = { + '-3': '암호화실패', + '-2': '암호화중', + '-1': '예약상신', + '0': '보류', + '1': '진행중', + '2': '완결', + '3': '반려', + '4': '상신취소', + '5': '전결', + '6': '후완결' + }; + return statusMap[status] || '알 수 없음'; + }; const getStatusVariant = (status: string) => { switch (status) { @@ -105,7 +120,7 @@ export function getColumns({ setRowAction }: GetColumnsProps): ColumnDef - {statusText} + {getStatusText(status)} ) diff --git a/lib/swp/actions.ts b/lib/swp/actions.ts index f58793e2..1faa69db 100644 --- a/lib/swp/actions.ts +++ b/lib/swp/actions.ts @@ -39,6 +39,7 @@ export interface SwpDocumentWithStats { CPY_NM: string | null; LTST_REV_NO: string | null; STAGE: string | null; + LTST_ACTV_STAT: string | null; sync_status: "synced" | "pending" | "error"; last_synced_at: Date; revision_count: number; @@ -107,6 +108,7 @@ export async function fetchSwpDocuments(params: SwpTableParams) { CPY_NM: swpDocuments.CPY_NM, LTST_REV_NO: swpDocuments.LTST_REV_NO, STAGE: swpDocuments.STAGE, + LTST_ACTV_STAT: swpDocuments.LTST_ACTV_STAT, sync_status: swpDocuments.sync_status, last_synced_at: swpDocuments.last_synced_at, revision_count: sql`COUNT(DISTINCT ${swpDocumentRevisions.id})::int`, @@ -126,6 +128,7 @@ export async function fetchSwpDocuments(params: SwpTableParams) { swpDocuments.CPY_NM, swpDocuments.LTST_REV_NO, swpDocuments.STAGE, + swpDocuments.LTST_ACTV_STAT, swpDocuments.sync_status, swpDocuments.last_synced_at ) diff --git a/lib/swp/table/swp-revision-list-dialog.tsx b/lib/swp/table/swp-revision-list-dialog.tsx index 74402bd9..8924db81 100644 --- a/lib/swp/table/swp-revision-list-dialog.tsx +++ b/lib/swp/table/swp-revision-list-dialog.tsx @@ -86,7 +86,7 @@ export function SwpRevisionListDialog({ )}
- 최신 리비전: + 마지막 리비전 넘버:
{document.LTST_REV_NO || "-"}
diff --git a/lib/swp/table/swp-table-columns.tsx b/lib/swp/table/swp-table-columns.tsx index 573acf1b..9954ab73 100644 --- a/lib/swp/table/swp-table-columns.tsx +++ b/lib/swp/table/swp-table-columns.tsx @@ -40,7 +40,7 @@ export const swpDocumentColumns: ColumnDef[] = [ accessorKey: "DOC_TITLE", header: "문서제목", cell: ({ row }) => ( -
+
{row.original.DOC_TITLE}
), @@ -53,7 +53,7 @@ export const swpDocumentColumns: ColumnDef[] = [
{row.original.PROJ_NO}
{row.original.PROJ_NM && ( -
+
{row.original.PROJ_NM}
)} @@ -106,7 +106,7 @@ export const swpDocumentColumns: ColumnDef[] = [ }, { accessorKey: "LTST_REV_NO", - header: "최신 REV", + header: "마지막 REV NO", cell: ({ row }) => row.original.LTST_REV_NO || "-", size: 80, }, @@ -123,22 +123,26 @@ export const swpDocumentColumns: ColumnDef[] = [ size: 100, }, { - accessorKey: "sync_status", - header: "상태", + accessorKey: "LTST_ACTV_STAT", + header: "상태 (최신 액티비티)", cell: ({ row }) => { - const status = row.original.sync_status; - const color = - status === "synced" ? "bg-green-100 text-green-800" : - status === "pending" ? "bg-yellow-100 text-yellow-800" : - "bg-red-100 text-red-800"; - + const status = row.original.LTST_ACTV_STAT; + if (!status) return "-"; + + // 상태에 따른 색상 설정 (필요에 따라 조정 가능) + const color = + status === "Complete" ? "bg-green-100 text-green-800" : + status === "In Progress" ? "bg-blue-100 text-blue-800" : + status === "Pending" ? "bg-yellow-100 text-yellow-800" : + "bg-gray-100 text-gray-800"; + return ( {status} ); }, - size: 80, + size: 100, }, { accessorKey: "last_synced_at", @@ -249,24 +253,6 @@ export const swpRevisionColumns: ColumnDef[] = [ ), size: 100, }, - { - accessorKey: "sync_status", - header: "상태", - cell: ({ row }) => { - const status = row.original.sync_status; - const color = - status === "synced" ? "bg-green-100 text-green-800" : - status === "pending" ? "bg-yellow-100 text-yellow-800" : - "bg-red-100 text-red-800"; - - return ( - - {status} - - ); - }, - size: 80, - }, { accessorKey: "last_synced_at", header: "동기화", -- cgit v1.2.3