|
|
|
|
@ -725,7 +725,7 @@ public class Board5ProductionTopVo {
|
|
|
|
|
| orderWorkStatistics | DMS_BILLS_FAULT_INSTANCE, DMS_BILLS_MAINT_INSTANCE, DMS_BILLS_INSPECT_INSTANCE | 工单总数=维修+保养+巡检;已完成=维修完成(BILLS_STATUS='2')+保养完成(MAINT_STATUS='3')+巡检完成(INSPECT_STATUS='3');停机=维修中(BILLS_STATUS='1') |
|
|
|
|
|
| repairTimeStatistics | DMS_BILLS_FAULT_INSTANCE | 平均响应时间=(REAL_BEGIN_TIME-APPLY_TIME)*24*60分钟;平均维修时间=(REAL_END_TIME-REAL_BEGIN_TIME)*24小时;仅统计BILLS_STATUS='2' |
|
|
|
|
|
| maintStatistics | DMS_BILLS_MAINT_INSTANCE | 按MAINT_STATUS分组统计:1=待保养,2=保养中,3=已完成,4=待验证(无此数据返回0) |
|
|
|
|
|
| inspectStatistics | DMS_BILLS_INSPECT_INSTANCE | 应检设备=COUNT(DISTINCT PLAN_INSPECT_ID)*18;已检设备=INSPECT_STATUS='3'的数量 |
|
|
|
|
|
| inspectStatistics | DMS_BILLS_INSPECT_INSTANCE, DMS_PLAN_INSPECT | 应检设备=关联计划表SUM(DEVICE_AMOUNT);已检设备=INSPECT_STATUS='3'的数量 |
|
|
|
|
|
| deviceStatusDistribution | BASE_DEVICELEDGER | 按DEVICE_STATUS和DEVICE_TYPE分组统计,WHERE IS_FLAG=1 |
|
|
|
|
|
| faultSourceDistribution | DMS_BILLS_FAULT_INSTANCE | 按FAULT_SOURCE_TYPE分组:1=维护故障,2/3=运行故障,9=自然故障;WHERE IS_FLAG='1' |
|
|
|
|
|
| faultTrendList | DMS_RECORD_ALARM_INFO | 近30天每日告警数量,按ALARM_BEGIN_TIME日期分组 |
|
|
|
|
|
@ -791,15 +791,23 @@ FROM DMS_BILLS_MAINT_INSTANCE
|
|
|
|
|
#### 4.2.4 巡检执行情况统计
|
|
|
|
|
|
|
|
|
|
```sql
|
|
|
|
|
SELECT (SELECT COUNT(DISTINCT PLAN_INSPECT_ID) * 18 FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1') AS DEVICE_COUNT,
|
|
|
|
|
SELECT (SELECT NVL(SUM(p.DEVICE_AMOUNT), 0)
|
|
|
|
|
FROM DMS_PLAN_INSPECT p
|
|
|
|
|
WHERE p.PLAN_INSPECT_ID IN (
|
|
|
|
|
SELECT DISTINCT PLAN_INSPECT_ID
|
|
|
|
|
FROM DMS_BILLS_INSPECT_INSTANCE
|
|
|
|
|
WHERE IS_FLAG = '1'
|
|
|
|
|
)
|
|
|
|
|
) AS DEVICE_COUNT,
|
|
|
|
|
(SELECT COUNT(*) FROM DMS_BILLS_INSPECT_INSTANCE WHERE IS_FLAG = '1' AND INSPECT_STATUS = '3') AS COMPLETE_COUNT
|
|
|
|
|
FROM DUAL
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
**业务逻辑说明**:
|
|
|
|
|
- **应检设备数** = 不同巡检计划数 × 18(每计划覆盖18台设备)
|
|
|
|
|
- **应检设备数** = 关联 `DMS_PLAN_INSPECT` 计划表,汇总 `DEVICE_AMOUNT`(每个计划覆盖的设备数量)
|
|
|
|
|
- **已检设备数** = 已完成的巡检工单数(`INSPECT_STATUS = '3'`)
|
|
|
|
|
- **数据来源**:`DMS_BILLS_INSPECT_INSTANCE` 巡检工单表
|
|
|
|
|
- **数据来源**:`DMS_BILLS_INSPECT_INSTANCE` 巡检工单表 + `DMS_PLAN_INSPECT` 巡检计划表
|
|
|
|
|
- **关联原因**:工单表无设备ID字段,需通过计划表获取设备数量信息
|
|
|
|
|
|
|
|
|
|
#### 4.2.5 设备状态分布
|
|
|
|
|
|
|
|
|
|
@ -1041,8 +1049,9 @@ export function getProductionTop5() {
|
|
|
|
|
- 巡检工单:`DMS_BILLS_INSPECT_INSTANCE`(WHERE IS_FLAG='1')
|
|
|
|
|
|
|
|
|
|
2. **❗重要:巡检应检设备数计算**
|
|
|
|
|
- 应检设备数 = COUNT(DISTINCT PLAN_INSPECT_ID) × 18
|
|
|
|
|
- 每个巡检计划覆盖18台设备(固定值)
|
|
|
|
|
- 应检设备数 = 关联 `DMS_PLAN_INSPECT` 表,汇总 `DEVICE_AMOUNT`
|
|
|
|
|
- 每个巡检计划的 `DEVICE_AMOUNT` 可能不同,不能硬编码 × 18
|
|
|
|
|
- 原先的计算逻辑 `COUNT(DISTINCT PLAN_INSPECT_ID) × 18` 导致完成率可能超过 100%
|
|
|
|
|
|
|
|
|
|
3. **保养状态映射**(DMS_BILLS_MAINT_INSTANCE.MAINT_STATUS):
|
|
|
|
|
- 1 = 待保养
|
|
|
|
|
@ -1081,3 +1090,4 @@ export function getProductionTop5() {
|
|
|
|
|
| 2026-01-21 | 1.2 | 产量机台TOP5替代备件消耗费用TOP5 | YinQ |
|
|
|
|
|
| 2026-01-22 | 1.3 | 故障数量曲线切换为DMS_RECORD_ALARM_INFO表 | YinQ |
|
|
|
|
|
| 2026-01-26 | 2.0 | 根据Mapper XML更新业务逻辑:工单统计改用工单表汇总、保养/巡检改用工单实例表、更新所有SQL示例和表结构 | Claude |
|
|
|
|
|
| 2026-01-26 | 2.1 | 修复巡检完成率超过100%问题:应检设备数改为关联DMS_PLAN_INSPECT表SUM(DEVICE_AMOUNT),替代硬编码×18 | Claude |
|
|
|
|
|
|