From 70b7935fc261cd5e8eaaf1cfbc8078b04db576d2 Mon Sep 17 00:00:00 2001
From: liu <2021943741@qq.com>
Date: 星期六, 07 十一月 2026 14:51:06 +0800
Subject: [PATCH] fix(mes): 自动回填销售订单生产信息
---
src/views/mes/pro/workorder/data.ts | 39 ++++++++++++++++++++++++++++++++++-----
1 files changed, 34 insertions(+), 5 deletions(-)
diff --git a/src/views/mes/pro/workorder/data.ts b/src/views/mes/pro/workorder/data.ts
index 1006dd8..73721e3 100644
--- a/src/views/mes/pro/workorder/data.ts
+++ b/src/views/mes/pro/workorder/data.ts
@@ -15,9 +15,11 @@
} from '@vben/constants';
import { getDictOptions } from '@vben/hooks';
-import { Button } from 'ant-design-vue';
+import { Button, message } from 'ant-design-vue';
import { generateAutoCode } from '#/api/mes/md/autocode/record';
+import { getItemByMdmItemId } from '#/api/mes/md/item';
+import { getSaleOrderItemListByOrderId } from '#/api/erp/sale/order';
import CrmCustomerSelect from '#/components/crm-customer-select.vue';
import { getRangePickerDefaultProps } from '#/utils';
import {
@@ -25,6 +27,8 @@
} from '#/views/mes/md/item/components';
import { SrmSupplierSelect } from '#/views/srm/supplier/components';
import { ErpSaleOrderSelect } from '#/views/erp/sale/order/components';
+
+import { summarizeProductionProduct } from './sale-order-fill';
/** 琛ㄥ崟绫诲瀷 */
export type FormType = 'confirm' | 'create' | 'detail' | 'finish' | 'update';
@@ -208,15 +212,40 @@
componentProps: {
disabled: headerReadonly,
placeholder: '璇烽�夋嫨钀ラ攢璁㈠崟锛圗RP閿�鍞鍗曪級',
- // 閫変腑钀ラ攢璁㈠崟鍚庤嚜鍔ㄥ甫鍏ュ鎴�
+ // 閫変腑钀ラ攢璁㈠崟鍚庤嚜鍔ㄥ甫鍏ュ鎴枫�佹潵婧愬崟鍙枫�佷骇鍝佸拰鏁伴噺
onChange: async (item?: ErpSaleOrderApi.SaleOrder) => {
if (!item) {
return;
}
- const values = (await formApi?.getValues()) ?? {};
- if (values.clientId == null && item.customerId) {
- await formApi?.setFieldValue('clientId', item.customerId);
+ await formApi?.setValues({
+ clientId: item.customerId,
+ orderSourceCode: item.no,
+ productId: undefined,
+ quantity: undefined,
+ });
+ if (!item.id) {
+ return;
}
+ const orderItems = await getSaleOrderItemListByOrderId(item.id);
+ const products = summarizeProductionProduct(orderItems ?? []);
+ if (products.length === 0) {
+ message.warning('璇ラ攢鍞鍗曟病鏈夐渶瑕佺敓浜х殑浜у搧鏄庣粏');
+ return;
+ }
+ if (products.length > 1) {
+ message.warning('璇ラ攢鍞鍗曞寘鍚涓敓浜т骇鍝侊紝璇烽�夋嫨鍏蜂綋浜у搧骞跺~鍐欐暟閲�');
+ return;
+ }
+ const [product] = products;
+ const mesItem = await getItemByMdmItemId(product!.mdmProductId);
+ if (!mesItem?.id) {
+ message.warning('閿�鍞鍗曚骇鍝佸皻鏈悓姝ュ埌鐢熶骇鐗╂枡锛岃鍏堝悓姝ヤ骇鍝佷富鏁版嵁');
+ return;
+ }
+ await formApi?.setValues({
+ productId: mesItem.id,
+ quantity: product!.quantity,
+ });
},
},
dependencies: {
--
Gitblit v1.9.3