You cannot select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

33 KiB

Board4 看板真实数据接口实现方案

一、接口概述

1.1 接口列表

序号 接口路径 请求方式 功能描述 实体类
1 /board4/productionTotal GET 产量统计(年/月/日累计) Board4ProductionTotalVo
2 /board4/orderStatistics GET 工单统计(计划/完成/差异/完成率) Board4OrderStatisticsVo
3 /board4/orderProgressList GET 工单进度列表 Board4OrderProgressVo
4 /board4/deviceStatus GET 设备状态统计 Board4DeviceStatusVo
5 /board4/alarmInfo GET 最新报警信息 Board4AlarmInfoVo
6 /board4/repairAnalysisList GET 维修分析列表(按设备聚合) Board4RepairAnalysisVo
7 /board4/repairTrendList GET 报修趋势列表 Board4RepairTrendVo
8 /board4/qualityStatistics GET 质量统计 Board4QualityStatisticsVo
9 /board4/qualityTraceList GET 质量追溯列表 Board4QualityTraceVo
10 /board4/deviceProductionList GET 设备分析/产量列表 Board4DeviceProductionVo

1.2 前端页面

  • 页面位置: zs_aucma-mes-ui/src/views/board/board4/index.vue
  • 前端API: zs_aucma-mes-ui/src/api/board/board4.js

二、后端文件清单

2.1 VO实体类10个

序号 文件路径 说明
1 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4ProductionTotalVo.java 产量统计
2 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4OrderStatisticsVo.java 工单统计
3 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4OrderProgressVo.java 工单进度
4 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4DeviceStatusVo.java 设备状态
5 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4AlarmInfoVo.java 报警信息
6 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4RepairAnalysisVo.java 维修分析
7 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4RepairTrendVo.java 报修趋势
8 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4QualityStatisticsVo.java 质量统计
9 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4QualityTraceVo.java 质量追溯
10 aucma-report/src/main/java/com/aucma/report/domain/vo/Board4DeviceProductionVo.java 设备产量

2.2 后端核心文件4个

序号 文件类型 文件路径
1 Mapper接口 aucma-report/src/main/java/com/aucma/report/mapper/Board4Mapper.java
2 Mapper XML aucma-report/src/main/resources/mapper/report/Board4Mapper.xml
3 Service接口 aucma-report/src/main/java/com/aucma/report/service/IBoard4Service.java
4 Service实现 aucma-report/src/main/java/com/aucma/report/service/impl/Board4ServiceImpl.java
5 Controller aucma-report/src/main/java/com/aucma/report/controller/Board4Controller.java

2.3 前端文件

序号 文件类型 文件路径
1 API文件 zs_aucma-mes-ui/src/api/board/board4.js

三、实体类定义

3.1 Board4ProductionTotalVo - 产量统计

public class Board4ProductionTotalVo {
    /** 年累计产量去年数据来源BASE_ORDERINFO */
    private Long yearTotal;
    
    /** 月累计产量当月数据来源BASE_ORDERINFO */
    private Long monthTotal;
    
    /** 日累计产量当天数据来源BASE_DEVICE_PARAM_VALPARAM_NAME='机台状态-实际产出数量' */
    private Long dayTotal;
}

3.2 Board4OrderStatisticsVo - 工单统计

public class Board4OrderStatisticsVo {
    /** 今日计划数 */
    private Long planCount;
    
    /** 今日完成数 */
    private Long completeCount;
    
    /** 今日差异数(计划-完成) */
    private Long diffCount;
    
    /** 今日完成率(百分比,不含% */
    private String completeRate;
}

3.3 Board4OrderProgressVo - 工单进度

public class Board4OrderProgressVo {
    /** 型号/物料名称 */
    private String materialName;
    
    /** 计划数 */
    private Long planCount;
    
    /** 完成数 */
    private Long completeCount;
    
    /** 差异数 */
    private Long diffCount;
    
    /** 执行进度(如 90% */
    private String progress;
}

3.4 Board4DeviceStatusVo - 设备状态

public class Board4DeviceStatusVo {
    /** 设备正常数DEVICE_STATUS='0' */
    private Long normalCount;
    
    /** 设备告警数DEVICE_STATUS='1' */
    private Long alarmCount;
    
    /** 设备停机数DEVICE_STATUS='2' */
    private Long stopCount;
    
    /** 设备总数 */
    private Long totalCount;
    
    /** 总维修次数 */
    private Long repairCount;
}

3.5 Board4AlarmInfoVo - 报警信息

public class Board4AlarmInfoVo {
    /** 是否有报警 */
    private Boolean hasAlarm;
    
    /** 报警设备名称 */
    private String deviceName;
    
    /** 报警原因 */
    private String alarmReason;
    
    /** 报警时间 */
    private String alarmTime;
}

3.6 Board4RepairAnalysisVo - 维修分析

public class Board4RepairAnalysisVo {
    /** 设备名称 */
    private String deviceName;
    
    /** 占比(百分比数值) */
    private Long percent;
    
    /** 维修次数 */
    private Long repairCount;
}

3.7 Board4RepairTrendVo - 报修趋势

public class Board4RepairTrendVo {
    /** 时间(小时,如 08:00 */
    private String timeHour;
    
    /** 报修次数 */
    private Long repairCount;
}

3.8 Board4QualityStatisticsVo - 质量统计

public class Board4QualityStatisticsVo {
    /** 合格数TREATMENT_MEASURE='3' */
    private Long qualifiedCount;
    
    /** 不合格数TREATMENT_MEASURE='1' */
    private Long unqualifiedCount;
}

3.9 Board4QualityTraceVo - 质量追溯

public class Board4QualityTraceVo {
    /** 产品名/物料名称 */
    private String materialName;
    
    /** 合格率(百分比数值) */
    private Long passRate;
    
    /** 合格上限默认100 */
    private Long passLimit;
}

3.10 Board4DeviceProductionVo - 设备产量

public class Board4DeviceProductionVo {
    /** 设备名称 */
    private String deviceName;
    
    /** 实际产量当天工艺参数PARAM_NAME='机台状态-实际产出数量' */
    private Long production;
}

四、数据源与业务逻辑

4.1 接口数据源映射表

| 接口 | 数据源表 | 业务逻辑 | | productionTotal | BASE_ORDERINFO, BASE_DEVICE_PARAM_VAL | 年累计=去年SUM(COMPLETE_AMOUNT),月累计=当月SUM(COMPLETE_AMOUNT),日累计=当天PARAM_NAME='机台状态-实际产出数量'最新值汇总(按设备取最新一条) | | orderStatistics | BASE_ORDERINFO | 当天SUM(ORDER_AMOUNT)和SUM(COMPLETE_AMOUNT),差异=计划-完成,完成率=完成/计划 | | orderProgressList | BASE_ORDERINFO | 当天工单列表,进度=完成/计划百分比并带% | | deviceStatus | BASE_DEVICELEDGER, DMS_BILLS_FAULT_INSTANCE | IS_FLAG=0有效设备按DEVICE_STATUS分组统计+总维修次数 | | alarmInfo | RECORD_ALARM_DEVICE | IS_FLAG=0的最新一条报警记录时间格式HH24:MI:SS | | repairAnalysisList | DMS_BILLS_FAULT_INSTANCE, BASE_DEVICELEDGER | 按设备聚合故障次数按次数倒序取TOP10 | | repairTrendList | DMS_BILLS_FAULT_INSTANCE | 按小时统计当天报修次数 | | qualityStatistics | REPORT_QUALITY_INSPECTION | 当天TREATMENT_MEASURE='3'和'1'分组统计 | | qualityTraceList | REPORT_QUALITY_INSPECTION | 近7天按产品统计合格率按合格率倒序取TOP10 | | deviceProductionList | BASE_DEVICE_PARAM_VAL, BASE_DEVICELEDGER | 仅生产设备DEVICE_TYPE='1'且IS_FLAG=0取当天每台设备最新产出值 |

4.2 关键SQL说明

4.2.1 日累计产量BASE_DEVICE_PARAM_VAL

SELECT NVL(SUM(TO_NUMBER(PARAM_VALUE)), 0) -- 汇总当天实际产出数量
FROM (
    SELECT DEVICE_CODE, PARAM_VALUE,
           ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) AS RN -- 每台设备取最新记录
    FROM BASE_DEVICE_PARAM_VAL
    WHERE PARAM_NAME = '机台状态-实际产出数量' -- 固定参数名称
      AND TO_CHAR(COLLECT_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') -- 当天数据
)
WHERE RN = 1 -- 仅保留最新一条

业务逻辑说明

  • 使用 PARAM_NAME 而非 PARAM_CODEPARAM_CODE 可能因不同设备而变化,但 PARAM_NAME 是固定的,始终为 "机台状态-实际产出数量"
  • 窗口函数作用ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) 按设备分组,按采集时间倒序排列,取 RN=1 即每台设备当天最新的一条记录
  • 汇总逻辑:将所有设备的最新实际产出数量求和,得到日累计产量

4.2.2 维修分析(按设备聚合)

SELECT d.DEVICE_NAME AS deviceName, -- 设备名称
       COUNT(*) AS repairCount, -- 设备故障次数
       ROUND(COUNT(*) * 100.0 / NULLIF((SELECT COUNT(*) FROM DMS_BILLS_FAULT_INSTANCE WHERE IS_FLAG = 1), 0), 0) AS percent -- 次数占比
FROM DMS_BILLS_FAULT_INSTANCE f
LEFT JOIN BASE_DEVICELEDGER d ON f.DEVICE_ID = d.OBJ_ID -- 关联设备台账
WHERE f.IS_FLAG = 1 AND f.DEVICE_ID IS NOT NULL -- 只统计有效故障
GROUP BY d.OBJ_ID, d.DEVICE_NAME -- 按设备聚合
ORDER BY repairCount DESC -- 按次数降序

4.2.3 设备产量列表

SELECT d.DEVICE_NAME AS deviceName, -- 设备名称
       NVL(TO_NUMBER(p.PARAM_VALUE), 0) AS production -- 当天实际产出
FROM BASE_DEVICELEDGER d
LEFT JOIN (
    SELECT DEVICE_CODE, PARAM_VALUE
    FROM (
        SELECT DEVICE_CODE, PARAM_VALUE,
               ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) AS RN -- 每台设备最新记录
        FROM BASE_DEVICE_PARAM_VAL
        WHERE PARAM_NAME = '机台状态-实际产出数量' -- 固定参数名称
          AND TO_CHAR(COLLECT_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD') -- 当天数据
    )
    WHERE RN = 1 -- 仅保留最新一条
) p ON d.DEVICE_CODE = p.DEVICE_CODE -- 关联设备编码
WHERE d.IS_FLAG = 0 AND d.DEVICE_TYPE = '1' -- 仅生产设备
ORDER BY production DESC -- 按产量降序

业务逻辑说明

  • 关联查询将设备台账表BASE_DEVICELEDGER与设备工艺参数表BASE_DEVICE_PARAM_VAL通过 DEVICE_CODE 关联
  • 筛选条件PARAM_NAME = '机台状态-实际产出数量' 获取实际产出数量参数
  • 设备过滤IS_FLAG = 0NUMBER类型有效设备DEVICE_TYPE = '1'(生产设备)
  • 排序逻辑:按产量降序排列,产量高的设备排在前面

4.3 服务层返回规则补充

  • 所有统计类数值默认返回0避免空值导致前端异常
  • 完成率等比例字段返回的是数字字符串,不包含“%”
  • 工单进度列表的 progress 字段为带“%”的字符串(如 90%
  • 最新报警无数据时hasAlarm=false其他字段为空字符串

五、前端API

5.1 API文件

文件: zs_aucma-mes-ui/src/api/board/board4.js

import request from '@/utils/request'

// 获取产量统计(年累计、月累计、日累计)
export function getProductionTotal() {
  return request({ url: '/board4/productionTotal', method: 'get' })
}

// 获取今日工单统计
export function getOrderStatistics() {
  return request({ url: '/board4/orderStatistics', method: 'get' })
}

// 获取今日工单进度列表
export function getOrderProgressList() {
  return request({ url: '/board4/orderProgressList', method: 'get' })
}

// 获取设备状态统计
export function getDeviceStatus() {
  return request({ url: '/board4/deviceStatus', method: 'get' })
}

// 获取最新报警信息
export function getAlarmInfo() {
  return request({ url: '/board4/alarmInfo', method: 'get' })
}

// 获取维修分析列表
export function getRepairAnalysisList() {
  return request({ url: '/board4/repairAnalysisList', method: 'get' })
}

// 获取报修趋势列表
export function getRepairTrendList() {
  return request({ url: '/board4/repairTrendList', method: 'get' })
}

// 获取质量统计
export function getQualityStatistics() {
  return request({ url: '/board4/qualityStatistics', method: 'get' })
}

// 获取质量追溯列表
export function getQualityTraceList() {
  return request({ url: '/board4/qualityTraceList', method: 'get' })
}

// 获取设备分析/产量列表
export function getDeviceProductionList() {
  return request({ url: '/board4/deviceProductionList', method: 'get' })
}

六、数据库表结构参考

6.1 BASE_ORDERINFO工单表

字段 类型 说明
OBJ_ID NUMBER 主键
MATERIAL_NAME VARCHAR2 物料名称
ORDER_AMOUNT NUMBER 订单数量
COMPLETE_AMOUNT NUMBER 完成数量
BEGIN_DATE DATE 计划开始日期

6.2 BASE_DEVICE_PARAM_VAL设备工艺参数表

字段 类型 说明
PARAM_NAME VARCHAR2 参数名称(固定值,如 "机台状态-实际产出数量"
DEVICE_CODE VARCHAR2 设备编号
PARAM_VALUE VARCHAR2 参数值
COLLECT_TIME DATE 采集时间

6.3 BASE_DEVICELEDGER设备台账表)

字段 类型 说明
OBJ_ID NUMBER 主键标识(用于关联查询)
DEVICE_CODE VARCHAR2(64) 设备编号
DEVICE_NAME VARCHAR2(64) 设备名称
DEVICE_STATUS NUMBER(1,0) 设备状态0=使用1=停用2=报废)
DEVICE_TYPE VARCHAR2(32) 设备类型1=生产设备2=计量设备)
IS_FLAG NUMBER(1,0) 是否标识0=有效)

重要说明

  • DEVICE_STATUSIS_FLAGNUMBER(1,0) 类型SQL查询时不加引号
  • 关联查询使用 OBJ_ID 作为主键,不是 DEVICE_ID

6.4 RECORD_ALARM_DEVICE设备告警记录表

字段 类型 说明
OBJ_ID NUMBER(38,0) 主键
DEVICE_CODE VARCHAR2(128) 设备编号
DEVICE_NAME VARCHAR2(128) 设备名称
DEVICE_TYPE VARCHAR2(32) 设备类型
ALARM_INFO VARCHAR2(255) 报警信息
ALARM_TIME DATE 报警时间
REMARK VARCHAR2(255) 备注
IS_FLAG NUMBER 是否标识0=有效)
CREATED_BY VARCHAR2(32) 创建人
CREATED_TIME DATE 创建时间
BATCH_ID VARCHAR2(128) 批次ID
PARAM_CODE VARCHAR2(32) 参数编码
PARAM_VALUE VARCHAR2(32) 参数值

报警信息来源:使用 RECORD_ALARM_DEVICE 表,字段 ALARM_INFOALARM_TIME,并以 IS_FLAG = 0 过滤有效记录

6.5 DMS_BILLS_FAULT_INSTANCE故障报修工单表


七、接口返回示例

7.1 产量统计

{ "code": 200, "data": { "yearTotal": 125000, "monthTotal": 12500, "dayTotal": 27218 } }

7.2 工单统计

{ "code": 200, "data": { "planCount": 1000, "completeCount": 850, "diffCount": 150, "completeRate": "85" } }

7.3 维修分析列表

{ "code": 200, "data": [{ "deviceName": "YZM-01", "percent": 40, "repairCount": 10 }] }

7.4 设备产量列表

{ "code": 200, "data": [{ "deviceName": "YZM-02", "production": 27218 }] }

八、注意事项

  1. 重要:使用 PARAM_NAME 而非 PARAM_CODE

    • 错误写法:WHERE PARAM_CODE = '19'
    • 正确写法:WHERE PARAM_NAME = '机台状态-实际产出数量'
    • 原因:PARAM_CODE 可能因不同设备而变化,但 PARAM_NAME 是固定的
  2. 设备状态映射NUMBER类型不加引号0=正常/使用1=告警/停用2=停机/报废

  3. 重要BASE_DEVICELEDGER 表字段类型

    • OBJ_IDNUMBER 主键,用于关联 DMS_BILLS_FAULT_INSTANCE.DEVICE_ID
    • DEVICE_STATUSNUMBER(1,0),查询时使用 = 0,不是 = '0'
    • IS_FLAGNUMBER(1,0),查询时使用 = 0,不是 = '0'
  4. 质检结果映射TREATMENT_MEASURE='3'=合格,'1'=不合格

  5. 日累计产量查询逻辑

    • 使用窗口函数 ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) 取每台设备当天最新的一条记录
    • 避免重复计算,确保每台设备只取一个值
    • 将所有设备的最新值求和得到日累计产量
  6. 维修分析:使用 DMS_BILLS_FAULT_INSTANCE 故障报修表,通过 DEVICE_ID = BASE_DEVICELEDGER.OBJ_ID 关联设备表

  7. 报警信息来源:使用 RECORD_ALARM_DEVICE 表,字段 ALARM_INFOALARM_TIME,并以 IS_FLAG = 0 过滤有效记录


九、变更记录

日期 版本 变更内容 作者
2026-01-21 1.0 初始版本 YinQ
2026-01-21 2.0 重构为独立接口模式,一个接口一个实体类 YinQ
2026-01-21 2.1 修复产量查询逻辑,使用 PARAM_NAME 替代 PARAM_CODE YinQ
2026-01-21 2.2 修复设备表结构BASE_DEVICELEDGER 字段类型修正DEVICE_STATUS/IS_FLAG 为 NUMBER 类型 YinQ
2026-01-21 2.3 修复报警表来源:使用 RECORD_ALARM_DEVICE 替代 DMS_RECORD_ALARM_INFO YinQ

Board5 看板真实数据接口实现方案

一、接口概述

1.1 接口列表

序号 接口路径 请求方式 功能描述 实体类
1 /board5/orderWorkStatistics GET 工单统计(总数、已完成、完成率、停机) Board5OrderWorkStatisticsVo
2 /board5/repairTimeStatistics GET 维修时间统计(平均响应时间、平均维修时间) Board5RepairTimeStatisticsVo
3 /board5/maintStatistics GET 保养执行情况统计 Board5MaintStatisticsVo
4 /board5/inspectStatistics GET 巡检执行情况统计 Board5InspectStatisticsVo
5 /board5/deviceStatusDistribution GET 设备状态分布 Board5DeviceStatusDistributionVo
6 /board5/faultSourceDistribution GET 故障来源分布 Board5FaultSourceDistributionVo
7 /board5/faultTrendList GET 故障数量曲线近30天 Board5FaultTrendVo
8 /board5/productionTop5 GET 产量机台TOP5 Board5ProductionTopVo

1.2 前端页面

  • 页面位置: zs_aucma-mes-ui/src/views/board/board5/index.vue
  • 前端API: zs_aucma-mes-ui/src/api/board/board5.js

二、后端文件清单

2.1 VO实体类8个

序号 文件路径 说明
1 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5OrderWorkStatisticsVo.java 工单统计
2 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5RepairTimeStatisticsVo.java 维修时间统计
3 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5MaintStatisticsVo.java 保养执行情况
4 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5InspectStatisticsVo.java 巡检执行情况
5 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5DeviceStatusDistributionVo.java 设备状态分布
6 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5FaultSourceDistributionVo.java 故障来源分布
7 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5FaultTrendVo.java 故障数量曲线
8 aucma-report/src/main/java/com/aucma/report/domain/vo/Board5ProductionTopVo.java 产量机台TOP5

2.2 后端核心文件5个

序号 文件类型 文件路径
1 Mapper接口 aucma-report/src/main/java/com/aucma/report/mapper/Board5Mapper.java
2 Mapper XML aucma-report/src/main/resources/mapper/report/Board5Mapper.xml
3 Service接口 aucma-report/src/main/java/com/aucma/report/service/IBoard5Service.java
4 Service实现 aucma-report/src/main/java/com/aucma/report/service/impl/Board5ServiceImpl.java
5 Controller aucma-report/src/main/java/com/aucma/report/controller/Board5Controller.java

2.3 前端文件

序号 文件类型 文件路径
1 API文件 zs_aucma-mes-ui/src/api/board/board5.js

三、实体类定义

3.1 Board5OrderWorkStatisticsVo - 工单统计

public class Board5OrderWorkStatisticsVo {
    /** 工单总数 */
    private Long totalCount;
    
    /** 已完成数量 */
    private Long completeCount;
    
    /** 完成率(百分比数值,不含% */
    private String completeRate;
    
    /** 停机工单数量 */
    private Long stopCount;
}

3.2 Board5RepairTimeStatisticsVo - 维修时间统计

public class Board5RepairTimeStatisticsVo {
    /** 平均响应时间(分钟) */
    private String avgResponseTime;
    
    /** 平均维修时间(小时) */
    private String avgRepairTime;
}

3.3 Board5MaintStatisticsVo - 保养执行情况

public class Board5MaintStatisticsVo {
    /** 计划保养数量 */
    private Long planCount;
    
    /** 已保养数量MAINT_STATUS=3 */
    private Long completeCount;
    
    /** 待保养数量MAINT_STATUS=1 */
    private Long waitingCount;
    
    /** 待保养比例 */
    private String waitingRate;
    
    /** 保养中数量MAINT_STATUS=2 */
    private Long doingCount;
    
    /** 保养中比例 */
    private String doingRate;
    
    /** 待验证数量MAINT_STATUS=4 */
    private Long verifyCount;
    
    /** 待验证比例 */
    private String verifyRate;
    
    /** 设备保养完成率 */
    private String completeRate;
}

3.4 Board5InspectStatisticsVo - 巡检执行情况

public class Board5InspectStatisticsVo {
    /** 应检设备数量 */
    private Long deviceCount;
    
    /** 设备巡检完成率 */
    private String completeRate;
}

3.5 Board5DeviceStatusDistributionVo - 设备状态分布

public class Board5DeviceStatusDistributionVo {
    /** 实验设备占比 */
    private Long experimentPercent;
    
    /** 未检设备占比 */
    private Long uncheckedPercent;
    
    /** 正常设备占比 */
    private Long normalPercent;
    
    /** 异常设备占比 */
    private Long abnormalPercent;
}

3.6 Board5FaultSourceDistributionVo - 故障来源分布

public class Board5FaultSourceDistributionVo {
    /** 维护故障占比FAULT_SOURCE_TYPE=1 */
    private Long maintainPercent;
    
    /** 运行故障占比FAULT_SOURCE_TYPE=2,3 */
    private Long runningPercent;
    
    /** 自然故障占比FAULT_SOURCE_TYPE=9 */
    private Long naturalPercent;
}

3.7 Board5FaultTrendVo - 故障数量曲线

public class Board5FaultTrendVo {
    /** 日期(格式:日,如 01、02... */
    private String dateValue;
    
    /** 故障数量 */
    private Long faultCount;
}

3.8 Board5ProductionTopVo - 产量机台TOP5

public class Board5ProductionTopVo {
    /** 设备名称 */
    private String deviceName;
    
    /** 百分比(相对于最大产量) */
    private Long percent;
    
    /** 产量 */
    private Long production;
}

四、数据源与业务逻辑

4.1 接口数据源映射表

接口 数据源表 业务逻辑
orderWorkStatistics BASE_ORDERINFO 统计工单总数、已完成(EXECUTION_STATUS='COMPLETED')、停机(EXECUTION_STATUS='PAUSED')
repairTimeStatistics DMS_BILLS_FAULT_INSTANCE 平均响应时间=(REAL_BEGIN_TIME-APPLY_TIME),平均维修时间=(REAL_END_TIME-REAL_BEGIN_TIME)
maintStatistics DMS_PLAN_MAINT 按MAINT_STATUS分组统计1=待保养2=保养中3=已完成4=待验证
inspectStatistics DMS_PLAN_INSPECT, DMS_BILLS_INSPECT_INSTANCE 应检设备=SUM(DEVICE_AMOUNT),已检=INSPECT_STATUS='2'的数量
deviceStatusDistribution BASE_DEVICELEDGER 按DEVICE_STATUS和DEVICE_TYPE分组统计
faultSourceDistribution DMS_BILLS_FAULT_INSTANCE 按FAULT_SOURCE_TYPE分组1=维护故障2/3=运行故障9=自然故障
faultTrendList RECORD_ALARM_DEVICE 近30天每日告警数量按ALARM_TIME日期分组
productionTop5 BASE_DEVICE_PARAM_VAL, BASE_DEVICELEDGER 各设备当天PARAM_NAME='机台状态-实际产出数量'最新值取TOP5

4.2 关键SQL说明

4.2.1 维修时间统计

SELECT ROUND(NVL(AVG((REAL_BEGIN_TIME - APPLY_TIME) * 24 * 60), 0), 2) AS AVG_RESPONSE_TIME,
       ROUND(NVL(AVG((REAL_END_TIME - REAL_BEGIN_TIME) * 24), 0), 2) AS AVG_REPAIR_TIME
FROM DMS_BILLS_FAULT_INSTANCE
WHERE IS_FLAG = '1'
  AND REAL_BEGIN_TIME IS NOT NULL
  AND APPLY_TIME IS NOT NULL

业务逻辑说明

  • 平均响应时间 = (实际开始时间 - 申请时间) × 24 × 60单位分钟
  • 平均维修时间 = (实际结束时间 - 实际开始时间) × 24单位小时

4.2.2 故障数量曲线使用RECORD_ALARM_DEVICE

SELECT TO_CHAR(ALARM_TIME, 'DD') AS dateValue,
       COUNT(*) AS faultCount
FROM RECORD_ALARM_DEVICE
WHERE IS_FLAG = 0
  AND ALARM_TIME >= TRUNC(SYSDATE) - 30
GROUP BY TO_CHAR(ALARM_TIME, 'DD'), TRUNC(ALARM_TIME)
ORDER BY TRUNC(ALARM_TIME)

业务逻辑说明

  • 数据来源:RECORD_ALARM_DEVICE 设备告警记录表
  • 时间范围近30天
  • 分组方式:按日期分组,返回每日告警数量

4.2.3 产量机台TOP5替代备件消耗费用TOP5

SELECT * FROM (
    SELECT d.DEVICE_NAME AS deviceName,
           NVL(TO_NUMBER(p.PARAM_VALUE), 0) AS production,
           0 AS percent
    FROM BASE_DEVICELEDGER d
    LEFT JOIN (
        SELECT DEVICE_CODE, PARAM_VALUE
        FROM (
            SELECT DEVICE_CODE, PARAM_VALUE,
                   ROW_NUMBER() OVER (PARTITION BY DEVICE_CODE ORDER BY COLLECT_TIME DESC) AS RN
            FROM BASE_DEVICE_PARAM_VAL
            WHERE PARAM_NAME = '机台状态-实际产出数量'
              AND TO_CHAR(COLLECT_TIME, 'YYYY-MM-DD') = TO_CHAR(SYSDATE, 'YYYY-MM-DD')
        )
        WHERE RN = 1
    ) p ON d.DEVICE_CODE = p.DEVICE_CODE
    WHERE d.IS_FLAG = 0
      AND d.DEVICE_TYPE = '1'
    ORDER BY production DESC
) WHERE ROWNUM <= 5

业务逻辑说明

  • 使用 PARAM_NAME = '机台状态-实际产出数量' 获取各设备当天实际产出
  • 取每台设备当天最新的一条记录使用窗口函数ROW_NUMBER
  • 按产量降序排列取前5名
  • 百分比在Service层计算percent = production / maxProduction * 100

4.2.4 故障来源分布

SELECT COUNT(*) AS TOTAL_COUNT,
       SUM(CASE WHEN FAULT_SOURCE_TYPE = 1 THEN 1 ELSE 0 END) AS MAINTAIN_COUNT,
       SUM(CASE WHEN FAULT_SOURCE_TYPE IN (2, 3) THEN 1 ELSE 0 END) AS RUNNING_COUNT,
       SUM(CASE WHEN FAULT_SOURCE_TYPE = 9 THEN 1 ELSE 0 END) AS NATURAL_COUNT
FROM DMS_BILLS_FAULT_INSTANCE
WHERE IS_FLAG = '1'

业务逻辑说明

  • FAULT_SOURCE_TYPE=1检修→ 维护故障
  • FAULT_SOURCE_TYPE=2,3点检/巡检)→ 运行故障
  • FAULT_SOURCE_TYPE=9其他→ 自然故障

五、前端API

5.1 API文件

文件: zs_aucma-mes-ui/src/api/board/board5.js

import request from '@/utils/request'

// 获取工单统计(工单总数、已完成、完成率、停机工单)
export function getOrderWorkStatistics() {
  return request({ url: '/board5/orderWorkStatistics', method: 'get' })
}

// 获取维修时间统计(平均响应时间、平均维修时间)
export function getRepairTimeStatistics() {
  return request({ url: '/board5/repairTimeStatistics', method: 'get' })
}

// 获取保养执行情况统计
export function getMaintStatistics() {
  return request({ url: '/board5/maintStatistics', method: 'get' })
}

// 获取巡检执行情况统计
export function getInspectStatistics() {
  return request({ url: '/board5/inspectStatistics', method: 'get' })
}

// 获取设备状态分布
export function getDeviceStatusDistribution() {
  return request({ url: '/board5/deviceStatusDistribution', method: 'get' })
}

// 获取故障来源分布
export function getFaultSourceDistribution() {
  return request({ url: '/board5/faultSourceDistribution', method: 'get' })
}

// 获取故障数量曲线
export function getFaultTrendList() {
  return request({ url: '/board5/faultTrendList', method: 'get' })
}

// 获取产量机台TOP5
export function getProductionTop5() {
  return request({ url: '/board5/productionTop5', method: 'get' })
}

六、数据库表结构参考

6.1 BASE_ORDERINFO工单表

字段 类型 说明
OBJ_ID NUMBER 主键
EXECUTION_STATUS VARCHAR2 执行状态PENDING/RUNNING/COMPLETED/PAUSED
IS_FLAG NUMBER 是否标识0=有效)

6.2 DMS_BILLS_FAULT_INSTANCE故障报修工单表

字段 类型 说明
REPAIR_INSTANCE_ID NUMBER(20) 主键
APPLY_TIME DATE 申请时间
REAL_BEGIN_TIME DATE 实际开始时间
REAL_END_TIME DATE 实际完成时间
FAULT_SOURCE_TYPE NUMBER 报修来源类型1检修 2点检 3巡检 9其他
IS_FLAG CHAR(1) 激活标识1是 0否

6.3 DMS_PLAN_MAINT保养计划表

字段 类型 说明
PLAN_MAINT_ID NUMBER(20) 主键
MAINT_STATUS NUMBER 保养状态1待保养 2保养中 3已完成 4待验证
IS_FLAG NUMBER 是否标识1是 2否

6.4 DMS_PLAN_INSPECT巡检计划表

字段 类型 说明
PLAN_INSPECT_ID NUMBER(20) 主键
DEVICE_AMOUNT NUMBER 设备总数
IS_FLAG CHAR(1) 是否标识1是 0否

6.5 RECORD_ALARM_DEVICE设备告警记录表

字段 类型 说明
OBJ_ID NUMBER(38) 主键
DEVICE_CODE VARCHAR2(128) 设备编号
DEVICE_NAME VARCHAR2(128) 设备名称
ALARM_INFO VARCHAR2(255) 报警信息
ALARM_TIME DATE 报警时间
IS_FLAG NUMBER 是否标识0=有效)

6.6 BASE_DEVICELEDGER设备台账表

字段 类型 说明
OBJ_ID NUMBER 主键
DEVICE_CODE VARCHAR2(64) 设备编号
DEVICE_NAME VARCHAR2(64) 设备名称
DEVICE_STATUS NUMBER(1,0) 设备状态0使用 1停用 2报废
DEVICE_TYPE VARCHAR2(32) 设备类型1生产设备 2计量设备
IS_FLAG NUMBER(1,0) 是否标识0有效

6.7 BASE_DEVICE_PARAM_VAL设备工艺参数表

字段 类型 说明
RECORD_ID NUMBER 主键
DEVICE_CODE VARCHAR2(255) 设备编号
PARAM_NAME VARCHAR2(255) 参数名称(固定值,如"机台状态-实际产出数量"
PARAM_VALUE VARCHAR2(255) 参数值
COLLECT_TIME DATE 采集时间

七、接口返回示例

7.1 工单统计

{ "code": 200, "data": { "totalCount": 100, "completeCount": 85, "completeRate": "85", "stopCount": 5 } }

7.2 维修时间统计

{ "code": 200, "data": { "avgResponseTime": "123.45", "avgRepairTime": "0.25" } }

7.3 保养执行情况

{ "code": 200, "data": { "planCount": 10, "completeCount": 5, "waitingCount": 2, "waitingRate": "20", "doingCount": 2, "doingRate": "20", "verifyCount": 1, "verifyRate": "10", "completeRate": "50" } }

7.4 故障数量曲线

{ "code": 200, "data": [{ "dateValue": "01", "faultCount": 5 }, { "dateValue": "02", "faultCount": 3 }] }

7.5 产量机台TOP5

{ "code": 200, "data": [{ "deviceName": "YZM-02", "percent": 100, "production": 27218 }, { "deviceName": "YZM-01", "percent": 80, "production": 21774 }] }

八、注意事项

  1. 重要:故障数量曲线使用 RECORD_ALARM_DEVICE 表

    • 数据来源:RECORD_ALARM_DEVICE 设备告警记录表
    • 筛选条件:IS_FLAG = 0ALARM_TIME >= TRUNC(SYSDATE) - 30
  2. 重要产量机台TOP5 替代备件消耗费用TOP5

    • 使用 PARAM_NAME = '机台状态-实际产出数量' 获取设备产量
    • 取每台设备当天最新值,按产量降序排列
  3. 保养状态映射DMS_PLAN_MAINT.MAINT_STATUS

    • 1 = 待保养
    • 2 = 保养中
    • 3 = 已完成
    • 4 = 待验证
  4. 故障来源类型映射DMS_BILLS_FAULT_INSTANCE.FAULT_SOURCE_TYPE

    • 1 = 检修 → 维护故障
    • 2 = 点检 → 运行故障
    • 3 = 巡检 → 运行故障
    • 9 = 其他 → 自然故障
  5. 设备表字段类型BASE_DEVICELEDGER

    • DEVICE_STATUSNUMBER(1,0),查询时使用 = 0
    • IS_FLAGNUMBER(1,0),查询时使用 = 0
  6. 前端页面字段映射

    • text1-text4 → orderWorkStatistics工单总数、已完成、完成率、停机工单
    • text5-text6 → repairTimeStatistics平均响应时间、平均维修时间
    • text7-text15 → maintStatistics保养执行情况
    • text16-text17 → inspectStatistics巡检执行情况
    • value1-value4 → deviceStatusDistribution设备状态分布
    • value5-value7 → faultSourceDistribution故障来源分布
    • chart1 → faultTrendList故障数量曲线
    • chart2 → productionTop5产量机台TOP5

九、变更记录

日期 版本 变更内容 作者
2026-01-21 1.0 Board5看板接口初始版本 YinQ
2026-01-21 1.1 故障数量曲线使用RECORD_ALARM_DEVICE表真实数据 YinQ
2026-01-21 1.2 产量机台TOP5替代备件消耗费用TOP5 YinQ