|
|
|
@@ -129,7 +129,9 @@ const CompleteJobOrderRecord: React.FC<Props> = ({ |
|
|
|
const [detailLotDataLoading, setDetailLotDataLoading] = useState(false); |
|
|
|
|
|
|
|
// 修改:搜索状态 |
|
|
|
const [searchQuery, setSearchQuery] = useState<Record<string, any>>({}); |
|
|
|
const [searchQuery, setSearchQuery] = useState<Record<string, any>>(() => ({ |
|
|
|
completedDate: dayjs().format("YYYY-MM-DD"), |
|
|
|
})); |
|
|
|
const [filteredJobOrderPickOrders, setFilteredJobOrderPickOrders] = useState<CompletedJobOrderPickOrder[]>([]); |
|
|
|
|
|
|
|
// Use props with fallback |
|
|
|
@@ -146,30 +148,34 @@ const CompleteJobOrderRecord: React.FC<Props> = ({ |
|
|
|
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<Props> = ({ |
|
|
|
|
|
|
|
// 修改:初始化时获取数据 |
|
|
|
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<string, any>) => { |
|
|
|
|