From efa794d2ab7385866bb74ac838f54bd3ccd66812 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Tue, 3 Mar 2026 11:49:19 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(mes):=20=E6=B7=BB=E5=8A=A0?= =?UTF-8?q?=E6=9D=82=E9=A1=B9=E5=87=BA=E5=BA=93=E5=8D=95=E5=8F=8A=E8=A1=8C?= =?UTF-8?q?=E7=9B=B8=E5=85=B3=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 新增杂项出库单及行的请求和响应对象,更新相关的接口和枚举,支持杂项出库单的创建、修改、删除和查询功能。优化了相关的业务逻辑和数据结构,以提升系统的可维护性和扩展性。 --- src/api/mes/wm/miscissue/detail/index.ts | 61 ++++ src/api/mes/wm/miscissue/index.ts | 69 ++++ src/api/mes/wm/miscissue/line/index.ts | 61 ++++ src/utils/dict.ts | 1 + src/views/mes/utils/constants.ts | 32 ++ .../mes/wm/miscissue/MiscIssueDetailList.vue | 220 +++++++++++++ src/views/mes/wm/miscissue/MiscIssueForm.vue | 218 +++++++++++++ .../mes/wm/miscissue/MiscIssueLineList.vue | 293 +++++++++++++++++ src/views/mes/wm/miscissue/index.vue | 303 ++++++++++++++++++ src/views/mes/wm/productionissue/index.vue | 2 +- 10 files changed, 1259 insertions(+), 1 deletion(-) create mode 100644 src/api/mes/wm/miscissue/detail/index.ts create mode 100644 src/api/mes/wm/miscissue/index.ts create mode 100644 src/api/mes/wm/miscissue/line/index.ts create mode 100644 src/views/mes/wm/miscissue/MiscIssueDetailList.vue create mode 100644 src/views/mes/wm/miscissue/MiscIssueForm.vue create mode 100644 src/views/mes/wm/miscissue/MiscIssueLineList.vue create mode 100644 src/views/mes/wm/miscissue/index.vue diff --git a/src/api/mes/wm/miscissue/detail/index.ts b/src/api/mes/wm/miscissue/detail/index.ts new file mode 100644 index 000000000..35df2d9bd --- /dev/null +++ b/src/api/mes/wm/miscissue/detail/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +// MES 杂项出库明细 VO +export interface WmMiscIssueDetailVO { + id: number + lineId: number + issueId: number + materialStockId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasure: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + warehouseId: number + warehouseCode: string + warehouseName: string + locationId: number + locationCode: string + locationName: string + areaId: number + areaCode: string + areaName: string + remark: string +} + +// MES 杂项出库明细 API +export const WmMiscIssueDetailApi = { + // 查询杂项出库明细分页 + getMiscIssueDetailPage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-issue-detail/page', params }) + }, + + // 根据行ID查询杂项出库明细列表 + getMiscIssueDetailListByLineId: async (lineId: number) => { + return await request.get({ url: '/mes/wm/misc-issue-detail/list-by-line-id?lineId=' + lineId }) + }, + + // 查询杂项出库明细详情 + getMiscIssueDetail: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue-detail/get?id=' + id }) + }, + + // 新增杂项出库明细 + createMiscIssueDetail: async (data: WmMiscIssueDetailVO) => { + return await request.post({ url: '/mes/wm/misc-issue-detail/create', data }) + }, + + // 修改杂项出库明细 + updateMiscIssueDetail: async (data: WmMiscIssueDetailVO) => { + return await request.put({ url: '/mes/wm/misc-issue-detail/update', data }) + }, + + // 删除杂项出库明细 + deleteMiscIssueDetail: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-issue-detail/delete?id=' + id }) + } +} diff --git a/src/api/mes/wm/miscissue/index.ts b/src/api/mes/wm/miscissue/index.ts new file mode 100644 index 000000000..6162fc76f --- /dev/null +++ b/src/api/mes/wm/miscissue/index.ts @@ -0,0 +1,69 @@ +import request from '@/config/axios' + +// MES 杂项出库单 VO +export interface WmMiscIssueVO { + id: number + code: string + name: string + type: string + sourceDocId: number + sourceDocCode: string + sourceDocType: string + issueDate: string + status: number + remark: string + createTime: string +} + +// MES 杂项出库单 API +export const WmMiscIssueApi = { + // 查询杂项出库单分页 + getMiscIssuePage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-issue/page', params }) + }, + + // 查询杂项出库单详情 + getMiscIssue: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue/get?id=' + id }) + }, + + // 新增杂项出库单 + createMiscIssue: async (data: WmMiscIssueVO) => { + return await request.post({ url: '/mes/wm/misc-issue/create', data }) + }, + + // 修改杂项出库单 + updateMiscIssue: async (data: WmMiscIssueVO) => { + return await request.put({ url: '/mes/wm/misc-issue/update', data }) + }, + + // 删除杂项出库单 + deleteMiscIssue: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-issue/delete?id=' + id }) + }, + + // 提交杂项出库单 + submitMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/submit?id=' + id }) + }, + + // 执行出库 + finishMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/finish?id=' + id }) + }, + + // 取消杂项出库单 + cancelMiscIssue: async (id: number) => { + return await request.put({ url: '/mes/wm/misc-issue/cancel?id=' + id }) + }, + + // 导出杂项出库单 Excel + exportMiscIssue: async (params: any) => { + return await request.download({ url: '/mes/wm/misc-issue/export-excel', params }) + }, + + // 校验杂项出库单数量 + checkMiscIssueQuantity: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue/check-quantity?id=' + id }) + } +} diff --git a/src/api/mes/wm/miscissue/line/index.ts b/src/api/mes/wm/miscissue/line/index.ts new file mode 100644 index 000000000..ce0438fde --- /dev/null +++ b/src/api/mes/wm/miscissue/line/index.ts @@ -0,0 +1,61 @@ +import request from '@/config/axios' + +// MES 杂项出库单行 VO +export interface WmMiscIssueLineVO { + id: number + issueId: number + sourceDocLineId: number + materialStockId: number + itemId: number + itemCode: string + itemName: string + specification: string + unitMeasure: string + unitMeasureName: string + quantity: number + batchId: number + batchCode: string + warehouseId: number + warehouseCode: string + warehouseName: string + locationId: number + locationCode: string + locationName: string + areaId: number + areaCode: string + areaName: string + remark: string +} + +// MES 杂项出库单行 API +export const WmMiscIssueLineApi = { + // 查询杂项出库单行分页 + getMiscIssueLinePage: async (params: any) => { + return await request.get({ url: '/mes/wm/misc-issue-line/page', params }) + }, + + // 根据出库单ID查询杂项出库单行列表 + getMiscIssueLineListByIssueId: async (issueId: number) => { + return await request.get({ url: '/mes/wm/misc-issue-line/list-by-issue-id?issueId=' + issueId }) + }, + + // 查询杂项出库单行详情 + getMiscIssueLine: async (id: number) => { + return await request.get({ url: '/mes/wm/misc-issue-line/get?id=' + id }) + }, + + // 新增杂项出库单行 + createMiscIssueLine: async (data: WmMiscIssueLineVO) => { + return await request.post({ url: '/mes/wm/misc-issue-line/create', data }) + }, + + // 修改杂项出库单行 + updateMiscIssueLine: async (data: WmMiscIssueLineVO) => { + return await request.put({ url: '/mes/wm/misc-issue-line/update', data }) + }, + + // 删除杂项出库单行 + deleteMiscIssueLine: async (id: number) => { + return await request.delete({ url: '/mes/wm/misc-issue-line/delete?id=' + id }) + } +} diff --git a/src/utils/dict.ts b/src/utils/dict.ts index 5a0dbe3ab..ec7b9de44 100644 --- a/src/utils/dict.ts +++ b/src/utils/dict.ts @@ -294,6 +294,7 @@ export enum DICT_TYPE { MES_RQC_TYPE = 'mes_rqc_type', // MES 退货检验类型 MES_WM_ARRIVAL_NOTICE_STATUS = 'mes_wm_arrival_notice_status', // MES 到货通知单状态 MES_WM_ITEM_RECEIPT_STATUS = 'mes_wm_item_receipt_status', // MES 物料接收单状态 + MES_WM_OUTSOURCE_RECPT_STATUS = 'mes_wm_outsource_recpt_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 供应商退货单状态 diff --git a/src/views/mes/utils/constants.ts b/src/views/mes/utils/constants.ts index fd99ae246..5309c4e13 100644 --- a/src/views/mes/utils/constants.ts +++ b/src/views/mes/utils/constants.ts @@ -209,6 +209,24 @@ export const MesWmItemReceiptStatusEnum = { CANCELED: MesOrderStatusConstants.CANCELLED } +/** MES 委外收货单状态枚举 */ +export const MesWmOutsourceReceiptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 外协入库单状态枚举 */ +export const MesWmOutsourceRecptStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVING: MesOrderStatusConstants.APPROVING, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + /** MES 生产领料出库单状态枚举 */ export const MesWmProductionIssueStatusEnum = { PREPARE: MesOrderStatusConstants.DRAFT, @@ -279,6 +297,20 @@ export const MesWmSalesNoticeStatusEnum = { FINISHED: MesOrderStatusConstants.FINISHED } +/** MES 杂项出库单状态枚举 */ +export const MesWmMiscIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + APPROVED: MesOrderStatusConstants.APPROVED, + FINISHED: MesOrderStatusConstants.FINISHED, + CANCELED: MesOrderStatusConstants.CANCELLED +} + +/** MES 外协发料单状态枚举 */ +export const MesWmOutsourceIssueStatusEnum = { + PREPARE: MesOrderStatusConstants.DRAFT, + FINISHED: MesOrderStatusConstants.FINISHED +} + /** 获取物料/产品标识的标签 */ export const getItemOrProductLabel = (value: string): string => { for (const item of Object.values(MesItemOrProductEnum)) { diff --git a/src/views/mes/wm/miscissue/MiscIssueDetailList.vue b/src/views/mes/wm/miscissue/MiscIssueDetailList.vue new file mode 100644 index 000000000..c1c9d2544 --- /dev/null +++ b/src/views/mes/wm/miscissue/MiscIssueDetailList.vue @@ -0,0 +1,220 @@ + + + + + diff --git a/src/views/mes/wm/miscissue/MiscIssueForm.vue b/src/views/mes/wm/miscissue/MiscIssueForm.vue new file mode 100644 index 000000000..751aeae51 --- /dev/null +++ b/src/views/mes/wm/miscissue/MiscIssueForm.vue @@ -0,0 +1,218 @@ + + + diff --git a/src/views/mes/wm/miscissue/MiscIssueLineList.vue b/src/views/mes/wm/miscissue/MiscIssueLineList.vue new file mode 100644 index 000000000..91ab8557a --- /dev/null +++ b/src/views/mes/wm/miscissue/MiscIssueLineList.vue @@ -0,0 +1,293 @@ + + + + diff --git a/src/views/mes/wm/miscissue/index.vue b/src/views/mes/wm/miscissue/index.vue new file mode 100644 index 000000000..cd1c312a0 --- /dev/null +++ b/src/views/mes/wm/miscissue/index.vue @@ -0,0 +1,303 @@ + + + diff --git a/src/views/mes/wm/productionissue/index.vue b/src/views/mes/wm/productionissue/index.vue index bea6e3b39..1bb6663fb 100644 --- a/src/views/mes/wm/productionissue/index.vue +++ b/src/views/mes/wm/productionissue/index.vue @@ -187,7 +187,7 @@ import { WmProductionIssueApi, WmProductionIssueVO } from '@/api/mes/wm/producti import ProductionIssueForm from './ProductionIssueForm.vue' import { MesWmProductionIssueStatusEnum } from '@/views/mes/utils/constants' -defineOptions({ name: 'MesWmIssue' }) +defineOptions({ name: 'MesWmProductionIssue' }) const message = useMessage() // 消息弹窗 const { t } = useI18n() // 国际化