| | |
| | | updateMaterialPickingLedger, |
| | | } from "@/api/productionManagement/productionOrder.js"; |
| | | |
| | | const toNumber = val => { |
| | | const n = Number(val); |
| | | return Number.isFinite(n) ? n : 0; |
| | | }; |
| | | |
| | | // 保留6位小数 |
| | | const roundQuantity = val => Math.round(toNumber(val) * 1e6) / 1e6; |
| | | |
| | | const stripTrailingZeros = val => { |
| | | const str = String(val ?? ""); |
| | | if (str.includes(".")) { |
| | | return parseFloat(str).toString(); |
| | | return roundQuantity(str).toString(); |
| | | } |
| | | return str; |
| | | }; |
| | |
| | | const returnSummaryDialogVisible = ref(false); |
| | | const returnSummaryList = ref([]); |
| | | const calcReturnQty = item => |
| | | Number(item.pickQuantity || 0) + |
| | | Number(item.feedingQty || 0) - |
| | | Number(item.actualQty || 0); |
| | | roundQuantity( |
| | | toNumber(item.pickQuantity) + |
| | | toNumber(item.feedingQty) - |
| | | toNumber(item.actualQty) |
| | | ); |
| | | const canOpenReturnSummary = computed(() => |
| | | materialDetailTableData.value.some( |
| | | item => item.returned !== true && calcReturnQty(item) > 0 |
| | |
| | | materialDetailTableData.value = []; |
| | | try { |
| | | const res = await listMaterialPickingDetail(props.orderRow.id); |
| | | materialDetailTableData.value = (res.data || []).map(item => ({ |
| | | ...item, |
| | | actualQty: |
| | | item.actualQty ?? |
| | | Number(item.pickQuantity || 0) + Number(item.feedingQty || 0), |
| | | returnQty: item.returnQty ?? 0, |
| | | })); |
| | | materialDetailTableData.value = (res.data || []).map(item => { |
| | | const row = { |
| | | ...item, |
| | | actualQty: |
| | | item.actualQty ?? |
| | | roundQuantity( |
| | | toNumber(item.pickQuantity) + toNumber(item.feedingQty) |
| | | ), |
| | | }; |
| | | row.returnQty = |
| | | row.returned === true |
| | | ? roundQuantity(item.returnQty) |
| | | : calcReturnQty(row); |
| | | return row; |
| | | }); |
| | | } finally { |
| | | materialDetailLoading.value = false; |
| | | } |
| | |
| | | unit: item.unit || "", |
| | | returnQtyTotal: 0, |
| | | }; |
| | | old.returnQtyTotal += returnQty; |
| | | old.returnQtyTotal = roundQuantity(old.returnQtyTotal + returnQty); |
| | | map.set(key, old); |
| | | }); |
| | | return Array.from(map.values()); |