| 작성자 | SHA1 | 메시지 | 날짜 |
|---|---|---|---|
|
|
3f208b7fb1 | Merge remote-tracking branch 'origin/production' into production | 1 주 전 |
|
|
d6f7044b5a | Due to server explosion , delete unnecessary old flow api | 1 주 전 |
| @@ -32,7 +32,6 @@ import { | |||
| AutoAssignReleaseResponse, | |||
| checkPickOrderCompletion, | |||
| PickOrderCompletionResponse, | |||
| checkAndCompletePickOrderByConsoCode, | |||
| fetchDoPickOrderDetail, | |||
| DoPickOrderDetail, | |||
| } from "@/app/api/pickOrder/actions"; | |||
| @@ -947,26 +946,7 @@ const fetchFgPickOrdersData = useCallback(async () => { | |||
| }); | |||
| } | |||
| // FIXED: Use the proper API function instead of direct fetch | |||
| if (newStatus === 'completed' && lot.pickOrderConsoCode) { | |||
| console.log(` Lot ${lot.lotNo} completed, checking if pick order ${lot.pickOrderConsoCode} is complete...`); | |||
| try { | |||
| // Use the imported API function instead of direct fetch | |||
| const completionResponse = await checkAndCompletePickOrderByConsoCode(lot.pickOrderConsoCode); | |||
| console.log(` Pick order completion check result:`, completionResponse); | |||
| if (completionResponse.code === "SUCCESS") { | |||
| console.log(`�� Pick order ${lot.pickOrderConsoCode} completed successfully!`); | |||
| } else if (completionResponse.message === "not completed") { | |||
| console.log(`⏳ Pick order not completed yet, more lines remaining`); | |||
| } else { | |||
| console.error(`❌ Error checking completion: ${completionResponse.message}`); | |||
| } | |||
| } catch (error) { | |||
| console.error("Error checking pick order completion:", error); | |||
| } | |||
| } | |||
| // Workbench completion is handled in backend scan-pick flow. | |||
| await fetchAllCombinedLotData(); | |||
| console.log("Pick quantity submitted successfully!"); | |||
| @@ -38,7 +38,6 @@ import { | |||
| checkPickOrderCompletion, | |||
| fetchAllPickOrderLotsHierarchicalWorkbench, | |||
| PickOrderCompletionResponse, | |||
| checkAndCompletePickOrderByConsoCode, | |||
| updateSuggestedLotLineId, | |||
| updateStockOutLineStatusByQRCodeAndLotNo, | |||
| confirmLotSubstitution, | |||
| @@ -2839,15 +2838,6 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe | |||
| return next; | |||
| }); | |||
| await refreshWorkbenchAfterScanPick(); | |||
| if (canonicalLotForSol.pickOrderConsoCode) { | |||
| void checkAndCompletePickOrderByConsoCode(canonicalLotForSol.pickOrderConsoCode) | |||
| .then((completionResponse) => { | |||
| console.log(` Pick order completion check (workbench just complete):`, completionResponse); | |||
| }) | |||
| .catch((error) => { | |||
| console.error("Error checking pick order completion:", error); | |||
| }); | |||
| } | |||
| setTimeout(() => { | |||
| checkAndAutoAssignNext(); | |||
| }, 1000); | |||
| @@ -2950,15 +2940,6 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe | |||
| return next; | |||
| }); | |||
| await refreshWorkbenchAfterScanPick(); | |||
| if (lot.pickOrderConsoCode) { | |||
| void checkAndCompletePickOrderByConsoCode(lot.pickOrderConsoCode) | |||
| .then((completionResponse) => { | |||
| console.log(` Pick order completion check (workbench submit):`, completionResponse); | |||
| }) | |||
| .catch((error) => { | |||
| console.error("Error checking pick order completion:", error); | |||
| }); | |||
| } | |||
| setTimeout(() => { | |||
| checkAndAutoAssignNext(); | |||
| }, 1000); | |||
| @@ -3003,26 +2984,8 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe | |||
| // 注意:库存过账(hold->out)与 ledger 由后端 updateStatus 内部统一处理; | |||
| // 前端不再额外调用 updateInventoryLotLineQuantities(operation='pick'),避免 double posting。 | |||
| // Check if pick order is completed when lot status becomes 'completed' | |||
| if (newStatus === 'completed' && lot.pickOrderConsoCode) { | |||
| console.log(` Lot ${lot.lotNo} completed, checking if pick order ${lot.pickOrderConsoCode} is complete...`); | |||
| try { | |||
| const completionResponse = await checkAndCompletePickOrderByConsoCode(lot.pickOrderConsoCode); | |||
| console.log(` Pick order completion check result:`, completionResponse); | |||
| if (completionResponse.code === "SUCCESS") { | |||
| console.log(` Pick order ${lot.pickOrderConsoCode} completed successfully!`); | |||
| } else if (completionResponse.message === "not completed") { | |||
| console.log(`⏳ Pick order not completed yet, more lines remaining`); | |||
| } else { | |||
| console.error(` Error checking completion: ${completionResponse.message}`); | |||
| } | |||
| } catch (error) { | |||
| console.error("Error checking pick order completion:", error); | |||
| } | |||
| } | |||
| // Workbench completion is handled in backend scan-pick flow. | |||
| void fetchAllCombinedLotData(); | |||
| console.log("Pick quantity submitted successfully!"); | |||
| @@ -3049,7 +3012,6 @@ const handleSubmitPickQtyWithQty = useCallback(async (lot: any, submitQty: numbe | |||
| refreshWorkbenchAfterScanPick, | |||
| combinedLotData, | |||
| workbenchScanPickQtyFromLot, | |||
| checkAndCompletePickOrderByConsoCode, | |||
| t, | |||
| ]); | |||
| @@ -41,7 +41,6 @@ import { | |||
| AutoAssignReleaseResponse, | |||
| checkPickOrderCompletion, | |||
| PickOrderCompletionResponse, | |||
| checkAndCompletePickOrderByConsoCode, | |||
| confirmLotSubstitution, | |||
| updateStockOutLineStatusByQRCodeAndLotNo, // ✅ 添加 | |||
| } from "@/app/api/pickOrder/actions"; | |||
| @@ -3229,20 +3228,6 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs, onBackToList }) => { | |||
| return next; | |||
| }); | |||
| await refreshWorkbenchAfterScanPick(); | |||
| if (canonicalLotForSol.pickOrderConsoCode) { | |||
| void checkAndCompletePickOrderByConsoCode( | |||
| canonicalLotForSol.pickOrderConsoCode, | |||
| ) | |||
| .then((completionResponse) => { | |||
| console.log( | |||
| ` Pick order completion check (workbench just complete):`, | |||
| completionResponse, | |||
| ); | |||
| }) | |||
| .catch((error) => { | |||
| console.error("Error checking pick order completion:", error); | |||
| }); | |||
| } | |||
| setTimeout(() => { | |||
| checkAndAutoAssignNext(); | |||
| }, 1000); | |||
| @@ -3342,18 +3327,6 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs, onBackToList }) => { | |||
| return next; | |||
| }); | |||
| await refreshWorkbenchAfterScanPick(); | |||
| if (lot.pickOrderConsoCode) { | |||
| void checkAndCompletePickOrderByConsoCode(lot.pickOrderConsoCode) | |||
| .then((completionResponse) => { | |||
| console.log( | |||
| ` Pick order completion check (workbench submit):`, | |||
| completionResponse, | |||
| ); | |||
| }) | |||
| .catch((error) => { | |||
| console.error("Error checking pick order completion:", error); | |||
| }); | |||
| } | |||
| setTimeout(() => { | |||
| checkAndAutoAssignNext(); | |||
| }, 1000); | |||
| @@ -3395,38 +3368,7 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs, onBackToList }) => { | |||
| ); | |||
| } | |||
| if (newStatus === "completed" && lot.pickOrderConsoCode) { | |||
| console.log( | |||
| ` Lot ${lot.lotNo} completed, checking if pick order ${lot.pickOrderConsoCode} is complete...`, | |||
| ); | |||
| try { | |||
| const completionResponse = | |||
| await checkAndCompletePickOrderByConsoCode( | |||
| lot.pickOrderConsoCode, | |||
| ); | |||
| console.log( | |||
| ` Pick order completion check result:`, | |||
| completionResponse, | |||
| ); | |||
| if (completionResponse.code === "SUCCESS") { | |||
| console.log( | |||
| ` Pick order ${lot.pickOrderConsoCode} completed successfully!`, | |||
| ); | |||
| } else if (completionResponse.message === "not completed") { | |||
| console.log( | |||
| `⏳ Pick order not completed yet, more lines remaining`, | |||
| ); | |||
| } else { | |||
| console.error( | |||
| ` Error checking completion: ${completionResponse.message}`, | |||
| ); | |||
| } | |||
| } catch (error) { | |||
| console.error("Error checking pick order completion:", error); | |||
| } | |||
| } | |||
| // Workbench completion is handled in backend scan-pick flow. | |||
| void fetchJobOrderData(pickOrderIdForRefresh); | |||
| console.log("Pick quantity submitted successfully!"); | |||
| @@ -3455,7 +3397,6 @@ const JobPickExecution: React.FC<Props> = ({ filterArgs, onBackToList }) => { | |||
| refreshWorkbenchAfterScanPick, | |||
| combinedLotData, | |||
| workbenchScanPickQtyFromLot, | |||
| checkAndCompletePickOrderByConsoCode, | |||
| pickQtyData, | |||
| tPick, | |||
| workbenchStoreId, | |||