b5bc7f3630
E-BOM 조회 트리 화면 검증용 긴 BOM 1건을 운영DB 에서 RPS 로 복사 (1회성).
선정 기준 : bom_part_qty 행 수 + 트리 깊이 큼.
대상 BOM : part_bom_report.objid = '1038014721'
part_no = '21008-0109' / part_name = 'BS030-120H4A11-EN'
구조 : 126 행 / 4 레벨 (L1=1 / L2=37 / L3=62 / L4=26)
파일:
- 03_long_bom_sample.sql : TEMP staging + ON CONFLICT DO NOTHING INSERT
· pbr_stage / bpq_stage 두 TEMP 테이블에 \copy 로 적재 후 INSERT FROM SELECT
· 재실행 안전 (ON CONFLICT 시 skip)
- pbr_long.csv : part_bom_report 1행 (운영DB export, CSV HEADER)
- bpq_long.csv : bom_part_qty 126행 (운영DB export, CSV HEADER, seq ORDER BY)
- README.md : 02_sequences.sql / 03_long_bom_sample.sql 섹션 추가
용도:
- 동적 LEVEL 컬럼 (L1..L4) "*" 표시 검증
- 토글 -/+ 버튼 동작 검증 (자식 보유 행 식별 + 자손 hide 체인)
- search_level 1~5 필터 검증
- 정전개 엑셀 다운로드 검증
운영DB OBJID 그대로 사용 — RPS part_mng 가 운영DB와 동일 OBJID 보유 (이전 part_mng_sync
로 보장) 라서 PART 정보 매핑 정상.
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
77 lines
2.2 KiB
PL/PgSQL
77 lines
2.2 KiB
PL/PgSQL
BEGIN;
|
|
|
|
-- ─── PART_BOM_REPORT staging + INSERT ──
|
|
CREATE TEMP TABLE pbr_stage (
|
|
objid varchar,
|
|
customer_objid varchar,
|
|
contract_objid varchar,
|
|
unit_code varchar,
|
|
status varchar,
|
|
writer varchar,
|
|
regdate timestamp,
|
|
multi_yn varchar,
|
|
multi_master_yn varchar,
|
|
multi_break_yn varchar,
|
|
multi_master_objid varchar,
|
|
product_cd varchar,
|
|
part_no varchar,
|
|
part_name varchar,
|
|
revision varchar,
|
|
note varchar,
|
|
editer varchar,
|
|
edit_date timestamp,
|
|
deploy_date varchar
|
|
);
|
|
\copy pbr_stage FROM '/tmp/pbr_long.csv' WITH CSV HEADER
|
|
|
|
INSERT INTO part_bom_report (
|
|
objid, customer_objid, contract_objid, unit_code, status, writer, regdate,
|
|
multi_yn, multi_master_yn, multi_break_yn, multi_master_objid,
|
|
product_cd, part_no, part_name, revision, note, editer, edit_date, deploy_date
|
|
)
|
|
SELECT
|
|
objid, customer_objid, contract_objid, unit_code, status, writer, regdate,
|
|
multi_yn, multi_master_yn, multi_break_yn, multi_master_objid,
|
|
product_cd, part_no, part_name, revision, note, editer, edit_date, deploy_date
|
|
FROM pbr_stage
|
|
ON CONFLICT (objid) DO NOTHING;
|
|
|
|
-- ─── BOM_PART_QTY staging + INSERT ──
|
|
CREATE TEMP TABLE bpq_stage (
|
|
bom_report_objid varchar,
|
|
objid varchar,
|
|
parent_objid varchar,
|
|
child_objid varchar,
|
|
parent_part_no varchar,
|
|
part_no varchar,
|
|
qty numeric,
|
|
item_qty numeric,
|
|
qty_temp numeric,
|
|
regdate timestamp,
|
|
writer varchar,
|
|
seq bigint,
|
|
status varchar,
|
|
last_part_objid varchar,
|
|
deploy_user_id varchar,
|
|
deploy_date varchar
|
|
);
|
|
\copy bpq_stage FROM '/tmp/bpq_long.csv' WITH CSV HEADER
|
|
|
|
INSERT INTO bom_part_qty (
|
|
bom_report_objid, objid, parent_objid, child_objid, parent_part_no, part_no,
|
|
qty, item_qty, qty_temp, regdate, writer, seq, status, last_part_objid,
|
|
deploy_user_id, deploy_date
|
|
)
|
|
SELECT
|
|
bom_report_objid, objid, parent_objid, child_objid, parent_part_no, part_no,
|
|
qty, item_qty, qty_temp, regdate, writer, seq, status, last_part_objid,
|
|
deploy_user_id, deploy_date
|
|
FROM bpq_stage
|
|
ON CONFLICT (objid) DO NOTHING;
|
|
|
|
COMMIT;
|
|
|
|
SELECT 'PART_BOM_REPORT:' AS label, COUNT(*) FROM part_bom_report WHERE objid = '1038014721'
|
|
UNION ALL
|
|
SELECT 'BOM_PART_QTY:', COUNT(*) FROM bom_part_qty WHERE bom_report_objid = '1038014721';
|