Files
MES/yawei-mes/.sql/2026-01-14_v1.6.004_周启威_技术建议探讨优化.sql

134 lines
8.5 KiB
MySQL
Raw Permalink Normal View History

2026-04-02 10:38:23 +08:00
-- =====================================================
-- 技术建议探讨优化 SQL
-- 作者: 周启威
-- 日期: 2026-01-14
-- 版本: v1.6.004
-- =====================================================
-- =====================================================
-- 1. 设备列表状态字典(核心、正常、停用、报废)
-- 说明复用equipment_status字典删除旧数据(关机/待机/运行中/故障),新增新数据
-- =====================================================
-- 1.1 删除旧的设备状态字典数据关机A、待机B、运行中C、故障D
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'equipment_status';
-- 1.2 添加新的设备状态字典数据(核心、正常、停用、报废)
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (0, '核心', 'core', 'equipment_status', NULL, 'danger', 'N', '0', 'admin', NOW(), '核心设备');
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '正常', 'normal', 'equipment_status', NULL, 'success', 'Y', '0', 'admin', NOW(), '正常使用设备');
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (2, '停用', 'disabled', 'equipment_status', NULL, 'warning', 'N', '0', 'admin', NOW(), '停用设备');
INSERT INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (3, '报废', 'scrapped', 'equipment_status', NULL, 'info', 'N', '0', 'admin', NOW(), '报废设备');
-- =====================================================
-- 2. 点检结果字典(正常/异常)
-- 说明点检记录专用替代inspection_result中的正常/异常
-- =====================================================
-- 2.1 添加点检结果字典类型
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('点检结果', 'spotcheck_result', '0', 'admin', NOW(), '点检结果:正常/异常');
-- 2.2 添加点检结果字典数据
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (0, '正常', 'normal', 'spotcheck_result', NULL, 'success', 'Y', '0', 'admin', NOW(), '点检正常');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '异常', 'abnormal', 'spotcheck_result', NULL, 'danger', 'N', '0', 'admin', NOW(), '点检异常');
-- =====================================================
-- 3. 巡检结果字典(合格/不合格)
-- 说明巡检记录专用替代inspection_result中的合格/不合格
-- =====================================================
-- 3.1 添加巡检结果字典类型
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('巡检结果', 'patrol_result', '0', 'admin', NOW(), '巡检结果:合格/不合格');
-- 3.2 添加巡检结果字典数据
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (0, '合格', 'qualified', 'patrol_result', NULL, 'success', 'Y', '0', 'admin', NOW(), '巡检合格');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '不合格', 'unqualified', 'patrol_result', NULL, 'danger', 'N', '0', 'admin', NOW(), '巡检不合格');
-- =====================================================
-- 4. 设备维修明细来源字段
-- =====================================================
-- 4.1 添加设备维修明细来源字典类型
INSERT IGNORE INTO `sys_dict_type` (`dict_name`, `dict_type`, `status`, `create_by`, `create_time`, `remark`)
VALUES ('维修明细来源', 'repair_entry_source', '0', 'admin', NOW(), '设备维修明细来源:点检/巡检/手动添加');
-- 4.2 添加设备维修明细来源字典数据
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (0, '点检', 'spotcheck', 'repair_entry_source', NULL, 'success', 'N', '0', 'admin', NOW(), '来源于点检');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (1, '巡检', 'inspection', 'repair_entry_source', NULL, 'primary', 'N', '0', 'admin', NOW(), '来源于巡检');
INSERT IGNORE INTO `sys_dict_data` (`dict_sort`, `dict_label`, `dict_value`, `dict_type`, `css_class`, `list_class`, `is_default`, `status`, `create_by`, `create_time`, `remark`)
VALUES (2, '手动添加', 'manual', 'repair_entry_source', NULL, 'info', 'Y', '0', 'admin', NOW(), '手动添加');
-- 4.3 设备维修明细表添加来源字段
SET @dbname = DATABASE();
SET @tablename = 'dm_repair_order_entry';
-- 添加 source_type 字段
SET @columnname = 'source_type';
SET @preparedStatement = (SELECT IF(
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) > 0,
'SELECT 1',
CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' VARCHAR(32) DEFAULT ''manual'' COMMENT ''来源类型spotcheck-点检, inspection-巡检, manual-手动添加''')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;
-- 添加 source_record_id 字段
SET @columnname = 'source_record_id';
SET @preparedStatement = (SELECT IF(
(SELECT COUNT(*) FROM INFORMATION_SCHEMA.COLUMNS WHERE TABLE_SCHEMA = @dbname AND TABLE_NAME = @tablename AND COLUMN_NAME = @columnname) > 0,
'SELECT 1',
CONCAT('ALTER TABLE ', @tablename, ' ADD COLUMN ', @columnname, ' BIGINT DEFAULT NULL COMMENT ''来源记录ID点检/巡检记录ID''')
));
PREPARE alterIfNotExists FROM @preparedStatement;
EXECUTE alterIfNotExists;
DEALLOCATE PREPARE alterIfNotExists;
-- =====================================================
-- 回滚脚本(如需回滚请执行以下语句)
-- =====================================================
/*
-- 删除设备列表状态字典
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'equipment_list_status';
DELETE FROM `sys_dict_type` WHERE `dict_type` = 'equipment_list_status';
-- 删除点检结果字典
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'spotcheck_result';
DELETE FROM `sys_dict_type` WHERE `dict_type` = 'spotcheck_result';
-- 删除巡检结果字典
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'patrol_result';
DELETE FROM `sys_dict_type` WHERE `dict_type` = 'patrol_result';
-- 删除维修明细来源字典
DELETE FROM `sys_dict_data` WHERE `dict_type` = 'repair_entry_source';
DELETE FROM `sys_dict_type` WHERE `dict_type` = 'repair_entry_source';
-- 删除维修明细表来源字段
ALTER TABLE `dm_repair_order_entry` DROP COLUMN `source_type`;
ALTER TABLE `dm_repair_order_entry` DROP COLUMN `source_record_id`;
*/
-- =====================================================
-- 5. 点检/巡检/保养频率字典标签更新
-- 说明更新inspection_plan_frequency字典的label添加具体执行时间
-- =====================================================
UPDATE `sys_dict_data` SET `dict_label` = '每日9点' WHERE `dict_type` = 'inspection_plan_frequency' AND `dict_value` = 'daily';
UPDATE `sys_dict_data` SET `dict_label` = '每周一14点' WHERE `dict_type` = 'inspection_plan_frequency' AND `dict_value` = 'weekly';
UPDATE `sys_dict_data` SET `dict_label` = '每月第一周周一14点' WHERE `dict_type` = 'inspection_plan_frequency' AND `dict_value` = 'monthly';
UPDATE `sys_dict_data` SET `dict_label` = '每季度第一周周一14点' WHERE `dict_type` = 'inspection_plan_frequency' AND `dict_value` = 'quarterly';
UPDATE `sys_dict_data` SET `dict_label` = '每年第一周周一14点' WHERE `dict_type` = 'inspection_plan_frequency' AND `dict_value` = 'yearly';