fix(report): 更新故障趋势查询的数据源和字段

- 将数据源从 RECORD_ALARM_DEVICE 更改为 DMS_RECORD_ALARM_INFO
- 修改时间字段从 ALARM_TIME 为 ALARM_BEGIN_TIME
- 移除 IS_FLAG = 0 的过滤条件
- 移除设备类型的过滤条件
master
zangch@mesnac.com 4 days ago
parent 828a0ec114
commit 776b0790a4

@ -231,7 +231,7 @@ public class Board4DeviceProductionVo {
| 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 |
| alarmInfo | DMS_RECORD_ALARM_INFO, BASE_DEVICELEDGER | 最新一条报警记录通过DEVICE_ID关联设备名称时间格式HH24:MI:SS |
| repairAnalysisList | DMS_BILLS_FAULT_INSTANCE, BASE_DEVICELEDGER | 按设备聚合故障次数按次数倒序取TOP10 |
| repairTrendList | DMS_BILLS_FAULT_INSTANCE | 按小时统计当天报修次数 |
| qualityStatistics | REPORT_QUALITY_INSPECTION | 当天TREATMENT_MEASURE='3'和'1'分组统计 |
@ -483,7 +483,7 @@ export function getDeviceProductionList() {
6. **维修分析**:使用 DMS_BILLS_FAULT_INSTANCE 故障报修表,通过 `DEVICE_ID = BASE_DEVICELEDGER.OBJ_ID` 关联设备表
7. **报警信息来源**:使用 RECORD_ALARM_DEVICE 表,字段 `ALARM_INFO``ALARM_TIME`,并以 `IS_FLAG = 0` 过滤有效记录
7. **报警信息来源**:使用 DMS_RECORD_ALARM_INFO 表,字段 `ALARM_REASON``ALARM_BEGIN_TIME`,通过 `DEVICE_ID` 关联 BASE_DEVICELEDGER 获取设备名称
---
@ -496,6 +496,7 @@ export function getDeviceProductionList() {
| 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 |
| 2026-01-22 | 2.4 | 报警数据源切换回 DMS_RECORD_ALARM_INFO该表由外部设备插入数据 | YinQ |
---
@ -707,7 +708,7 @@ public class Board5ProductionTopVo {
| 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日期分组 |
| faultTrendList | DMS_RECORD_ALARM_INFO | 近30天每日告警数量按ALARM_BEGIN_TIME日期分组 |
| productionTop5 | BASE_DEVICE_PARAM_VAL, BASE_DEVICELEDGER | 各设备当天PARAM_NAME='机台状态-实际产出数量'最新值取TOP5 |
### 4.2 关键SQL说明
@ -727,20 +728,19 @@ WHERE IS_FLAG = '1'
- 平均响应时间 = (实际开始时间 - 申请时间) × 24 × 60单位分钟
- 平均维修时间 = (实际结束时间 - 实际开始时间) × 24单位小时
#### 4.2.2 故障数量曲线(使用RECORD_ALARM_DEVICE
#### 4.2.2 故障数量曲线(使用DMS_RECORD_ALARM_INFO
```sql
SELECT TO_CHAR(ALARM_TIME, 'DD') AS dateValue,
SELECT TO_CHAR(ALARM_BEGIN_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)
FROM DMS_RECORD_ALARM_INFO
WHERE ALARM_BEGIN_TIME >= TRUNC(SYSDATE) - 30
GROUP BY TO_CHAR(ALARM_BEGIN_TIME, 'DD'), TRUNC(ALARM_BEGIN_TIME)
ORDER BY TRUNC(ALARM_BEGIN_TIME)
```
**业务逻辑说明**
- 数据来源:`RECORD_ALARM_DEVICE` 设备告警记录表
- 数据来源:`DMS_RECORD_ALARM_INFO` 设备报警记录表(由外部设备插入)
- 时间范围近30天
- 分组方式:按日期分组,返回每日告警数量
@ -763,8 +763,6 @@ SELECT * FROM (
)
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
```
@ -952,9 +950,9 @@ export function getProductionTop5() {
## 八、注意事项
1. **❗重要:故障数量曲线使用 RECORD_ALARM_DEVICE 表**
- 数据来源:`RECORD_ALARM_DEVICE` 设备告警记录表
- 筛选条件:`IS_FLAG = 0` 且 `ALARM_TIME >= TRUNC(SYSDATE) - 30`
1. **❗重要:故障数量曲线使用 DMS_RECORD_ALARM_INFO 表**
- 数据来源:`DMS_RECORD_ALARM_INFO` 设备报警记录表(由外部设备插入)
- 筛选条件:`ALARM_BEGIN_TIME >= TRUNC(SYSDATE) - 30`
2. **❗重要产量机台TOP5 替代备件消耗费用TOP5**
- 使用 `PARAM_NAME = '机台状态-实际产出数量'` 获取设备产量
@ -994,4 +992,5 @@ export function getProductionTop5() {
|------|------|----------|------|
| 2026-01-21 | 1.0 | Board5看板接口初始版本 | YinQ |
| 2026-01-21 | 1.1 | 故障数量曲线使用RECORD_ALARM_DEVICE表真实数据 | YinQ |
| 2026-01-22 | 1.3 | 故障数量曲线切换为DMS_RECORD_ALARM_INFO表 | YinQ |
| 2026-01-21 | 1.2 | 产量机台TOP5替代备件消耗费用TOP5 | YinQ |

@ -79,16 +79,15 @@
WHERE IS_FLAG = '1'
</select>
<!-- 查询故障数量曲线近30天含今天,每日告警数量) -->
<!-- 数据来源:RECORD_ALARM_DEVICE -->
<!-- 查询故障数量曲线近30天每日告警数量) -->
<!-- 数据来源:DMS_RECORD_ALARM_INFO -->
<select id="selectFaultTrendList" resultType="com.aucma.report.domain.vo.Board5FaultTrendVo">
SELECT TO_CHAR(ALARM_TIME, 'DD') AS dateValue,
SELECT TO_CHAR(ALARM_BEGIN_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)
FROM DMS_RECORD_ALARM_INFO
WHERE ALARM_BEGIN_TIME >= TRUNC(SYSDATE) - 30
GROUP BY TO_CHAR(ALARM_BEGIN_TIME, 'DD'), TRUNC(ALARM_BEGIN_TIME)
ORDER BY TRUNC(ALARM_BEGIN_TIME)
</select>
<!-- 查询产量机台TOP5当天00:00-23:59 -->
@ -111,8 +110,6 @@
)
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 &lt;= 5
</select>

Loading…
Cancel
Save