From 163e722e61d351a0f138beb2eb427e699d18df33 Mon Sep 17 00:00:00 2001 From: YunaiV Date: Sun, 5 Apr 2026 23:55:59 +0800 Subject: [PATCH] =?UTF-8?q?=E2=9C=A8=20feat(statistics):=20=E6=96=B0?= =?UTF-8?q?=E5=A2=9E=20MES=20=E9=A6=96=E9=A1=B5=E7=BB=9F=E8=AE=A1=E5=8A=9F?= =?UTF-8?q?=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit 实现了 MES 首页的统计功能,包括工单状态分布、生产趋势和汇总统计。新增了相关的 VO 类、服务接口及实现,支持从数据库获取统计数据并返回给前端。 - 添加 MesHomeStatisticsController 控制器 - 实现 MesHomeStatisticsService 接口及其实现 - 新增数据访问层 Mapper 和 XML 配置 - 定义响应 VO 类以适应前端需求 --- src/api/mes/home/index.ts | 51 ++++ src/views/mes/home/index.vue | 565 +++++++++++++++++++++++++++++++++++ 2 files changed, 616 insertions(+) create mode 100644 src/api/mes/home/index.ts create mode 100644 src/views/mes/home/index.vue diff --git a/src/api/mes/home/index.ts b/src/api/mes/home/index.ts new file mode 100644 index 000000000..a92d19487 --- /dev/null +++ b/src/api/mes/home/index.ts @@ -0,0 +1,51 @@ +import request from '@/config/axios' + +// MES 首页汇总统计 VO +export interface MesHomeSummaryVO { + workOrderActiveCount: number + workOrderPrepareCount: number + workOrderFinishedCount: number + todayOutput: number + yesterdayOutput: number + todayQualifiedQuantity: number + todayUnqualifiedQuantity: number + machineryTotal: number + machineryProducing: number + machineryStop: number + machineryMaintenance: number + andonActiveCount: number + repairActiveCount: number +} + +// MES 工单状态分布 VO +export interface MesHomeWorkOrderStatusVO { + status: number + statusName: string + count: number +} + +// MES 生产趋势 VO +export interface MesHomeProductionTrendVO { + date: string + quantity: number + qualifiedQuantity: number + unqualifiedQuantity: number +} + +// MES 首页统计 API +export const MesHomeStatisticsApi = { + // 获得首页汇总统计 + getHomeSummary: async (): Promise => { + return await request.get({ url: `/mes/home-statistics/summary` }) + }, + + // 获得工单状态分布 + getWorkOrderStatusDistribution: async (): Promise => { + return await request.get({ url: `/mes/home-statistics/work-order-status` }) + }, + + // 获得生产趋势 + getProductionTrend: async (days?: number): Promise => { + return await request.get({ url: `/mes/home-statistics/production-trend`, params: { days } }) + } +} diff --git a/src/views/mes/home/index.vue b/src/views/mes/home/index.vue new file mode 100644 index 000000000..e88e265a5 --- /dev/null +++ b/src/views/mes/home/index.vue @@ -0,0 +1,565 @@ + + + + +