summaryrefslogtreecommitdiff
path: root/lib/forms
diff options
context:
space:
mode:
Diffstat (limited to 'lib/forms')
-rw-r--r--lib/forms/services.ts38
1 files changed, 20 insertions, 18 deletions
diff --git a/lib/forms/services.ts b/lib/forms/services.ts
index 021bb767..0558e83f 100644
--- a/lib/forms/services.ts
+++ b/lib/forms/services.ts
@@ -27,6 +27,7 @@ import { getErrorMessage } from "../handle-error";
import { DataTableColumnJSON } from "@/components/form-data/form-data-table-columns";
import { contractItems, contracts, items, projects } from "@/db/schema";
import { getSEDPToken } from "../sedp/sedp-token";
+import { decryptWithServerAction } from "@/components/drm/drmUtils";
export type FormInfo = InferSelectModel<typeof forms>;
@@ -47,9 +48,9 @@ export async function getFormsByContractItemId(
try {
// return unstable_cache(
// async () => {
- console.log(
- `[Forms Service] Fetching forms for contractItemId: ${contractItemId}, mode: ${mode}`
- );
+ // console.log(
+ // `[Forms Service] Fetching forms for contractItemId: ${contractItemId}, mode: ${mode}`
+ // );
try {
// 쿼리 생성
@@ -227,10 +228,9 @@ async function getEditableFieldsByTag(
* 그리고 이 로직 전체를 unstable_cache로 감싸 캐싱.
*/
export async function getFormData(formCode: string, contractItemId: number) {
- const cacheKey = `form-data-${formCode}-${contractItemId}`;
- console.log(cacheKey, "getFormData")
try {
+
// 기존 로직으로 projectId, columns, data 가져오기
const contractItemResult = await db
.select({
@@ -285,6 +285,8 @@ export async function getFormData(formCode: string, contractItemId: number) {
const excludeKeys = ['BF_TAG_NO', 'TAG_TYPE_ID', 'PIC_NO'];
columns = columns.filter(col => !excludeKeys.includes(col.key));
+
+
columns.forEach((col) => {
if (!col.displayLabel) {
if (col.uom) {
@@ -295,25 +297,24 @@ export async function getFormData(formCode: string, contractItemId: number) {
}
});
- // status 컬럼 추가
columns.push({
- key: "status",
- label: "status",
- displayLabel: "Status",
- type: "STRING"
- });
+ key:"status",
+ label:"status",
+ displayLabel:"Status",
+ type:"STRING"
+ })
let data: Array<Record<string, any>> = [];
if (entry) {
if (Array.isArray(entry.data)) {
data = entry.data;
- data.sort((a, b) => {
+ data.sort((a,b) => {
const statusA = a.status || '';
const statusB = b.status || '';
- return statusB.localeCompare(statusA);
- });
-
+ return statusB.localeCompare(statusA)
+ })
+
} else {
console.warn("formEntries data was not an array. Using empty array.");
}
@@ -382,7 +383,7 @@ export async function getFormData(formCode: string, contractItemId: number) {
const entry = entryRows[0] ?? null;
let columns = meta.columns as DataTableColumnJSON[];
- const excludeKeys = ['BF_TAG_NO', 'TAG_TYPE_ID', 'PIC_NO'];
+ const excludeKeys = [ 'BF_TAG_NO', 'TAG_TYPE_ID', 'PIC_NO'];
columns = columns.filter(col => !excludeKeys.includes(col.key));
columns.forEach((col) => {
@@ -693,7 +694,7 @@ export async function updateFormDataInDB(
...oldItem,
...newData,
TAG_NO: oldItem.TAG_NO, // TAG_NO 변경 불가 시 유지
- status: "Imported from EXCEL" // Excel에서 가져온 데이터임을 표시
+ status: "Updated" // Excel에서 가져온 데이터임을 표시
};
const updatedArray = [...dataArray];
@@ -894,7 +895,8 @@ export async function uploadReportTemp(
const savePath = path.join(baseDir, uniqueName);
- const arrayBuffer = await file.arrayBuffer();
+ // const arrayBuffer = await file.arrayBuffer();
+ const arrayBuffer = await decryptWithServerAction(file);
const buffer = Buffer.from(arrayBuffer);
await fs.mkdir(baseDir, { recursive: true });