f34eddb9fc
배경: item_info에 wace 마이그레이션(numeric id 8,179건) + RPS 자체 등록(UUID 21k건)이 섞여 있어 PartSelect/그리드 JOIN에서 잡 데이터(-20260126-, 00 등)와 RPS 자체 등록 데이터가 노출됨. wace 도메인 메뉴는 part_mng만 참조하도록 분리. 개발관리 등 다른 wace 메뉴도 동일 테이블 활용. 변경: - DDL: docs/migration/sales/ddl-extracted/105_create_part_mng.sql (item_info의 numeric id 데이터를 part_mng로 컬럼 매핑 INSERT, 8,176건 적재) - backend service JOIN 6곳 교체: item_info IT → part_mng PM (PM.objid::varchar = CI.part_objid) · salesEstimateService.ts (getList LATERAL JOIN, getById 라인 조회 — 2곳) · salesOrderMgmtService.ts (getList, getById, getOrderFormView, createProjectsFromContract — 4곳) - /sales/parts endpoint: part_mng SELECT + status active/release/활성 필터. 반환 키는 기존 호환을 위해 id/item_number/item_name으로 alias (objid::varchar/part_no/part_name). - 자동 검증: scripts/verify-part-mng.sql (카운트·JOIN·그리드 SQL·잡 데이터 제거 검증) 영향: - item_info는 그대로 — RPS 자체 메뉴(/sales/sales-item 등) 전용으로 유지 - ecrMngService, wacePlmDataImportService 등 RPS 다른 모듈은 이미 part_mng 사용 가정 → 자연 활성화 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
39 lines
2.0 KiB
SQL
39 lines
2.0 KiB
SQL
-- ============================================================
|
|
-- part_mng — wace 품목 마스터 데이터 채움 (영업/개발 메뉴 공용)
|
|
-- ----------------------------------------------------------------
|
|
-- 배경:
|
|
-- - part_mng 테이블은 이미 vexplor_rps에 존재 (스키마는 wace 운영 part_mng와 일치)
|
|
-- 스키마: objid bigint, part_no, part_name, part_type, status, writer, regdate, company_code
|
|
-- - 데이터는 0건이라 비어있음. 다른 RPS 모듈(ecrMngService, wacePlmDataImportService)도 part_mng 사용 가정으로 만들어져 있음.
|
|
-- - item_info에는 wace 마이그레이션(numeric id 8,179건) + RPS 자체 등록(UUID 20k+)이 섞여 있음.
|
|
-- wace 데이터만 part_mng로 옮기고, wace 도메인 메뉴는 part_mng를 참조.
|
|
-- ----------------------------------------------------------------
|
|
-- 작업: item_info의 wace numeric id 8,179건을 컬럼명 매핑해서 part_mng에 INSERT
|
|
-- item_info.id (varchar) → part_mng.objid (bigint)
|
|
-- item_info.item_number → part_mng.part_no
|
|
-- item_info.item_name → part_mng.part_name
|
|
-- item_info.type/division → part_mng.part_type (있으면)
|
|
-- item_info.status → part_mng.status
|
|
-- item_info.writer → part_mng.writer
|
|
-- item_info.created_date → part_mng.regdate
|
|
-- item_info.company_code → part_mng.company_code
|
|
-- ============================================================
|
|
|
|
INSERT INTO part_mng (objid, part_no, part_name, part_type, status, writer, regdate, company_code)
|
|
SELECT
|
|
CAST(id AS bigint),
|
|
item_number,
|
|
item_name,
|
|
COALESCE(NULLIF(type, ''), NULLIF(division, '')),
|
|
LOWER(COALESCE(NULLIF(status, ''), 'active')),
|
|
writer,
|
|
created_date,
|
|
company_code
|
|
FROM item_info
|
|
WHERE id ~ '^-?[0-9]+$'
|
|
AND item_number IS NOT NULL AND item_number <> ''
|
|
AND item_name IS NOT NULL AND item_name <> ''
|
|
ON CONFLICT (objid) DO NOTHING;
|
|
|
|
COMMENT ON TABLE part_mng IS 'wace 품목 마스터 (영업/개발 메뉴 공용) — item_info의 wace numeric id 데이터 분리';
|