From fd34051aa6dd66e5f61d6dbad1bc7b468aeb0909 Mon Sep 17 00:00:00 2001 From: "cyril.tsui" Date: Fri, 8 Aug 2025 14:20:52 +0800 Subject: [PATCH] update --- src/app/api/po/index.ts | 1 + src/app/api/scheduling/actions.ts | 50 ++++++++++++++++--- .../DetailedScheduleSearchView.tsx | 5 +- 3 files changed, 48 insertions(+), 8 deletions(-) diff --git a/src/app/api/po/index.ts b/src/app/api/po/index.ts index 9989faf..ead1364 100644 --- a/src/app/api/po/index.ts +++ b/src/app/api/po/index.ts @@ -14,6 +14,7 @@ export interface PoResult { supplier: string; estimatedArrivalDate: string; completedDate: string; + itemDetail?: String; escalated: boolean; status: string; pol?: PurchaseOrderLine[]; diff --git a/src/app/api/scheduling/actions.ts b/src/app/api/scheduling/actions.ts index c511911..9603b0b 100644 --- a/src/app/api/scheduling/actions.ts +++ b/src/app/api/scheduling/actions.ts @@ -11,6 +11,7 @@ export interface SearchProdSchedule { scheduleAt?: string; schedulePeriod?: string; schedulePeriodTo?: string; + produceAt?: string; totalEstProdCount?: number; types?: ScheduleType[]; pageSize?: number; @@ -20,8 +21,9 @@ export interface SearchProdSchedule { export interface ProdScheduleResult { id: number; scheduleAt: number[]; - schedulePeriod: number[]; - schedulePeriodTo: number[]; + schedulePeriod?: number[]; + schedulePeriodTo?: number[]; + produceAt: string; totalEstProdCount: number; totalFGType: number; type: string; @@ -72,6 +74,40 @@ export const fetchProdSchedules = cache( }, ); +export const fetchRoughProdSchedules = cache( + async (data: SearchProdSchedule | null) => { + const params = convertObjToURLSearchParams(data); + // console.log(params) + return serverFetchJson( + `${BASE_API_URL}/productionSchedule/getRecordByPage/rough?${params}`, + { + method: "GET", + headers: { "Content-Type": "application/json" }, + next: { + tags: ["roughProdSchedules"], + }, + }, + ); + }, +); + +export const fetchDetailedProdSchedules = cache( + async (data: SearchProdSchedule | null) => { + const params = convertObjToURLSearchParams(data); + // console.log(params) + return serverFetchJson( + `${BASE_API_URL}/productionSchedule/getRecordByPage/detailed?${params}`, + { + method: "GET", + headers: { "Content-Type": "application/json" }, + next: { + tags: ["detailedProdSchedules"], + }, + }, + ); + }, +); + export const testRoughSchedule = cache(async () => { return serverFetchJson( `${BASE_API_URL}/productionSchedule/testRoughSchedule`, @@ -79,7 +115,7 @@ export const testRoughSchedule = cache(async () => { method: "GET", headers: { "Content-Type": "application/json" }, next: { - tags: ["prodSchedules"], + tags: ["roughProdSchedules"], }, }, ); @@ -93,7 +129,7 @@ export const testDetailedSchedule = cache(async (date?: string) => { method: "GET", headers: { "Content-Type": "application/json" }, next: { - tags: ["prodSchedules"], + tags: ["detailedProdSchedules"], }, }, ); @@ -109,7 +145,8 @@ export const releaseProdScheduleLine = cache(async (data: ReleaseProdScheduleInp } ); - revalidateTag("prodSchedules"); + revalidateTag("detailedProdSchedules"); + revalidateTag("prodSchedule"); return response; }) @@ -124,7 +161,8 @@ export const saveProdScheduleLine = cache(async (data: ReleaseProdScheduleInputs } ); - revalidateTag("prodSchedules"); + revalidateTag("detailedProdSchedules"); + revalidateTag("prodSchedule"); return response; }) \ No newline at end of file diff --git a/src/components/DetailedSchedule/DetailedScheduleSearchView.tsx b/src/components/DetailedSchedule/DetailedScheduleSearchView.tsx index 8d3df21..1ee8a16 100644 --- a/src/components/DetailedSchedule/DetailedScheduleSearchView.tsx +++ b/src/components/DetailedSchedule/DetailedScheduleSearchView.tsx @@ -10,6 +10,7 @@ import { ScheduleType } from "@/app/api/scheduling"; import { ProdScheduleResult, SearchProdSchedule, + fetchDetailedProdSchedules, fetchProdSchedules, testDetailedSchedule, } from "@/app/api/scheduling/actions"; @@ -192,7 +193,7 @@ const DSOverview: React.FC = ({ type, defaultInputs }) => { pageNum: pagingController.pageNum - 1, pageSize: pagingController.pageSize, }; - const response = await fetchProdSchedules(params); + const response = await fetchDetailedProdSchedules(params); // console.log(response) if (response) { @@ -308,7 +309,7 @@ const DSOverview: React.FC = ({ type, defaultInputs }) => {