change(dms): 添加DMS模块序列定义并限制报警信息查询时间范围

- 在Board4Mapper.xml中修改selectLatestAlarmInfo查询,添加时间条件限定为当前一小时内
- 更新报警信息查询注释,明确查询范围为当前一小时内
- 新增DMS_SEQUENCES.sql文件,定义DMS模块所有表对应的27个序列
- 包含点检、保养、维修、停机等各类业务表的序列定义
- 添加序列同步逻辑,确保序列值与现有表数据行数对齐
- 提供序列验证和维护的SQL脚本支持
master
zangch@mesnac.com 4 days ago
parent d0ee1d4ab9
commit 526e9df238

@ -0,0 +1,541 @@
-- ============================================
-- DMS 模块所有序列定义
-- 生成时间: 2026-01-23
-- 说明: 包含 DMS 模块所有 Mapper 中使用的序列
-- ============================================
-- ----------------------------
-- 1. SEQ_DMS_INSPECT_PROJ (点检项目)
-- 表: DMS_BASE_INSPECT_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 2. SEQ_DMS_INSPECT_ROUTE (点检路线)
-- 表: DMS_BASE_INSPECT_ROUTE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_ROUTE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_ROUTE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 3. SEQ_DMS_INSPECT_STD (点检标准)
-- 表: DMS_BASE_INSPECT_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 4. SEQ_DMS_INSPECT_RTE_DTL (点检路线明细)
-- 表: DMS_INSPECT_ROUTE_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_RTE_DTL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_INSPECT_RTE_DTL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 5. SEQ_DMS_LUBE_STD (润滑标准)
-- 表: DMS_BASE_LUBE_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 6. SEQ_DMS_LUBE_STATION (润滑部位)
-- 表: DMS_BASE_LUBE_STATION
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STATION"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_LUBE_STATION"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 7. SEQ_DMS_MAINT_PROJ (保养项目)
-- 表: DMS_BASE_MAINT_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 8. SEQ_DMS_MAINT_STD (保养标准)
-- 表: DMS_BASE_MAINT_STANDARD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 9. SEQ_DMS_MAINT_STATION (保养部位)
-- 表: DMS_BASE_MAINT_STATION
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STATION"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_STATION"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 10. SEQ_DMS_SHUT_REASON (停机原因)
-- 表: DMS_BASE_SHUT_REASON
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_REASON"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_REASON"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 11. SEQ_DMS_SHUT_TYPE (停机类型)
-- 表: DMS_BASE_SHUT_TYPE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_TYPE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_SHUT_TYPE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 12. SEQ_DMS_BILLS_FAULT_INSTANCE (故障工单)
-- 表: DMS_BILLS_FAULT_INSTANCE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_BILLS_FAULT_INSTANCE"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_BILLS_FAULT_INSTANCE"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 13. SEQ_FAULT_INSTANCE_ACTIVITY (故障工单活动)
-- 表: DMS_FAULT_INSTANCE_ACTIVITY
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_FAULT_INSTANCE_ACTIVITY"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_FAULT_INSTANCE_ACTIVITY"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 14. SEQ_DMS_MAINT_INST (保养工单)
-- 表: DMS_BILLS_MAINT_INSTANCE
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_INST"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_INST"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 15. SEQ_DMS_MAINT_DETAIL (保养工单明细)
-- 表: DMS_BILLS_MAINT_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DETAIL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DETAIL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 16. SEQ_DMS_MAINT_DTL_PROJ (保养明细项目)
-- 表: DMS_BILLS_MAINT_DETAIL_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DTL_PROJ"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_MAINT_DTL_PROJ"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 17. SEQ_DMS_DISPATCH_PLAN (派工计划)
-- 表: DMS_DISPATCH_PLAN
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_PLAN"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_PLAN"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 18. SEQ_DMS_DISPATCH_MEMBER (派工成员)
-- 表: DMS_DISPATCH_MEMBER
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_MEMBER"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_DISPATCH_MEMBER"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 19. SEQ_DMS_KNOWLEDGE_REPAIR (维修知识库)
-- 表: DMS_KNOWLEDGE_REPAIR
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_KNOWLEDGE_REPAIR"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_KNOWLEDGE_REPAIR"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 20. SEQ_DMS_PLAN_INSPECT (点检计划)
-- 表: DMS_PLAN_INSPECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_INSPECT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_INSPECT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 21. SEQ_DMS_PLAN_MAINT (保养计划)
-- 表: DMS_PLAN_MAINT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 22. SEQ_DMS_PLAN_MAINT_DETAIL (保养计划明细)
-- 表: DMS_PLAN_MAINT_DETAIL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT_DETAIL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_MAINT_DETAIL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 23. SEQ_DMS_PLAN_REPAIR (检修计划)
-- 表: DMS_PLAN_REPAIR
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_REPAIR"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_PLAN_REPAIR"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 24. SEQ_DMS_REPAIR_MATERIAL (维修物料)
-- 表: DMS_REPAIR_MATERIAL
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_MATERIAL"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_MATERIAL"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 25. SEQ_DMS_REPAIR_PROJECT (维修项目)
-- 表: DMS_REPAIR_PROJECT
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_PROJECT"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_PROJECT"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 26. SEQ_DMS_REPAIR_RECORD (维修记录)
-- 表: DMS_REPAIR_RECORD
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_RECORD"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_RECORD"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- ----------------------------
-- 27. SEQ_DMS_REPAIR_WORK_ORDER (维修工单)
-- 表: DMS_REPAIR_WORK_ORDER
-- ----------------------------
BEGIN
EXECUTE IMMEDIATE 'DROP SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_WORK_ORDER"';
EXCEPTION
WHEN OTHERS THEN NULL;
END;
/
CREATE SEQUENCE "HAIWEI"."SEQ_DMS_REPAIR_WORK_ORDER"
MINVALUE 1
MAXVALUE 9999999999999999999999999999
START WITH 1
INCREMENT BY 1
CACHE 20;
-- 序列对齐:按表当前行数 + 1 设置 NEXTVALOracle 11g 兼容方案)
-- 实现思路:
-- 1) 读取表行数,目标值 = 行数 + 1
-- 2) 读取当前序列 last_number
-- 3) 若目标值 > last_number则临时修改 INCREMENT BY (差值),取一次 NEXTVAL最后再改回 1
-- 4) 若目标值 <= last_number则保持不变仅输出提示
DECLARE
PROCEDURE sync_seq(p_seq_name VARCHAR2, p_table_name VARCHAR2) IS
v_cnt NUMBER := 0;
v_last NUMBER := 0;
v_target NUMBER := 0;
v_diff NUMBER := 0;
v_seq_short VARCHAR2(128);
v_sql VARCHAR2(4000);
v_dummy NUMBER;
BEGIN
-- 表行数
v_sql := 'SELECT NVL(COUNT(*),0) FROM ' || p_table_name;
EXECUTE IMMEDIATE v_sql INTO v_cnt;
-- 取 sequence 名(去 schema 部分)用于 USER_SEQUENCES 查询
v_seq_short := UPPER(REGEXP_SUBSTR(p_seq_name, '[^\.]+$'));
SELECT last_number INTO v_last FROM user_sequences WHERE sequence_name = v_seq_short;
v_target := v_cnt + 1;
IF v_target > v_last THEN
v_diff := v_target - v_last;
EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY ' || v_diff;
EXECUTE IMMEDIATE 'SELECT ' || p_seq_name || '.NEXTVAL FROM DUAL' INTO v_dummy;
EXECUTE IMMEDIATE 'ALTER SEQUENCE ' || p_seq_name || ' INCREMENT BY 1';
DBMS_OUTPUT.PUT_LINE('SYNC ' || p_seq_name || ' TO ' || v_target || ' (TABLE ROWS=' || v_cnt || ')');
ELSE
DBMS_OUTPUT.PUT_LINE('SKIP ' || p_seq_name || ' (TARGET ' || v_target || ' <= LAST ' || v_last || ')');
END IF;
EXCEPTION
WHEN OTHERS THEN
DBMS_OUTPUT.PUT_LINE('SYNC ' || p_seq_name || ' FAILED: ' || SQLERRM);
END;
BEGIN
sync_seq('HAIWEI.SEQ_DMS_INSPECT_PROJ', 'HAIWEI.DMS_BASE_INSPECT_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_ROUTE', 'HAIWEI.DMS_BASE_INSPECT_ROUTE');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_STD', 'HAIWEI.DMS_BASE_INSPECT_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_INSPECT_RTE_DTL', 'HAIWEI.DMS_INSPECT_ROUTE_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_LUBE_STD', 'HAIWEI.DMS_BASE_LUBE_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_LUBE_STATION', 'HAIWEI.DMS_BASE_LUBE_STATION');
sync_seq('HAIWEI.SEQ_DMS_MAINT_PROJ', 'HAIWEI.DMS_BASE_MAINT_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_MAINT_STD', 'HAIWEI.DMS_BASE_MAINT_STANDARD');
sync_seq('HAIWEI.SEQ_DMS_MAINT_STATION', 'HAIWEI.DMS_BASE_MAINT_STATION');
sync_seq('HAIWEI.SEQ_DMS_SHUT_REASON', 'HAIWEI.DMS_BASE_SHUT_REASON');
sync_seq('HAIWEI.SEQ_DMS_SHUT_TYPE', 'HAIWEI.DMS_BASE_SHUT_TYPE');
sync_seq('HAIWEI.SEQ_DMS_BILLS_FAULT_INSTANCE', 'HAIWEI.DMS_BILLS_FAULT_INSTANCE');
sync_seq('HAIWEI.SEQ_FAULT_INSTANCE_ACTIVITY', 'HAIWEI.DMS_FAULT_INSTANCE_ACTIVITY');
sync_seq('HAIWEI.SEQ_DMS_MAINT_INST', 'HAIWEI.DMS_BILLS_MAINT_INSTANCE');
sync_seq('HAIWEI.SEQ_DMS_MAINT_DETAIL', 'HAIWEI.DMS_BILLS_MAINT_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_MAINT_DTL_PROJ', 'HAIWEI.DMS_BILLS_MAINT_DETAIL_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_DISPATCH_PLAN', 'HAIWEI.DMS_DISPATCH_PLAN');
sync_seq('HAIWEI.SEQ_DMS_DISPATCH_MEMBER', 'HAIWEI.DMS_DISPATCH_MEMBER');
sync_seq('HAIWEI.SEQ_DMS_KNOWLEDGE_REPAIR', 'HAIWEI.DMS_KNOWLEDGE_REPAIR');
sync_seq('HAIWEI.SEQ_DMS_PLAN_INSPECT', 'HAIWEI.DMS_PLAN_INSPECT');
sync_seq('HAIWEI.SEQ_DMS_PLAN_MAINT', 'HAIWEI.DMS_PLAN_MAINT');
sync_seq('HAIWEI.SEQ_DMS_PLAN_MAINT_DETAIL', 'HAIWEI.DMS_PLAN_MAINT_DETAIL');
sync_seq('HAIWEI.SEQ_DMS_PLAN_REPAIR', 'HAIWEI.DMS_PLAN_REPAIR');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_MATERIAL', 'HAIWEI.DMS_REPAIR_MATERIAL');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_PROJECT', 'HAIWEI.DMS_REPAIR_PROJECT');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_RECORD', 'HAIWEI.DMS_REPAIR_RECORD');
sync_seq('HAIWEI.SEQ_DMS_REPAIR_WORK_ORDER', 'HAIWEI.DMS_REPAIR_WORK_ORDER');
END;
/
-- ============================================
-- 执行完成提示
-- ============================================
-- 共创建 27 个序列
-- 如需验证,可执行:
-- SELECT SEQUENCE_NAME FROM USER_SEQUENCES WHERE SEQUENCE_NAME LIKE 'SEQ_DMS%' OR SEQUENCE_NAME LIKE 'SEQ_FAULT%';

@ -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 | DMS_RECORD_ALARM_INFO, BASE_DEVICELEDGER | 最新一条报警记录通过DEVICE_ID关联设备名称时间格式HH24:MI:SS |
| alarmInfo | DMS_RECORD_ALARM_INFO, BASE_DEVICELEDGER | 当前一小时内最新一条报警记录ALARM_BEGIN_TIME>=SYSDATE-1/24通过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'分组统计 |
@ -319,6 +319,27 @@ ORDER BY production DESC -- 按产量降序
- **设备过滤**`IS_FLAG = 1`(有效设备)
- **排序逻辑**:按产量降序排列,产量高的设备排在前面
#### 4.2.5 最新报警信息(当前一小时内)
```sql
SELECT * FROM (
SELECT d.DEVICE_NAME AS DEVICE_NAME,
a.ALARM_REASON AS ALARM_REASON,
TO_CHAR(a.ALARM_BEGIN_TIME, 'HH24:MI:SS') AS ALARM_TIME
FROM DMS_RECORD_ALARM_INFO a
LEFT JOIN BASE_DEVICELEDGER d ON a.DEVICE_ID = d.OBJ_ID
WHERE a.ALARM_BEGIN_TIME >= SYSDATE - 1/24 -- 限制在当前一小时内
ORDER BY a.ALARM_BEGIN_TIME DESC
) WHERE ROWNUM = 1
```
**业务逻辑说明**
- **数据来源**`DMS_RECORD_ALARM_INFO` 设备报警记录表(由外部设备插入)
- **时间限制**:仅查询当前一小时内(`SYSDATE - 1/24`的报警记录1/24 表示一小时
- **关联查询**:通过 `DEVICE_ID` 关联 `BASE_DEVICELEDGER` 获取设备名称
- **排序规则**:按报警开始时间倒序,取最新的一条(`ROWNUM = 1`
- **时间格式**:返回 HH24:MI:SS 格式(时:分:秒)
### 4.3 服务层返回规则补充
- 所有统计类数值默认返回0避免空值导致前端异常
@ -517,6 +538,7 @@ export function getDeviceProductionList() {
| 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 |
| 2026-01-26 | 2.5 | alarmInfo接口增加时间限制仅查询当前一小时内SYSDATE-1/24的报警记录 | Claude |
---

@ -87,7 +87,7 @@
WHERE IS_FLAG = '1'
</select>
<!-- 查询最新报警信息 -->
<!-- 查询最新报警信息(当前一小时内) -->
<!-- 数据来源DMS_RECORD_ALARM_INFO + BASE_DEVICELEDGER -->
<select id="selectLatestAlarmInfo" resultType="java.util.HashMap">
SELECT * FROM (
@ -96,6 +96,7 @@
TO_CHAR(a.ALARM_BEGIN_TIME, 'HH24:MI:SS') AS ALARM_TIME
FROM DMS_RECORD_ALARM_INFO a
LEFT JOIN BASE_DEVICELEDGER d ON a.DEVICE_ID = d.OBJ_ID
WHERE a.ALARM_BEGIN_TIME &gt;= SYSDATE - 1/24
ORDER BY a.ALARM_BEGIN_TIME DESC
) WHERE ROWNUM = 1
</select>

Loading…
Cancel
Save