Files
KCGL/db_migrations/archive_bom_placeholder_recipes.sql
yueli 6250fa94cb feat(bom): BOM 子件引用版本与归档 数据库迁移
- bom_table/bom_draft_table 加 child_bom_no/child_bom_version(子件引用的自制BOM版本)
- bom_table 加 is_archived 归档标记(仍启用可查看/编辑,但不再作为子件版本候选)
- 回填 60 行自制件子件引用版本,4 个多版本自制件按业务口径(79/92/226/1905)
- 3 套占位/废弃配方改标归档并恢复启用
2026-09-08 10:14:40 +08:00

37 lines
2.0 KiB
PL/PgSQL
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.

-- =============================================================================
-- 修正:占位配方"停用"改为"归档"(恢复 is_enabled 的启停语义)
-- -----------------------------------------------------------------------------
-- 背景: 上一版把 3 套占位配方 is_enabled=false 以退出候选,但那会影响 BOM
-- 自身的启停/编辑体验。现改为独立"归档"标记 is_archived
-- 1) 加 bom_table.is_archived 列(默认 false
-- 2) 撤销对 3 套占位配方的停用is_enabled 恢复 TRUE可查看/编辑/启停)
-- 3) 将该 3 套标记 is_archived=TRUE仍启用但不再作为其它 BOM
-- 子件的"版本候选"与可引用版本(候选/校验/回退读取均排除归档)
-- 被归档配方:
-- parent_id=79 (四代16线激光雷达安装套件V1J) ULR16-B2 V1.0
-- parent_id=226 (物联智能电源控制器V1J) TF-A4 V1.0
-- parent_id=92 (机载SUC控制器-四代一体机V1J) UHRL-B8V1J V2.0
-- 执行: docker exec -i inventory_db psql -U test -d inventory_system < 本文件
-- =============================================================================
BEGIN;
-- 1) 加归档列(幂等)
ALTER TABLE bom_table ADD COLUMN IF NOT EXISTS is_archived boolean NOT NULL DEFAULT false;
-- 2) 撤销停用:恢复 is_enabled仅作用于我们上次停用的这 3 行)
UPDATE bom_table SET is_enabled = TRUE
WHERE is_enabled = FALSE AND (
(parent_id = 79 AND bom_no = 'ULR16-B2' AND version = 'V1.0')
OR (parent_id = 226 AND bom_no = 'TF-A4' AND version = 'V1.0')
OR (parent_id = 92 AND bom_no = 'UHRL-B8V1J' AND version = 'V2.0')
);
-- 3) 标记归档(幂等,重复执行无副作用)
UPDATE bom_table SET is_archived = TRUE
WHERE (parent_id = 79 AND bom_no = 'ULR16-B2' AND version = 'V1.0')
OR (parent_id = 226 AND bom_no = 'TF-A4' AND version = 'V1.0')
OR (parent_id = 92 AND bom_no = 'UHRL-B8V1J' AND version = 'V2.0');
COMMIT;