瀏覽代碼

update

MergeProblem1
CANCERYS\kw093 1 周之前
父節點
當前提交
9e9c8d073c
共有 1 個文件被更改,包括 67 次插入9 次删除
  1. +67
    -9
      src/components/FinishedGoodSearch/GoodPickExecution.tsx

+ 67
- 9
src/components/FinishedGoodSearch/GoodPickExecution.tsx 查看文件

@@ -426,14 +426,69 @@ const fetchFgPickOrdersData = useCallback(async () => {
return;
}
// Use the non-auto-assign endpoint - this only fetches existing data
const allLotDetails = await fetchAllPickOrderLotsHierarchical(userIdToUse);
// ✅ Fix: fetchAllPickOrderLotsHierarchical returns hierarchical data, not a flat array
const hierarchicalData = await fetchAllPickOrderLotsHierarchical(userIdToUse);
console.log(" Hierarchical data:", hierarchicalData);
// ✅ Fix: Ensure we always set an array
// If hierarchicalData is not in the expected format, default to empty array
let allLotDetails: any[] = [];
if (hierarchicalData && Array.isArray(hierarchicalData)) {
// If it's already an array, use it directly
allLotDetails = hierarchicalData;
} else if (hierarchicalData?.pickOrders && Array.isArray(hierarchicalData.pickOrders)) {
// Process hierarchical data into flat array (similar to GoodPickExecutiondetail.tsx)
const mergedPickOrder = hierarchicalData.pickOrders[0];
if (mergedPickOrder?.pickOrderLines) {
mergedPickOrder.pickOrderLines.forEach((line: any) => {
if (line.lots && line.lots.length > 0) {
line.lots.forEach((lot: any) => {
allLotDetails.push({
pickOrderConsoCode: mergedPickOrder.consoCode,
pickOrderTargetDate: mergedPickOrder.targetDate,
pickOrderStatus: mergedPickOrder.status,
pickOrderId: line.pickOrderId || mergedPickOrder.pickOrderIds?.[0] || 0,
pickOrderCode: mergedPickOrder.pickOrderCodes?.[0] || "",
pickOrderLineId: line.id,
pickOrderLineRequiredQty: line.requiredQty,
pickOrderLineStatus: line.status,
itemId: line.item?.id,
itemCode: line.item?.code,
itemName: line.item?.name,
uomDesc: line.item?.uomDesc,
uomShortDesc: line.item?.uomShortDesc,
lotId: lot.id,
lotNo: lot.lotNo,
expiryDate: lot.expiryDate,
location: lot.location,
stockUnit: lot.stockUnit,
availableQty: lot.availableQty,
requiredQty: lot.requiredQty,
actualPickQty: lot.actualPickQty,
lotStatus: lot.lotStatus,
lotAvailability: lot.lotAvailability,
processingStatus: lot.processingStatus,
stockOutLineId: lot.stockOutLineId,
stockOutLineStatus: lot.stockOutLineStatus,
stockOutLineQty: lot.stockOutLineQty,
routerId: lot.router?.id,
routerIndex: lot.router?.index,
routerRoute: lot.router?.route,
routerArea: lot.router?.area,
});
});
}
});
}
}
console.log(" All combined lot details:", allLotDetails);
setCombinedLotData(allLotDetails);
setOriginalCombinedData(allLotDetails);
// 计算完成状态并发送事件
const allCompleted = allLotDetails.length > 0 && allLotDetails.every((lot: any) =>
// ✅ Fix: Add safety check - ensure allLotDetails is an array before using .every()
const allCompleted = Array.isArray(allLotDetails) && allLotDetails.length > 0 && allLotDetails.every((lot: any) =>
lot.processingStatus === 'completed'
);
@@ -462,6 +517,7 @@ const fetchFgPickOrdersData = useCallback(async () => {
}
}, [currentUserId, combinedLotData]);


// Only fetch existing data when session is ready, no auto-assignment
useEffect(() => {
if (session && currentUserId && !initializationRef.current) {
@@ -1038,10 +1094,15 @@ const fetchFgPickOrdersData = useCallback(async () => {
});
}, []);

// Pagination data with sorting by routerIndex
const paginatedData = useMemo(() => {
// ✅ Fix: Add safety check to ensure combinedLotData is an array
if (!Array.isArray(combinedLotData)) {
console.warn("⚠️ combinedLotData is not an array:", combinedLotData);
return [];
}
// Sort by routerIndex first, then by other criteria
const sortedData = [...combinedLotData].sort((a, b) => {
const sortedData = [...combinedLotData].sort((a: any, b: any) => {
const aIndex = a.routerIndex || 0;
const bIndex = b.routerIndex || 0;
@@ -1063,9 +1124,6 @@ const fetchFgPickOrdersData = useCallback(async () => {
const endIndex = startIndex + paginationController.pageSize;
return sortedData.slice(startIndex, endIndex);
}, [combinedLotData, paginationController]);

// ... existing code ...

return (
<FormProvider {...formProps}>
{/* 修复:改进条件渲染逻辑 */}


Loading…
取消
儲存