Files
wuhan-saga/database/patch_single_equipment_catalog.sql

111 lines
6.2 KiB
SQL
Raw Permalink 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.

-- ================================================================
-- 第一部分:取消软删 — 单体设备相关产品分类 + 单体设备记录
-- (若未执行过误删可跳过本段,重复执行亦安全)
-- ================================================================
SET NAMES utf8mb4 COLLATE utf8mb4_unicode_ci;
-- 1) 恢复「单体设备 / 核心单体设备」根分类
UPDATE f_product_category
SET del_flag = 0
WHERE del_flag = 1
AND name_zh IN ('单体设备', '核心单体设备');
-- 2) 恢复挂在上述根下的子分类(名称关联,不要求 module_type 已正确)
UPDATE f_product_category child
INNER JOIN f_product_category parent ON parent.product_category_id = child.parent_id
SET child.del_flag = 0
WHERE child.del_flag = 1
AND parent.name_zh IN ('单体设备', '核心单体设备');
-- 3) 恢复历史上常用的单体子目录 ID 段migration 5162、图册 200205
UPDATE f_product_category
SET del_flag = 0
WHERE del_flag = 1
AND (
product_category_id BETWEEN 51 AND 62
OR product_category_id BETWEEN 200 AND 205
);
-- 4) 恢复单体设备根上 module_type = equipment 但被软删的行(若有)
UPDATE f_product_category
SET del_flag = 0
WHERE del_flag = 1
AND module_type = 'equipment'
AND (parent_id IS NULL OR parent_id = 0);
-- 5) 恢复 f_single_equipment分类属 equipment或挂在已知单体分类 ID 上
UPDATE f_single_equipment se
LEFT JOIN f_product_category pc ON pc.product_category_id = se.category_id AND pc.del_flag = 0
SET se.del_flag = 0
WHERE se.del_flag = 1
AND (
pc.module_type = 'equipment'
OR se.category_id BETWEEN 51 AND 62
OR se.category_id BETWEEN 200 AND 205
OR se.category_id = 5
);
-- ================================================================
-- 第二部分:图册六大子类 + 图册设备(仅追加,判重插入)
-- ================================================================
SELECT COALESCE(
(SELECT product_category_id FROM f_product_category
WHERE module_type = 'equipment' AND (parent_id IS NULL OR parent_id = 0)
ORDER BY del_flag ASC, sort_order, product_category_id LIMIT 1),
(SELECT product_category_id FROM f_product_category
WHERE name_zh IN ('单体设备', '核心单体设备')
ORDER BY del_flag ASC, product_category_id LIMIT 1)
) INTO @equip_root;
UPDATE f_product_category
SET module_type = 'equipment'
WHERE product_category_id = @equip_root
AND (@equip_root IS NOT NULL)
AND (module_type IS NULL OR module_type = '' OR module_type <> 'equipment');
-- 仅插入/更新六个图册子类,不碰其它子目录
INSERT INTO f_product_category (product_category_id, name_zh, name_en, module_type, parent_id, sort_order, is_published) VALUES
(200, '卷取设备', 'Reeling & Coiling Equipment', 'equipment', @equip_root, 200, 1),
(201, '炉类设备', 'Furnace Equipment', 'equipment', @equip_root, 201, 1),
(202, '涂布与焊接设备', 'Coating & Welding Equipment', 'equipment', @equip_root, 202, 1),
(203, '破鳞设备', 'Scale Breaking Equipment', 'equipment', @equip_root, 203, 1),
(204, '拉矫矫直设备', 'Leveling & Straightening Equipment', 'equipment', @equip_root, 204, 1),
(205, '剪切修边设备', 'Shearing & Trimming Equipment', 'equipment', @equip_root, 205, 1)
ON DUPLICATE KEY UPDATE
name_zh = VALUES(name_zh),
name_en = VALUES(name_en),
module_type = 'equipment',
parent_id = VALUES(parent_id),
sort_order = VALUES(sort_order),
del_flag = 0,
is_published = 1;
-- 图册 15 条:按「分类 + 中文名」判重,已存在则跳过
INSERT INTO f_single_equipment (category_id, name_zh, name_en, technical_highlights_zh, technical_highlights_en, sort_order, is_published)
SELECT s.category_id, s.name_zh, s.name_en, s.tzh, s.ten, s.so, s.pub
FROM (
SELECT 200 AS category_id, '开收卷机(机型一)' AS name_zh, 'Payoff / Tension Reel (Type A)' AS name_en, '板材开卷、张力卷取与收卷' AS tzh, 'Strip payoff, tension reel and recoiling' AS ten, 200 AS so, 1 AS pub UNION ALL
SELECT 200, '开收卷机(机型二)', 'Payoff / Tension Reel (Type B)', '重载卷取与张力控制', 'Heavy-duty recoiling with tension control', 210, 1 UNION ALL
SELECT 201, '立式炉', 'Vertical Furnace', '立式布置热处理炉', 'Vertically arranged heat-treatment furnace', 220, 1 UNION ALL
SELECT 201, '卧式炉', 'Horizontal Furnace', '卧式连续热处理炉', 'Horizontal continuous heat-treatment furnace', 230, 1 UNION ALL
SELECT 202, '焊机', 'Welder', '带钢闪光焊、搭接焊等', 'Flash welding, lap welding for strip joining', 240, 1 UNION ALL
SELECT 202, '立式涂机', 'Vertical Coating Machine', '立式辊涂、涂层施加', 'Vertical roll coater / film application', 250, 1 UNION ALL
SELECT 202, '卧式涂机', 'Horizontal Coating Machine', '水平涂覆与烘干前道工序', 'Horizontal coating application', 260, 1 UNION ALL
SELECT 203, '破鳞机(机型一)', 'Scale Breaker (Type I)', '热轧氧化铁皮破碎与疏松', 'Breaking and loosening hot-rolled scale', 270, 1 UNION ALL
SELECT 203, '破鳞机(机型二)', 'Scale Breaker (Type II)', '另一型式破鳞与延伸', 'Alternative scale breaking configuration', 280, 1 UNION ALL
SELECT 204, '拉矫机', 'Tension Leveler', '带钢拉伸弯曲矫直', 'Tension leveling / stretch leveling', 290, 1 UNION ALL
SELECT 204, '两弯两矫拉弯矫直机', 'Two-bend Two-straight Stretch-bend Leveler', '多辊拉弯矫直改善板形', 'Multi-roll stretch-bend leveling for strip shape', 300, 1 UNION ALL
SELECT 205, '圆盘剪', 'Side Trimmer', '两侧碎边裁剪宽度', 'Side trimming for strip width', 310, 1 UNION ALL
SELECT 205, '碎边剪', 'Edge Chop Shear', '碎边切断与收集', 'Chopping and handling of edge trim', 320, 1 UNION ALL
SELECT 205, '圆盘剪(双刀头)', 'Side Trimmer (Twin Knife Head)', '双刀头提高修边效率', 'Twin knife heads for trimming efficiency', 330, 1 UNION ALL
SELECT 205, '双刀头碎边圆盘剪', 'Twin-head Edge-chop Disc Shear', '碎边与圆盘剪组合结构', 'Combined edge chop and disc shear', 340, 1
) AS s
WHERE NOT EXISTS (
SELECT 1 FROM f_single_equipment se
WHERE se.del_flag = 0 AND se.category_id = s.category_id AND se.name_zh = s.name_zh
);
ALTER TABLE f_product_category AUTO_INCREMENT = 210;