From bbc3ce1d60f46b5f60758d7e9c3fe6a2f5ac042a Mon Sep 17 00:00:00 2001 From: "zangch@mesnac.com" Date: Sun, 28 Sep 2025 16:41:34 +0800 Subject: [PATCH] =?UTF-8?q?feat(mes):=20=E6=96=B0=E5=A2=9E=E5=B0=8F?= =?UTF-8?q?=E6=97=B6=E4=BA=A7=E9=87=8F=E7=BB=9F=E8=AE=A1=E6=8A=A5=E8=A1=A8?= =?UTF-8?q?=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 在生产报表模块中增加小时产量统计接口调用 - 实现按小时分桶的产量数据展示与导出功能 - 新增小时产量趋势图可视化组件 - 添加小时产量统计分析表及数据透视逻辑 - 支持按工序、机台、班次等多维度筛选查询 - 提供Excel和CSV格式的数据导出功能 - 实现响应式图表与表格联动展示 - 添加日期范围限制与参数校验逻辑 --- src/api/mes/prodReport/index.ts | 25 ++ src/api/mes/prodReport/types.ts | 8 + src/views/mes/reportHourlyOutput/index.vue | 341 +++++++++++++++++++++ 3 files changed, 374 insertions(+) create mode 100644 src/api/mes/prodReport/types.ts create mode 100644 src/views/mes/reportHourlyOutput/index.vue diff --git a/src/api/mes/prodReport/index.ts b/src/api/mes/prodReport/index.ts index 512edb2..950917d 100644 --- a/src/api/mes/prodReport/index.ts +++ b/src/api/mes/prodReport/index.ts @@ -1,5 +1,7 @@ import request from '@/utils/request'; import { AxiosPromise } from 'axios'; +import { HourlyOutputByHourVO } from '@/api/mes/prodReport/types'; + /** * 生产计划完成率报表 @@ -132,3 +134,26 @@ export const yieldTrendByDate = (query): AxiosPromise<[]> => { params: query }); }; + +/** + * 小时产量统计(按结束时间小时分桶) + */ +export const hourlyOutputByHour = (query): AxiosPromise => { + return request({ + url: '/mes/prodReport/hourlyOutputByHour', + method: 'get', + params: query + }); +}; + +/** + * 小时产量统计导出 + */ +export const exportHourlyOutputByHour = (query) => { + return request({ + url: '/mes/prodReport/hourlyOutputByHour/export', + method: 'post', + params: query, + responseType: 'blob' + }); +}; diff --git a/src/api/mes/prodReport/types.ts b/src/api/mes/prodReport/types.ts new file mode 100644 index 0000000..831b078 --- /dev/null +++ b/src/api/mes/prodReport/types.ts @@ -0,0 +1,8 @@ +// 小时产量统计 VO +export interface HourlyOutputByHourVO { + productionDate: string; // 日期:YYYY-MM-DD + hourSlot: string; // 小时:HH + productionQuantity: number; // 产量 + qualifiedQuantity: number; // 合格 + unqualifiedQuantity: number; // 不合格 +} diff --git a/src/views/mes/reportHourlyOutput/index.vue b/src/views/mes/reportHourlyOutput/index.vue new file mode 100644 index 0000000..ad65b71 --- /dev/null +++ b/src/views/mes/reportHourlyOutput/index.vue @@ -0,0 +1,341 @@ + + + + + \ No newline at end of file