From 336cfbee92c5e79bf7c7ddc28e06530701d4ce5d Mon Sep 17 00:00:00 2001 From: user Date: Sun, 25 May 2025 22:33:52 +0800 Subject: [PATCH] =?UTF-8?q?fix(orders):=20=E5=B0=86parentNumber=E7=9A=84?= =?UTF-8?q?=E5=80=BC=E4=BB=8E'StyleQuality'=E5=92=8C'QualityType'=E6=9B=B4?= =?UTF-8?q?=E6=94=B9=E4=B8=BA'ProductQuality'?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 修复了多个组件中parentNumber的值,确保一致性并避免潜在的错误。同时,在订单编辑页面添加了重置明细的功能,允许用户根据样式明细重新生成订单明细。 --- .../app/orders/order/order-edit.component.ts | 93 ++++++++++++++++++- .../webapp/app/orders/order/order-edit.vue | 4 +- .../app/orders/style/style-edit.component.ts | 2 +- .../app/orders/style/style.component.ts | 2 +- 4 files changed, 96 insertions(+), 5 deletions(-) diff --git a/src/main/webapp/app/orders/order/order-edit.component.ts b/src/main/webapp/app/orders/order/order-edit.component.ts index 7bc40b1..345f52e 100644 --- a/src/main/webapp/app/orders/order/order-edit.component.ts +++ b/src/main/webapp/app/orders/order/order-edit.component.ts @@ -247,7 +247,7 @@ export default defineComponent({ number: { name: '' }, name: { name: '' }, property: { name: '' }, - parentNumber: { op: '=', value: 'QualityType' }, + parentNumber: { op: '=', value: 'ProductQuality' }, status: { op: '=', value: '1' }, }, }), @@ -587,6 +587,96 @@ export default defineComponent({ return true; // 允许标签页切换 }; + const resetDtlEvent = async () => { + if (!order.value.styleNo) { + alertService.showError($t('jewpmsApp.order.styleNo.required')); + return; + } + + try { + // 1. 删除原有的orderdtl记录 + if (order.value.number && order.value.quality) { + // 根据当前活动的tab页决定处理哪种类型的明细 + let params; + if (activeTab.value === 'setting') { + // 处理setting明细 + params = getParamsFromColumns(settingColumns.value, {}, false, { + number: { op: '=', value: order.value.number }, + quality: { op: '=', value: order.value.quality }, + material: { op: '<>', value: processMaterial.value }, + status: { op: '=', value: '1' }, + }); + } else { + // 处理process明细 + params = getParamsFromColumns(processColumns.value, {}, false, { + number: { op: '=', value: order.value.number }, + quality: { op: '=', value: order.value.quality }, + material: { op: '=', value: processMaterial.value }, + status: { op: '=', value: '1' }, + }); + } + + // 获取当前tab页的明细 + const dtlsRes = await axios.get(`api/orderdtls?${buildPaginationQuery({ sort: sort() })}`, { + params: params, + }); + + // 删除当前tab页的明细 + for (const dtl of dtlsRes.data) { + await axios.delete(`api/orderdtls/${dtl.id}`); + } + + // 2. 从jhi_styledtl表中获取相应的明细信息 + let styleDtlParams = { + number: { op: '=', value: order.value.styleNo }, + quality: { op: '=', value: order.value.quality }, + status: { op: '=', value: '1' }, + }; + + // 根据当前tab页添加material条件 + if (activeTab.value === 'setting') { + styleDtlParams['material'] = { op: '<>', value: processMaterial.value }; + } else { + styleDtlParams['material'] = { op: '=', value: processMaterial.value }; + } + + const styleDtlsRes = await axios.get('api/styledtls', { + params: styleDtlParams, + }); + + // 3. 将样式明细转换为订单明细并保存 + for (const styleDtl of styleDtlsRes.data) { + const newOrderDtl = { + number: order.value.number, + name: styleDtl.name || '', + quality: order.value.quality, + process: styleDtl.process, + material: styleDtl.material, + subgroup: activeTab.value === 'setting' ? 'S' : 'M', + quantity: styleDtl.quantity || 0, + weight: styleDtl.weight || 0, + custPrice: styleDtl.custPrice || 0, + costPrice: styleDtl.costPrice || 0, + custLabor: styleDtl.custLabor || 0, + costLabor: styleDtl.costLabor || 0, + unitHour: styleDtl.unitHour || 0, + remark: styleDtl.remark || '', + sortNo: styleDtl.sortNo, + status: '1', + }; + + await axios.post('api/orderdtls', newOrderDtl); + } + + // 4. 刷新订单明细 + await loadOrderDtls(); + alertService.showSuccess($t('jewpmsApp.order.detail.reset.success')); + } + } catch (e) { + alertService.showHttpError(e); + } + }; + onMounted(() => { loadData(); }); @@ -630,6 +720,7 @@ export default defineComponent({ settingColumns, companies, searchCompanies, + resetDtlEvent, }; }, }); diff --git a/src/main/webapp/app/orders/order/order-edit.vue b/src/main/webapp/app/orders/order/order-edit.vue index 41916fe..906c944 100644 --- a/src/main/webapp/app/orders/order/order-edit.vue +++ b/src/main/webapp/app/orders/order/order-edit.vue @@ -274,8 +274,8 @@ :edit-render="column.editRender" >