Files
MES/yawei-mes/.tasks/2026-01-17_v1.6.014_生产报表.md
2026-04-02 10:39:03 +08:00

12 KiB
Raw Blame History

生产报表模块设计文档

版本信息

  • 版本号: v1.6.014
  • 日期: 2026-01-17
  • 开发者: 周启威

一、模块概述

1.1 功能目标

生产报表模块用于统计和展示生产相关的各类数据报表,帮助管理人员了解生产进度、产量、合格率、工时等关键指标。

1.2 主要功能

  1. 日报表 - 按日统计生产数据(产量、合格率、报工人员等)
  2. 月报表 - 按月汇总生产数据
  3. 产量统计 - 按产品/工序/车间/工位统计产量
  4. 合格率分析 - 统计各维度的合格率数据
  5. 工时统计 - 统计员工/设备工时
  6. 导出功能 - 支持Excel导出

二、数据库设计

2.1 涉及的现有表

表名 说明
pro_report 报工单表
pro_workorder 生产工单表
pro_workorder_entry 工单分录表
md_material 物料表
md_workshop 车间表
md_station 工位表
sys_user 用户表

2.2 报表视图(可选,用于优化查询性能)

暂不创建视图直接使用SQL查询聚合数据。

2.3 数据来源说明

2.3.1 生产数据来源pro_report表

数据项 来源表 字段 说明
报工数量 pro_report report_quantity 每次报工的数量
合格数量 pro_report qualified_quantity 报工合格数量
不合格数量 pro_report unqualified_quantity 报工不合格数量
报工时间 pro_report report_time 用于按日期统计
报工人 pro_report report_user_id, report_user_name 用于按人员统计
车间 pro_report workshop_id, workshop_name 用于按车间统计
工位 pro_report station_id, station_name 用于按工位统计
设备 pro_report equipment_id, equipment_name 用于按设备统计
班次 pro_report shift_name 用于按班次统计
报工时段 pro_report report_period_start, report_period_end 用于工时计算
停机时间 pro_report downtime_minutes 用于设备利用率计算

2.3.2 质检数据来源FIIH新版质检

数据项 来源表 字段 说明
质检总数 fiih_qc_data COUNT(id) 质检记录总条数
不合格数 fiih_qc_data fiih_qc_result 统计结论为"不合格"的条数
合格数 fiih_qc_data 计算值 总数 - 不合格数
质检结论 fiih_qc_data fiih_qc_result 合格/不合格
不良原因 fiih_qc_data fiih_bad_reason 不合格原因
对象名称 fiih_qc_data fiih_object_name 质检对象
任务名称 fiih_qc_data fiih_task_name 质检任务
环节名称 fiih_qc_data fiih_link_name 质检环节
采集时间 fiih_qc_data fiih_collect_time 用于按日期统计
任务状态 fiih_qc_data fiih_status 1进行中 2完成 3作废

2.3.3 质检配置来源

数据项 来源表 字段 说明
配置信息 fiih_qc_config 多字段 质检项配置
分项配置 fiih_qc_config fiih_config_ch0~23 24个通道的JSON配置
负责人 fiih_qc_config fiih_leader_id, fiih_leader_name 质检负责人

2.3.4 关联数据来源

数据项 来源表 关联方式 说明
产品信息 pro_workorder 通过 work_order_id 关联 获取物料名称、规格型号等
工序信息 pro_workorder_entry 通过 work_order_entry_id 关联 获取工序名称、工序顺序
工单信息 pro_workorder 通过 work_order_id 关联 获取工单编号、批次号等
客户信息 sal_order 通过工单关联销售订单 获取客户名称

2.3.5 统计计算逻辑

指标 计算公式 数据来源
总产量 SUM(report_quantity) pro_report
生产合格率 SUM(qualified_quantity) / SUM(report_quantity) * 100% pro_report
报工次数 COUNT(id) pro_report
工时(分钟) SUM(TIMESTAMPDIFF(MINUTE, report_period_start, report_period_end)) pro_report
有效工时 工时 - 停机时间 pro_report
设备利用率 有效工时 / 总工时 * 100% pro_report
质检合格率 (总条数 - 不合格条数) / 总条数 * 100% fiih_qc_data
质检总数 COUNT(id) fiih_qc_data
不合格数 COUNT(id) WHERE fiih_qc_result = '不合格' fiih_qc_data

2.4 首页Dashboard质检数据修改

2.4.1 当前实现(需修改)

  • 文件: DashboardMapper.xml
  • 方法: selectProductQualityRate
  • 数据源: qc_report_quality 表(旧版质检)

2.4.2 修改方案

将首页质检合格率改为从 fiih_qc_data 表读取:

SELECT
    COUNT(*) AS totalCount,
    SUM(CASE WHEN fiih_qc_result = '不合格' THEN 1 ELSE 0 END) AS unqualifiedCount,
    COUNT(*) - SUM(CASE WHEN fiih_qc_result = '不合格' THEN 1 ELSE 0 END) AS qualifiedCount,
    ROUND((COUNT(*) - SUM(CASE WHEN fiih_qc_result = '不合格' THEN 1 ELSE 0 END)) / COUNT(*) * 100, 2) AS rate
FROM fiih_qc_data
WHERE fiih_status != 3  -- 排除作废的记录

三、接口设计

3.1 后端接口

3.1.1 日报表查询

GET /statement/productionStatement/dailyReport

请求参数:

参数名 类型 必填 说明
reportDate String 报工日期 (yyyy-MM-dd),默认当天
workshopId Long 车间ID
stationId Long 工位ID
materialId Long 产品ID

返回数据:

{
  "code": 200,
  "data": {
    "summary": {
      "totalReportQuantity": 1000,
      "totalQualifiedQuantity": 980,
      "totalUnqualifiedQuantity": 20,
      "qualifiedRate": 98.0,
      "reportCount": 50
    },
    "byWorkshop": [...],
    "byMaterial": [...],
    "byUser": [...]
  }
}

3.1.2 月报表查询

GET /statement/productionStatement/monthlyReport

请求参数:

参数名 类型 必填 说明
yearMonth String 年月 (yyyy-MM),默认当月
workshopId Long 车间ID

返回数据:

{
  "code": 200,
  "data": {
    "summary": {...},
    "dailyTrend": [...],
    "byMaterial": [...]
  }
}

3.1.3 产量统计

GET /statement/productionStatement/outputStatistics

请求参数:

参数名 类型 必填 说明
startDate String 开始日期
endDate String 结束日期
groupBy String 分组维度: material/workshop/station/user
workshopId Long 车间ID

3.1.4 合格率分析

GET /statement/productionStatement/qualifiedRateAnalysis

3.1.5 工时统计

GET /statement/productionStatement/workHourStatistics

3.1.6 导出报表

GET /statement/productionStatement/export

四、前端设计

4.1 目录结构

mes-ui/src/
├── api/mes/statement/
│   └── productionStatement.js          # API接口
└── views/mes/statement/
    └── productionStatement/
        └── index.vue                    # 生产报表主页面

4.2 页面布局

4.2.1 主页面结构

┌─────────────────────────────────────────────────────────────┐
│  筛选条件区域                                                 │
│  [日期范围] [车间] [工位] [产品] [查询] [重置] [导出]          │
├─────────────────────────────────────────────────────────────┤
│  Tab切换: [日报表] [月报表] [产量统计] [合格率分析] [工时统计]   │
├─────────────────────────────────────────────────────────────┤
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  汇总卡片区域                                         │   │
│  │  [总产量] [合格数] [不合格数] [合格率] [报工次数]       │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  图表区域 (ECharts)                                   │   │
│  │  - 日报表: 按小时产量柱状图                            │   │
│  │  - 月报表: 日趋势折线图                               │   │
│  │  - 产量统计: 分组柱状图/饼图                          │   │
│  │  - 合格率: 趋势图                                     │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
│  ┌─────────────────────────────────────────────────────┐   │
│  │  数据表格区域                                         │   │
│  │  - 明细数据列表                                       │   │
│  └─────────────────────────────────────────────────────┘   │
│                                                             │
└─────────────────────────────────────────────────────────────┘

五、后端实现

5.1 文件清单

文件路径 说明
cn.sourceplan.statement.controller.ProductionStatementController 控制器
cn.sourceplan.statement.service.IProductionStatementService 服务接口
cn.sourceplan.statement.service.impl.ProductionStatementServiceImpl 服务实现
cn.sourceplan.statement.mapper.ProductionStatementMapper Mapper接口
mapper/statement/ProductionStatementMapper.xml Mapper XML
cn.sourceplan.statement.domain.vo.DailyReportVO 日报表VO
cn.sourceplan.statement.domain.vo.MonthlyReportVO 月报表VO
cn.sourceplan.statement.domain.vo.OutputStatisticsVO 产量统计VO
cn.sourceplan.statement.domain.query.ProductionStatementQuery 查询参数

六、菜单与权限

6.1 菜单配置

  • 父菜单: 报表管理 (已存在)
  • 菜单名称: 生产报表
  • 路由地址: statement/productionStatement
  • 组件路径: mes/statement/productionStatement/index
  • 权限标识: statement:productionStatement:list

6.2 权限配置

权限标识 说明
statement:productionStatement:list 查询生产报表
statement:productionStatement:export 导出生产报表

七、开发计划

7.1 任务分解

序号 任务 预估工时
1 后端Controller/Service/Mapper 4h
2 前端页面开发 4h
3 图表集成 2h
4 导出功能 1h
5 测试与调优 1h

7.2 里程碑

  • 后端接口完成
  • 前端页面完成
  • 联调测试通过
  • 发布上线

八、SQL脚本

详见: .sql/2026-01-17_v1.6.014_周启威_生产报表.sql