From 26bfafc358db27f8e05afbceb3196d6a6239d866 Mon Sep 17 00:00:00 2001 From: shaoleiliu-netizen123 <480188199@qq.com> Date: Fri, 14 Aug 2026 16:38:45 +0800 Subject: [PATCH] =?UTF-8?q?=E6=8F=90=E4=BA=A4=E4=BB=A3=E7=A0=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/api/device.ts | 7 ++ src/api/nccode.ts | 4 +- src/api/orderProcessPlan.ts | 4 + src/api/refillRecord.ts | 76 +++++++++++++ src/layout/index.vue | 3 + src/views/biz/orderProcessPlan/board.vue | 103 +++++++++++++++++- .../components/ProcessCard.vue | 34 +++++- src/views/biz/orderProject/index.vue | 7 +- 8 files changed, 229 insertions(+), 9 deletions(-) create mode 100644 src/api/refillRecord.ts diff --git a/src/api/device.ts b/src/api/device.ts index 3b06bf1..d9a1956 100644 --- a/src/api/device.ts +++ b/src/api/device.ts @@ -185,5 +185,12 @@ export const deviceApi = { method:"get", params }) + }, + + getById(deviceId:number) { + return request({ + url:`/biz/device/getByid/${deviceId}`, + method:"get" + }) } } \ No newline at end of file diff --git a/src/api/nccode.ts b/src/api/nccode.ts index c3778df..f433e3b 100644 --- a/src/api/nccode.ts +++ b/src/api/nccode.ts @@ -103,9 +103,9 @@ export function exportNccode(params:any) { } //加载全部NC代码 -export function loadAllNcCode() { +export function loadAllNcCode(id:number) { return request({ - url: `biz/ncCode/loadAllNcCode`, + url: `biz/ncCode/loadAllNcCode/${id}`, method: 'get' }) } diff --git a/src/api/orderProcessPlan.ts b/src/api/orderProcessPlan.ts index 121e686..ec44bb7 100644 --- a/src/api/orderProcessPlan.ts +++ b/src/api/orderProcessPlan.ts @@ -42,6 +42,8 @@ export interface OrderProcessPlan { workshopId?: number | null + leftoverMaterials?:number | null + } @@ -189,6 +191,8 @@ export interface OrderProcessPlanVO { currentOperNumber?: number + leftoverMaterials?:number + processList?: ProcessPlanItemVO[] } diff --git a/src/api/refillRecord.ts b/src/api/refillRecord.ts new file mode 100644 index 0000000..8662e41 --- /dev/null +++ b/src/api/refillRecord.ts @@ -0,0 +1,76 @@ +import { request } from '@/utils/request' + +// 补料记录 类型定义 +export interface RefillRecord { + id?: number + + processId?: number + + num?: number + + createTime?: string + + createBy?: number + +} + +// 补料记录 API +export const refillRecordApi = { + // 分页查询 + page(params: { page: number; pageSize: number; id?: number }) { + return request({ url: '/biz/refillRecord/page', method: 'get', params }) + }, + + // 获取详情 + detail(id: number) { + return request({ url: `/biz/refillRecord/${id}`, method: 'get' }) + }, + + // 新增 + create(data: RefillRecord) { + return request({ url: '/biz/refillRecord', method: 'post', data }) + }, + + // 修改 + update(data: RefillRecord) { + return request({ url: '/biz/refillRecord', method: 'put', data }) + }, + + // 删除 + delete(ids: number[]) { + return request({ url: `/biz/refillRecord/${ids.join(',')}`, method: 'delete' }) + }, + + // 导出 + export(params?: { ids?: number[]; id?: number }) { + const p: Record = {} + if (params?.ids?.length) p.ids = params.ids.join(',') + if (params?.id !== undefined && params?.id !== null) p.id = params.id + return request({ url: `/biz/refillRecord/export`, method: 'get', params: p, responseType: 'blob' }) + }, + + // 导入 + importData(file: File) { + const formData = new FormData() + formData.append('file', file) + return request<{ success: number; fail: number; errors: string[] }>({ + url: `/biz/refillRecord/import`, + method: 'post', + data: formData, + headers: { 'Content-Type': 'multipart/form-data' } + }) + }, + + // 下载导入模板 + downloadTemplate() { + return request({ url: `/biz/refillRecord/template`, method: 'get', responseType: 'blob' }) + }, + + //查询该工序补料数量 + getRefillNumByProcessId(processId:number){ + return request({ + url:`/biz/refillRecord/getRefillNumByProcessId/${processId}`, + method:"get" + }) + } +} diff --git a/src/layout/index.vue b/src/layout/index.vue index c68217e..e4f7325 100644 --- a/src/layout/index.vue +++ b/src/layout/index.vue @@ -390,6 +390,7 @@ import { noticeApi, chatApi, type SysNotice, type ChatMessage } from '@/api/mess import { iconMap as externalIconMap } from '@/utils/icons' import ErrorReportModal from "@/components/ErrorReportModal.vue"; import {errorNotificationApi} from "@/api/errorNotification.ts"; +import {deviceApi} from "@/api/device.ts"; const route = useRoute() const router = useRouter() @@ -612,6 +613,8 @@ function stripHtml(html: string | undefined): string { const notice = ref( {}) async function handleNoticeClick(item: SysNotice) { notice.value = item + const res = await deviceApi.getById(Number(notice.value.deviceId)) + notice.value.deviceName = res //异常填报直接弹窗 showErrorReportModal.value = true // 标记已读 diff --git a/src/views/biz/orderProcessPlan/board.vue b/src/views/biz/orderProcessPlan/board.vue index 528be92..bbf54d4 100644 --- a/src/views/biz/orderProcessPlan/board.vue +++ b/src/views/biz/orderProcessPlan/board.vue @@ -157,6 +157,7 @@ @outsource="(p) => openOutsource(order, p)" @view-model="(p) => openPlmModel(order, p)" @submit-detail = "(p) => openDetailModel(order,p)" + @handleLeftoverMaterial = "(p) => openLeftoverMaterialModel(order,p)" /> @@ -608,11 +609,69 @@ + + + + + + + 物料编码: + {{leftMaterialOrder.materialCode}} + + + 物料名称: + {{leftMaterialOrder.materialName}} + + + + + 工序编号: + {{leftMaterialPlan.processCode}} + + + 工序名称: + {{leftMaterialPlan.processName}} + + + + + 可补料数: + {{leftMaterialPlan.enablefill}} + + + + + + + + + + + + + + + +