From 34d20fbf25427a76848bd1bf85f14c6e3d7ea1f0 Mon Sep 17 00:00:00 2001
From: quxin <592870522@qq.com>
Date: 星期五, 04 九月 2026 11:36:57 +0800
Subject: [PATCH] 修复: 生产领料后的退料应该是选择领料的记录,不是选择库存的记录(同时库存数据需要根据领料退料变动,比如库存100,领用80,然后领用80中退料30,库存应由原来的20变成50)
---
src/views/wls/returnissue/modules/line-form.vue | 10 ++--
src/views/wls/returnissue/modules/line-list.vue | 5 +-
src/views/wls/returnissue/data.ts | 36 ++++++++++--------
src/api/mes/wm/productissue/line/index.ts | 8 ++++
src/api/mes/wm/returnissue/line/index.ts | 1
src/views/wls/returnissue/modules/form.vue | 2
6 files changed, 38 insertions(+), 24 deletions(-)
diff --git a/src/api/mes/wm/productissue/line/index.ts b/src/api/mes/wm/productissue/line/index.ts
index 285d37a..9b79b2f 100644
--- a/src/api/mes/wm/productissue/line/index.ts
+++ b/src/api/mes/wm/productissue/line/index.ts
@@ -69,3 +69,11 @@
{ params: { issueId } },
);
}
+
+/** 鏌ヨ鍙��鏂欑殑棰嗘枡鍗曡鍒楄〃锛堟寜鐢熶骇璁㈠崟杩囨护锛屼粎杩斿洖宸插畬鎴愰鏂欑殑璁板綍锛� */
+export function getReturnableIssueLines(workOrderId: number) {
+ return requestClient.get<MesWmProductIssueLineApi.ProductIssueLine[]>(
+ '/mes/wm/product-issue-line/returnable-list',
+ { params: { workOrderId } },
+ );
+}
diff --git a/src/api/mes/wm/returnissue/line/index.ts b/src/api/mes/wm/returnissue/line/index.ts
index 05bef07..d1bb469 100644
--- a/src/api/mes/wm/returnissue/line/index.ts
+++ b/src/api/mes/wm/returnissue/line/index.ts
@@ -7,6 +7,7 @@
export interface ReturnIssueLine {
id?: number; // 琛岀紪鍙�
issueId?: number; // 閫�鏂欏崟缂栧彿
+ issueLineId?: number; // 棰嗘枡鍗曡缂栧彿锛堝叧鑱旀潵婧愰鏂欒褰曪級
itemId?: number; // 鐗╂枡缂栧彿
itemCode?: string; // 鐗╂枡缂栫爜
itemName?: string; // 鐗╂枡鍚嶇О
diff --git a/src/views/wls/returnissue/data.ts b/src/views/wls/returnissue/data.ts
index 4ca6336..691b573 100644
--- a/src/views/wls/returnissue/data.ts
+++ b/src/views/wls/returnissue/data.ts
@@ -1,6 +1,7 @@
锘縤mport type { VbenFormApi, VbenFormSchema } from '#/adapter/form';
import type { VxeTableGridOptions } from '#/adapter/vxe-table';
import type { MesWmMaterialStockApi } from '#/api/mes/wm/materialstock';
+import type { MesWmProductIssueLineApi } from '#/api/mes/wm/productissue/line';
import type { MesWmReturnIssueApi } from '#/api/mes/wm/returnissue';
import type { MesWmReturnIssueDetailApi } from '#/api/mes/wm/returnissue/detail';
import type { MesWmReturnIssueLineApi } from '#/api/mes/wm/returnissue/line';
@@ -20,6 +21,7 @@
import { generateAutoCode } from '#/api/mes/md/autocode/record';
import { MdWorkstationSelect } from '#/views/mes/md/workstation/components';
import { ProWorkOrderSelect } from '#/views/mes/pro/workorder/components';
+import { WmProductIssueLineSelect } from '#/views/wls/productissue/components';
import { WmMaterialStockSelect } from '#/views/wls/materialstock/components';
import {
WmWarehouseAreaSelect,
@@ -316,27 +318,29 @@
}
/** 閫�鏂欏崟琛屾柊澧�/淇敼鐨勮〃鍗� */
-export function useLineFormSchema(formApi?: VbenFormApi): VbenFormSchema[] {
+export function useLineFormSchema(
+ formApi?: VbenFormApi,
+ workOrderId?: number,
+): VbenFormSchema[] {
return [
{
- fieldName: 'materialStockId',
- label: '搴撳瓨璁板綍',
- component: markRaw(WmMaterialStockSelect),
+ fieldName: 'issueLineId',
+ label: '棰嗘枡璁板綍',
+ component: markRaw(WmProductIssueLineSelect),
componentProps: {
- // 閫夋嫨搴撳瓨璁板綍鍚庯紝鑷姩鍥炲~鐗╂枡/鎵规/鏁伴噺
- onChange: async (stock?: MesWmMaterialStockApi.MaterialStock) => {
+ workOrderId,
+ onChange: async (line?: MesWmProductIssueLineApi.ProductIssueLine) => {
await formApi?.setValues({
- batchCode: stock?.batchCode,
- batchId: stock?.batchId,
- itemId: stock?.itemId,
- materialDisplayName: stock
- ? [stock.itemName, stock.specification].filter(Boolean).join(' | ')
+ batchCode: line?.batchCode,
+ batchId: line?.batchId,
+ itemId: line?.itemId,
+ materialDisplayName: line
+ ? [line.itemName, line.specification].filter(Boolean).join(' | ')
: undefined,
- quantity: stock?.quantity,
- quantityMax: stock?.quantity,
+ quantity: line?.quantity,
+ quantityMax: line?.quantity,
});
},
- virtualFilter: 'only',
},
rules: 'selectRequired',
},
@@ -390,7 +394,7 @@
component: 'Input',
componentProps: {
disabled: true,
- placeholder: '閫夋嫨搴撳瓨鍚庤嚜鍔ㄥ甫鍑�',
+ placeholder: '閫夋嫨棰嗘枡璁板綍鍚庤嚜鍔ㄥ甫鍑�',
},
},
{
@@ -399,7 +403,7 @@
component: 'Input',
componentProps: {
disabled: true,
- placeholder: '閫夋嫨搴撳瓨鍚庤嚜鍔ㄥ甫鍑�',
+ placeholder: '閫夋嫨棰嗘枡璁板綍鍚庤嚜鍔ㄥ甫鍑�',
},
},
{
diff --git a/src/views/wls/returnissue/modules/form.vue b/src/views/wls/returnissue/modules/form.vue
index 1546dd4..2d340e9 100644
--- a/src/views/wls/returnissue/modules/form.vue
+++ b/src/views/wls/returnissue/modules/form.vue
@@ -198,7 +198,7 @@
<template v-if="formData?.id">
<Divider>鐗╂枡淇℃伅</Divider>
<div class="mx-4">
- <LineList :form-type="formType" :issue-id="formData.id" />
+ <LineList :form-type="formType" :issue-id="formData.id" :work-order-id="formData.workOrderId" />
</div>
</template>
<template #prepend-footer>
diff --git a/src/views/wls/returnissue/modules/line-form.vue b/src/views/wls/returnissue/modules/line-form.vue
index fc72468..4e14a8d 100644
--- a/src/views/wls/returnissue/modules/line-form.vue
+++ b/src/views/wls/returnissue/modules/line-form.vue
@@ -19,7 +19,8 @@
const emit = defineEmits(['success']);
const formData = ref<MesWmReturnIssueLineApi.ReturnIssueLine>();
-const issueId = ref<number>(); // 鎵�灞為��鏂欏崟缂栧彿
+const issueId = ref<number>();
+const workOrderId = ref<number>();
const getTitle = computed(() => {
return formData.value?.id
@@ -69,17 +70,16 @@
formData.value = undefined;
return;
}
- formApi.setState({ schema: useLineFormSchema(formApi) });
- // 鍔犺浇鏁版嵁
- const data = modalApi.getData<{ id?: number; issueId: number }>();
+ const data = modalApi.getData<{ id?: number; issueId: number; workOrderId?: number }>();
issueId.value = data.issueId;
+ workOrderId.value = data.workOrderId;
+ formApi.setState({ schema: useLineFormSchema(formApi, workOrderId.value) });
if (!data.id) {
return;
}
modalApi.lock();
try {
formData.value = await getReturnIssueLine(data.id);
- // 璁剧疆鍒� values锛屽苟鏋勫缓鐗╂枡灞曠ず鍚�
await formApi.setValues({
...formData.value,
materialDisplayName: [formData.value.itemName, formData.value.specification]
diff --git a/src/views/wls/returnissue/modules/line-list.vue b/src/views/wls/returnissue/modules/line-list.vue
index 98c6682..14c7ccf 100644
--- a/src/views/wls/returnissue/modules/line-list.vue
+++ b/src/views/wls/returnissue/modules/line-list.vue
@@ -29,6 +29,7 @@
const props = defineProps<{
formType: FormType;
issueId: number;
+ workOrderId?: number;
}>();
const isEditable = computed(() =>
@@ -61,12 +62,12 @@
/** 娣诲姞鐗╂枡 */
function handleCreate() {
- lineFormModalApi.setData({ issueId: props.issueId }).open();
+ lineFormModalApi.setData({ issueId: props.issueId, workOrderId: props.workOrderId }).open();
}
/** 缂栬緫鐗╂枡 */
function handleEdit(row: MesWmReturnIssueLineApi.ReturnIssueLine) {
- lineFormModalApi.setData({ id: row.id, issueId: props.issueId }).open();
+ lineFormModalApi.setData({ id: row.id, issueId: props.issueId, workOrderId: props.workOrderId }).open();
}
/** 鍒犻櫎鐗╂枡 */
--
Gitblit v1.9.3