Files
MES/yawei-mes/.sql/2025-12-15_v1.0.46_普罗生物_周启威_设备报警记录-LV.sql
2026-04-02 10:39:03 +08:00

103 lines
8.3 KiB
SQL
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

-- 1. 创建报警记录表
DROP TABLE IF EXISTS `mes_device_fault_record`;
CREATE TABLE IF NOT EXISTS `mes_device_fault_record` (
`id` bigint NOT NULL AUTO_INCREMENT COMMENT '报警记录ID',
`device_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '设备名称',
`sensor_name` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NOT NULL COMMENT '传感器名/通道',
`device_status` tinyint NOT NULL DEFAULT 2 COMMENT '设备状态0-停机1-待机2-生产',
`nominal_value` decimal(10, 2) NULL DEFAULT NULL COMMENT '标称值(标准/理想值)',
`normal_min` decimal(10, 2) NOT NULL COMMENT '正常范围下限(下限)',
`normal_max` decimal(10, 2) NOT NULL COMMENT '正常范围上限(上限)',
`lower_lower_limit` decimal(10, 2) NULL DEFAULT NULL COMMENT '下下限(严重超限下限)',
`upper_upper_limit` decimal(10, 2) NULL DEFAULT NULL COMMENT '上上限(严重超限上限)',
`actual_value` decimal(10, 2) NOT NULL COMMENT '实测值',
`deviation_rate` decimal(10, 2) NULL COMMENT '偏离度(%)',
`fault_level` tinyint NULL DEFAULT 1 COMMENT '故障等级1-轻微2-一般3-严重',
`fault_tag` varchar(200) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '故障标注/描述',
`analysis_type` tinyint NOT NULL DEFAULT 1 COMMENT '分析类型1-瞬态2-趋势',
`fault_time` datetime NOT NULL COMMENT '故障发生时间',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '创建者',
`create_time` datetime NULL DEFAULT NULL COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT '' COMMENT '更新者',
`update_time` datetime NULL DEFAULT NULL COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '备注',
`deleted` bit(1) NOT NULL DEFAULT b'0' COMMENT '是否删除0-未删除1-已删除',
`tenant_id` bigint NOT NULL DEFAULT 1 COMMENT '租户ID',
PRIMARY KEY (`id`) USING BTREE,
INDEX `idx_device_name`(`device_name`) USING BTREE COMMENT '设备名称索引',
INDEX `idx_sensor_name`(`sensor_name`) USING BTREE COMMENT '传感器名索引',
INDEX `idx_fault_time`(`fault_time`) USING BTREE COMMENT '故障时间索引',
INDEX `idx_device_status`(`device_status`) USING BTREE COMMENT '设备状态索引',
INDEX `idx_fault_level`(`fault_level`) USING BTREE COMMENT '故障等级索引'
) ENGINE = InnoDB CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci COMMENT = '设备报警记录表' ROW_FORMAT = DYNAMIC;
-- 2. 插入二级菜单报警记录父菜单为设备管理menu_id=2168
INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES ('设备报警记录', 2168, 10, 'faultRecord', 'mes/device/faultRecord/index', NULL, 1, 0, 'C', '0', '0', 'device:faultRecord:list', 'log', 'admin', NOW(), '', NULL, '报警记录菜单');
-- 获取刚插入的菜单ID
SET @menu_id = LAST_INSERT_ID();
-- 3. 插入按钮权限
-- 报警记录查询
INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES ('报警记录查询', @menu_id, 1, '#', '', NULL, 1, 0, 'F', '0', '0', 'device:faultRecord:query', '#', 'admin', NOW(), '', NULL, '');
-- 报警记录导出
INSERT INTO `sys_menu` (`menu_name`, `parent_id`, `order_num`, `path`, `component`, `query`, `is_frame`, `is_cache`, `menu_type`, `visible`, `status`, `perms`, `icon`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`)
VALUES ('报警记录导出', @menu_id, 2, '#', '', NULL, 1, 0, 'F', '0', '0', 'device:faultRecord:export', '#', 'admin', NOW(), '', NULL, '');
-- 注意:趋势分析功能已合并到报警记录页面中,使用圆滑折线图展示
-- 4. 添加门限类型字段如果表已存在执行此ALTER语句
ALTER TABLE `mes_device_fault_record` ADD COLUMN `threshold_type` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '门限类型(如:温度、压力、流量等)' AFTER `upper_upper_limit`;
-- 5.门限可为空
ALTER TABLE mes_device_fault_record MODIFY COLUMN normal_min decimal(10,2) NULL;
ALTER TABLE mes_device_fault_record MODIFY COLUMN normal_max decimal(10,2) NULL;
-- 6.修改fault_level字段类型为varchar如果表已存在执行此ALTER语句
ALTER TABLE `mes_device_fault_record` MODIFY COLUMN `fault_level` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci NULL DEFAULT NULL COMMENT '报警类型:超上限、超上上限、超下限、超下下限、其他';
-- =============================================
-- LabVIEW写入示例供LabVIEW端参考
-- =============================================
-- 发酵罐1号 温度传感器-CH01 跨月测试数据跨度6个月门限类型和门限值会变化
-- INSERT INTO `mes_device_fault_record`
-- (`device_name`, `sensor_name`, `device_status`, `nominal_value`, `normal_min`, `normal_max`, `lower_lower_limit`, `upper_upper_limit`, `threshold_type`, `actual_value`, `deviation_rate`, `fault_level`, `fault_tag`, `analysis_type`, `fault_time`, `create_by`, `create_time`)
-- VALUES
-- ('发酵罐1号', '温度传感器-CH01', 2, 25.00, 20.00, 30.00, 15.00, 35.00, '温度℃', 31.50, 26.00, 2, '7月温度偏高', 1, '2025-07-08 14:22:35', 'labview', NOW()),
-- ('发酵罐1号', '温度传感器-CH01', 2, 26.00, 21.00, 31.00, 16.00, 36.00, '温度℃', 36.80, 41.54, 3, '8月高温报警门限调整后', 1, '2025-08-15 09:45:18', 'labview', NOW()),
-- ('发酵罐1号', '温度传感器-CH01', 2, 24.00, 19.00, 29.00, 14.00, 34.00, '温度℃', 18.20, 24.17, 2, '9月温度偏低门限下调', 1, '2025-09-03 16:33:42', 'labview', NOW()),
-- ('发酵罐1号', '温度传感器-CH01', 2, 25.00, 20.00, 30.00, 15.00, 35.00, '温度℃', 32.50, 30.00, 2, '10月温度超上限', 1, '2025-10-22 11:08:27', 'labview', NOW()),
-- ('发酵罐1号', '温度传感器-CH01', 2, 23.00, 18.00, 28.00, 13.00, 33.00, '温度℃', 12.50, 45.65, 3, '11月低温严重报警冬季门限', 1, '2025-11-18 08:55:13', 'labview', NOW()),
-- ('发酵罐1号', '温度传感器-CH01', 2, 22.00, 17.00, 27.00, 12.00, 32.00, '温度℃', 28.80, 30.91, 2, '12月温度超上限冬季门限', 1, '2025-12-10 15:42:56', 'labview', NOW());
-- =============================================
-- 字段说明供LabVIEW端参考
-- =============================================
-- device_name : 设备名称必填发酵罐1号、搅拌器1号、进料泵1号
-- sensor_name : 传感器名/通道(必填)如:温度传感器-CH01、压力传感器-CH02
-- device_status : 设备状态必填0-停机1-待机2-生产
-- nominal_value : 标称值(选填)标准/理想值可为NULL
-- normal_min : 正常范围下限(必填)
-- normal_max : 正常范围上限(必填)
-- lower_lower_limit : 下下限(选填)严重超限下限
-- upper_upper_limit : 上上限(选填)严重超限上限
-- threshold_type : 门限类型选填温度℃、压力MPa、流量L/min等
-- actual_value : 实测值(必填)
-- deviation_rate : 偏离度%(必填)计算公式:|actual_value - nominal_value| / nominal_value * 100
-- fault_level : 报警类型(选填)超上限、超上上限、超下限、超下下限、其他
-- fault_tag : 报警标注(选填)描述报警原因
-- analysis_type : 分析类型必填1-瞬态2-趋势
-- fault_time : 报警发生时间必填格式YYYY-MM-DD HH:MM:SS
-- create_by : 创建者(必填)固定为 'labview'
-- create_time : 创建时间(必填)使用 NOW() 获取当前时间
--
-- 报警类型说明:
-- 超上限:实测值超过正常范围上限
-- 超上上限:实测值超过严重范围上限
-- 超下限:实测值低于正常范围下限
-- 超下下限:实测值低于严重范围下限
-- 其他:其他类型的报警