diff --git a/src/app/(main)/stockOutIssueRecord/detail/page.tsx b/src/app/(main)/stockOutIssueRecord/detail/page.tsx index d40809a..ce6ed51 100644 --- a/src/app/(main)/stockOutIssueRecord/detail/page.tsx +++ b/src/app/(main)/stockOutIssueRecord/detail/page.tsx @@ -1,4 +1,4 @@ -import { PreloadPickOrder } from "@/app/api/pickOrder"; + import { SearchParams } from "@/app/utils/fetchUtil"; import PickOrderDetail from "@/components/PickOrderDetail"; import { getServerI18n, I18nProvider } from "@/i18n"; @@ -14,7 +14,7 @@ type Props = {} & SearchParams; const PickOrder: React.FC = async ({ searchParams }) => { const { t } = await getServerI18n("pickOrder"); - PreloadPickOrder(); + return ( <> diff --git a/src/app/api/jo/actions.ts b/src/app/api/jo/actions.ts index e699b94..01f9849 100644 --- a/src/app/api/jo/actions.ts +++ b/src/app/api/jo/actions.ts @@ -1044,6 +1044,7 @@ export const fetchCompletedJobOrderPickOrders = cache(async (userId: number) => }, ); }); +/* // 获取已完成的 Job Order pick orders export const fetchCompletedJobOrderPickOrdersrecords = cache(async () => { return serverFetchJson( @@ -1054,6 +1055,17 @@ export const fetchCompletedJobOrderPickOrdersrecords = cache(async () => { }, ); }); +*/ +export const fetchCompletedJobOrderPickOrdersrecords = async (completedDate?: string | null) => { + const q = + completedDate && String(completedDate).trim() !== "" + ? `?date=${encodeURIComponent(String(completedDate).trim())}` + : ""; + return serverFetchJson(`${BASE_API_URL}/jo/completed-job-order-pick-orders-only${q}`, { + method: "GET", + cache: "no-store", + }); +}; export const fetchJoForPrintQrCode = cache(async (date: string) => { return serverFetchJson( `${BASE_API_URL}/jo/joForPrintQrCode/${date}`, diff --git a/src/components/Jodetail/JodetailSearch.tsx b/src/components/Jodetail/JodetailSearch.tsx index f6f04c4..a3d7513 100644 --- a/src/components/Jodetail/JodetailSearch.tsx +++ b/src/components/Jodetail/JodetailSearch.tsx @@ -408,6 +408,7 @@ const JodetailSearch: React.FC = ({ printerCombo }) => { setFilteredPickOrders(pickOrders); }, [pickOrders]); */ +/* useEffect(() => { if (!isOpenCreateModal) { setTabIndex(1) @@ -416,7 +417,7 @@ const JodetailSearch: React.FC = ({ printerCombo }) => { }, 200) } }, [isOpenCreateModal]) - + */ // 添加处理提料单创建成功的函数 const handlePickOrderCreated = useCallback(() => { // 切换到 Assign & Release 标签页 (tabIndex = 1) diff --git a/src/components/Jodetail/completeJobOrderRecord.tsx b/src/components/Jodetail/completeJobOrderRecord.tsx index 9ecee59..4b28be7 100644 --- a/src/components/Jodetail/completeJobOrderRecord.tsx +++ b/src/components/Jodetail/completeJobOrderRecord.tsx @@ -129,7 +129,9 @@ const CompleteJobOrderRecord: React.FC = ({ const [detailLotDataLoading, setDetailLotDataLoading] = useState(false); // 修改:搜索状态 - const [searchQuery, setSearchQuery] = useState>({}); + const [searchQuery, setSearchQuery] = useState>(() => ({ + completedDate: dayjs().format("YYYY-MM-DD"), + })); const [filteredJobOrderPickOrders, setFilteredJobOrderPickOrders] = useState([]); // Use props with fallback @@ -146,30 +148,34 @@ const CompleteJobOrderRecord: React.FC = ({ const errors = formProps.formState.errors; // 修改:使用新的 Job Order API 获取已完成的 Job Order Pick Orders(仅完成pick的) - const fetchCompletedJobOrderPickOrdersData = useCallback(async () => { - if (!currentUserId) return; - - setCompletedJobOrderPickOrdersLoading(true); - try { - console.log("🔍 Fetching completed Job Order pick orders (pick completed only)..."); - - const completedJobOrderPickOrders = await fetchCompletedJobOrderPickOrdersrecords(); - - // Fix: Ensure the data is always an array - const safeData = Array.isArray(completedJobOrderPickOrders) ? completedJobOrderPickOrders : []; - - setCompletedJobOrderPickOrders(safeData); - setFilteredJobOrderPickOrders(safeData); - console.log(" Fetched completed Job Order pick orders:", safeData); - } catch (error) { - console.error("❌ Error fetching completed Job Order pick orders:", error); - setCompletedJobOrderPickOrders([]); - setFilteredJobOrderPickOrders([]); - } finally { - setCompletedJobOrderPickOrdersLoading(false); - } - }, [currentUserId]); - + const fetchCompletedJobOrderPickOrdersData = useCallback( + async (forDate?: string) => { + if (!currentUserId) return; + + setCompletedJobOrderPickOrdersLoading(true); + try { + const dateParam = + forDate !== undefined + ? forDate + : searchQuery.completedDate + ? String(searchQuery.completedDate) + : dayjs().format("YYYY-MM-DD"); + const completedJobOrderPickOrders = await fetchCompletedJobOrderPickOrdersrecords( + dateParam.trim() ? dateParam.trim() : null, + ); + const safeData = Array.isArray(completedJobOrderPickOrders) ? completedJobOrderPickOrders : []; + setCompletedJobOrderPickOrders(safeData); + setFilteredJobOrderPickOrders(safeData); + } catch (error) { + console.error("❌ Error fetching completed Job Order pick orders:", error); + setCompletedJobOrderPickOrders([]); + setFilteredJobOrderPickOrders([]); + } finally { + setCompletedJobOrderPickOrdersLoading(false); + } + }, + [currentUserId, searchQuery.completedDate], + ); // 新增:获取 lot 详情数据(使用新的API) const fetchLotDetailsData = useCallback(async (pickOrderId: number) => { setDetailLotDataLoading(true); @@ -190,10 +196,11 @@ const CompleteJobOrderRecord: React.FC = ({ // 修改:初始化时获取数据 useEffect(() => { - if (currentUserId) { - fetchCompletedJobOrderPickOrdersData(); - } - }, [currentUserId, fetchCompletedJobOrderPickOrdersData]); + if (!currentUserId) return; + const d = searchQuery?.completedDate; + const dateStr = d != null && String(d).trim() !== "" ? String(d).trim() : ""; + void fetchCompletedJobOrderPickOrdersData(dateStr || undefined); + }, [currentUserId, searchQuery?.completedDate, fetchCompletedJobOrderPickOrdersData]); // 修改:搜索功能(只更新 query;实际过滤交给 useEffect + date filter 统一处理) const handleSearch = useCallback((query: Record) => {