- bom_table/bom_draft_table 加 child_bom_no/child_bom_version(子件引用的自制BOM版本) - bom_table 加 is_archived 归档标记(仍启用可查看/编辑,但不再作为子件版本候选) - 回填 60 行自制件子件引用版本,4 个多版本自制件按业务口径(79/92/226/1905) - 3 套占位/废弃配方改标归档并恢复启用
37 lines
2.0 KiB
PL/PgSQL
37 lines
2.0 KiB
PL/PgSQL
-- =============================================================================
|
||
-- 修正:占位配方"停用"改为"归档"(恢复 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;
|