From 639ff7645ee499dfdabe47d7be47c16bc33bd8ca Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sat, 28 Feb 2026 09:56:20 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E4=BE=9B=E5=BA=94=E5=95=86=E9=80=80=E8=B4=A7=E5=8D=95=E5=8F=8A?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E6=98=8E=E7=BB=86=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增供应商退货单、退货单行及退货明细的数据对象和 API 接口,支持供应商退货管理功能。 --- src/api/mes/wm/returnvendor/detail/index.ts | 48 +++ src/api/mes/wm/returnvendor/index.ts | 78 +++++ src/api/mes/wm/returnvendor/line/index.ts | 43 +++ src/utils/dict.ts | 3 + src/views/mes/utils/constants.ts | 18 ++ .../returnvendor/ReturnVendorDetailForm.vue | 155 +++++++++ .../returnvendor/ReturnVendorDetailList.vue | 76 +++++ .../mes/wm/returnvendor/ReturnVendorForm.vue | 260 +++++++++++++++ .../wm/returnvendor/ReturnVendorLineList.vue | 279 ++++++++++++++++ src/views/mes/wm/returnvendor/index.vue | 302 ++++++++++++++++++ 10 files changed, 1262 insertions(+) create mode 100644 src/api/mes/wm/returnvendor/detail/index.ts create mode 100644 src/api/mes/wm/returnvendor/index.ts create mode 100644 src/api/mes/wm/returnvendor/line/index.ts create mode 100644 src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue create mode 100644 src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue create mode 100644 src/views/mes/wm/returnvendor/ReturnVendorForm.vue create mode 100644 src/views/mes/wm/returnvendor/ReturnVendorLineList.vue create mode 100644 src/views/mes/wm/returnvendor/index.vue diff --git a/src/api/mes/wm/returnvendor/detail/index.ts b/src/api/mes/wm/returnvendor/detail/index.ts new file mode 100644 index 000000000..909e42712 --- /dev/null +++ b/src/api/mes/wm/returnvendor/detail/index.ts @@ -0,0 +1,48 @@ +import request from '@/config/axios' + +// MES 供应商退货明细 VO +export interface WmReturnVendorDetailVO { + id?: number + returnVendorId: number + lineId: number + materialStockId: number + itemId: number + quantity: number + batchId?: number + batchCode?: string + warehouseId: number + warehouseName?: string + locationId?: number + locationName?: string + areaId?: number + areaName?: string + remark?: string +} + +// MES 供应商退货明细 API +export const WmReturnVendorDetailApi = { + // 查询供应商退货明细列表(按行编号) + getReturnVendorDetailListByLineId: async (lineId: number) => { + return await request.get({ url: '/mes/wm/return-vendor-detail/list-by-line', params: { lineId } }) + }, + + // 查询供应商退货明细详情 + getReturnVendorDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor-detail/get?id=' + id }) + }, + + // 新增供应商退货明细 + createReturnVendorDetail: async (data: WmReturnVendorDetailVO) => { + return await request.post({ url: '/mes/wm/return-vendor-detail/create', data }) + }, + + // 修改供应商退货明细 + updateReturnVendorDetail: async (data: WmReturnVendorDetailVO) => { + return await request.put({ url: '/mes/wm/return-vendor-detail/update', data }) + }, + + // 删除供应商退货明细 + deleteReturnVendorDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/returnvendor/index.ts b/src/api/mes/wm/returnvendor/index.ts new file mode 100644 index 000000000..5fd604b48 --- /dev/null +++ b/src/api/mes/wm/returnvendor/index.ts @@ -0,0 +1,78 @@ +import request from '@/config/axios' + +// MES 供应商退货单 VO +export interface WmReturnVendorVO { + id?: number + code?: string + name: string + poCode?: string + vendorId?: number + vendorName?: string + vendorNickname?: string + batchCode?: string + returnDate?: string + returnReason?: string + transportCode?: string + transportTelephone?: string + status?: number + remark?: string + createTime?: string +} + +// MES 供应商退货单 API +export const WmReturnVendorApi = { + // 查询供应商退货单分页 + getReturnVendorPage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-vendor/page', params }) + }, + + // 查询供应商退货单详情 + getReturnVendor: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor/get?id=' + id }) + }, + + // 新增供应商退货单 + createReturnVendor: async (data: WmReturnVendorVO) => { + return await request.post({ url: '/mes/wm/return-vendor/create', data }) + }, + + // 修改供应商退货单 + updateReturnVendor: async (data: WmReturnVendorVO) => { + return await request.put({ url: '/mes/wm/return-vendor/update', data }) + }, + + // 删除供应商退货单 + deleteReturnVendor: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor/delete?id=' + id }) + }, + + // 提交供应商退货单 + submitReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/submit?id=' + id }) + }, + + // 执行拣货 + stockReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/stock?id=' + id }) + }, + + // 取消供应商退货单 + cancelReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/cancel?id=' + id }) + }, + + // 完成供应商退货单(执行退货) + finishReturnVendor: async (id: number) => { + return await request.put({ url: '/mes/wm/return-vendor/finish?id=' + id }) + }, + + // 校验供应商退货单数量(每行明细数量之和是否等于行退货数量) + checkReturnVendorQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor/check-quantity?id=' + id }) + }, + + // 导出供应商退货单 Excel + exportReturnVendor: async (params: any) => { + return await request.download({ url: '/mes/wm/return-vendor/export-excel', params }) + } +} diff --git a/src/api/mes/wm/returnvendor/line/index.ts b/src/api/mes/wm/returnvendor/line/index.ts new file mode 100644 index 000000000..8611f58ff --- /dev/null +++ b/src/api/mes/wm/returnvendor/line/index.ts @@ -0,0 +1,43 @@ +import request from '@/config/axios' + +// MES 供应商退货单行 VO +export interface WmReturnVendorLineVO { + id?: number + returnVendorId: number + itemId: number + itemCode?: string + itemName?: string + specification?: string + unitMeasureName?: string + quantity: number + batchId?: number + remark?: string +} + +// MES 供应商退货单行 API +export const WmReturnVendorLineApi = { + // 查询供应商退货单行分页 + getReturnVendorLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/return-vendor-line/page', params }) + }, + + // 查询供应商退货单行详情 + getReturnVendorLine: async (id: number) => { + return await request.get({ url: '/mes/wm/return-vendor-line/get?id=' + id }) + }, + + // 新增供应商退货单行 + createReturnVendorLine: async (data: WmReturnVendorLineVO) => { + return await request.post({ url: '/mes/wm/return-vendor-line/create', data }) + }, + + // 修改供应商退货单行 + updateReturnVendorLine: async (data: WmReturnVendorLineVO) => { + return await request.put({ url: '/mes/wm/return-vendor-line/update', data }) + }, + + // 删除供应商退货单行 + deleteReturnVendorLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/return-vendor-line/delete?id=' + id }) + } +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index f330996ac..047cf65f1 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -296,5 +296,8 @@ export enum DICT_TYPE { MES_WM_ITEM_RECEIPT_STATUS = 'mes_wm_item_receipt_status', // MES 物料接收单状态 MES_WM_PRODUCTION_ISSUE_STATUS = 'mes_wm_production_issue_status', // MES 领料出库单状态 MES_PRODUCT_PRODUCE_STATUS = 'mes_product_produce_status', // MES 生产入库单状态 + MES_RETURN_VENDOR_STATUS = 'mes_return_vendor_status', // MES 供应商退货单状态 MES_WM_QUALITY_STATUS = 'mes_wm_quality_status', // MES 质量状态 + MES_WM_RETURN_ISSUE_STATUS = 'mes_wm_return_issue_status', // MES 生产退料单状态 + MES_WM_RETURN_ISSUE_TYPE = 'mes_wm_return_issue_type', // MES 退料类型 } diff --git a/src/views/mes/utils/constants.ts b/src/views/mes/utils/constants.ts index 93bf5c744..3e3332ef4 100644 --- a/src/views/mes/utils/constants.ts +++ b/src/views/mes/utils/constants.ts @@ -218,6 +218,24 @@ export const MesWmProductionIssueStatusEnum = { CANCELED: MesOrderStatusConstants.CANCELLED } +/** MES 供应商退货单状态枚举 */ +export const MesWmReturnVendorStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 生产退料单状态枚举 */ +export const MesWmReturnIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + /** MES 生产入库单状态枚举 */ export const MesWmProductProduceStatusEnum = { PREPARE: MesOrderStatusConstants.DRAFT, diff --git a/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue b/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue new file mode 100644 index 000000000..1b71324c8 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorDetailForm.vue @@ -0,0 +1,155 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue b/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue new file mode 100644 index 000000000..f1e2b78e8 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorDetailList.vue @@ -0,0 +1,76 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorForm.vue b/src/views/mes/wm/returnvendor/ReturnVendorForm.vue new file mode 100644 index 000000000..69512a615 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorForm.vue @@ -0,0 +1,260 @@ + + + diff --git a/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue b/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue new file mode 100644 index 000000000..af2c4b717 --- /dev/null +++ b/src/views/mes/wm/returnvendor/ReturnVendorLineList.vue @@ -0,0 +1,279 @@ + + + + diff --git a/src/views/mes/wm/returnvendor/index.vue b/src/views/mes/wm/returnvendor/index.vue new file mode 100644 index 000000000..f6b1ad677 --- /dev/null +++ b/src/views/mes/wm/returnvendor/index.vue @@ -0,0 +1,302 @@ + + +