hjjeong
21cd81bd79
docs(production): 생산관리 README 신규 — 5메뉴 + PR-B5+ BOM 복사 + 매퍼 매핑
...
sales/README.md 패턴 따라 생산관리 도메인 전체 문서화:
- 정책: 5개 메뉴(M-BOM/계획실적×2/소요량×2)가 전부, vexplor 잔재(bom/plan-management/process-info/result/work-instruction) 제외
- 메뉴 매핑표 + 도메인 테이블 + data-sync/ddl-extracted 인덱스
- productionplanning.xml 23개 매퍼 → mbomService/prodPlanResultService/mbomRequirementService 1:1 표
- PR-A0~B5+ 진행 흐름 + 대표 커밋
- 5메뉴 1:1 검증 결과(Agent 5병렬, 2026-05-15)
- PR-B5+ BOM 복사 다이얼로그 상세 (BomCopyDialog, 도면업로드 차이 명시)
- 다음 작업 후보 6종
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-15 11:14:20 +09:00
hjjeong
2e3a430cf7
공용 — PageHeader 신설 (메뉴명 자동 매칭) + M-BOM 메뉴명 복원
...
CompactFilterBar 마이그레이션 과정에서 M-BOM 페이지 상단 메뉴명/설명이 사라진
회귀를 해결. customer-cs/cs 의 페이지 헤더 패턴을 공용 컴포넌트로 추출.
신설:
- components/common/PageHeader.tsx
· usePathname() + useMenu() 자동 매칭 → menu_info.menu_name_kor + menu_desc
· 명시 props (title/description/actions) 지원
· 동적 라우트 prefix fallback (/foo/123 → /foo 매칭)
적용:
- production/mbom/page.tsx 상단에 <PageHeader /> 1줄 추가
DB:
- menu_info.menu_desc 보강 (objid 100016/100032)
"생산용 BOM 트리 + read-only 조회 (운영판 mBomMgmtList 1:1)"
메모리: feedback_compact_search_pattern.md 갱신
- PageHeader 도 의무 사용 컴포넌트 목록에 추가
- 페이지 구조 표준 코드 예시 명시
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 16:49:09 +09:00
hjjeong
55239547d6
생산관리>data-sync — production_plan 신설 + 운영 sample 2행 이관
...
PR-A2 단건 상세의 TOTAL_PROD_QTY 서브쿼리(`SELECT NULLIF(PP.TOTAL_PROD_QTY,'')::numeric
FROM PRODUCTION_PLAN PP WHERE PP.PROJECT_OBJID=PM.OBJID AND UPPER(PP.STATUS)='ACTIVE'`)
의존 테이블을 운영판 11133.waceplm에서 1:1 추출해 RPS 11134.vexplor_rps에 신설.
- 402_production_plan.sql: 19 컬럼 / 4 인덱스 (objid, project_objid, total_prod_qty 포함)
- 04_production_plan_sync.sql: 운영 sample 2행
- 1058002488 / W/M ASSY (-1752090174, total=4)
- 1439133152 / O-RING ( 1157387151, total=5)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 16:29:38 +09:00
hjjeong
66cee22be3
생산관리>M-BOM 관리 — PR-A1 그리드/검색 (mBomMgmtGridList 1:1 이식)
...
운영 wace productionplanning/mBomMgmtList.jsp + productionplanning.xml:2874-3119
mBomMgmtGridList 매퍼 1:1 이식. PROJECT_MGMT × CONTRACT_ITEM 펼침 그리드
+ M-BOM 헤더/히스토리/구매리스트 상태 표시 + 9 검색 필터.
백엔드 (3 파일 + app.ts 마운트):
- services/mbomService.ts — list() : 9 검색 필터 + 30+ 컬럼 SELECT
· 주문유형/제품구분/국내해외(CODE_NAME 비교)/고객사(C_ 3-way)/유무상/SN(EXISTS)
· 품번/품명(PM·CI 양쪽 LIKE)/접수일·요청납기 범위
· WRITER_NAME/MBOM_EDITOR : user_name() PL/pgSQL (PR-A0 신설)
· MBOM_STATUS/MBOM_PART_NO/MBOM_REGDATE/MBOM_VERSION : mbom_header+history 서브쿼리
· PURCHASE_LIST_OBJID/_DATE : sales_request_master.mbom_header_objid 매칭
· CUSTOMER_NAME : CASE C_% → client_mng / ELSE → supply_mng
- controllers/mbomController.ts — getList
- routes/productionMbomRoutes.ts — GET /list
- app.ts — /api/production/mbom 마운트 (productionRoutes 다음)
프론트 (3 파일):
- lib/api/mbom.ts — MbomListFilter / MbomRow / mbomApi.list
- app/(main)/COMPANY_16/production/mbom/page.tsx — 검색 폼 2행(12 필드) + 16 컬럼 DataGrid
· comm_code 옵션 로드: /api/sales/codes/0000167 (주문유형) /0000001 (제품구분) /0001782 (유무상)
· 고객사: /api/sales/customers 재사용 (customer_mng)
· 국내/해외 + 유상/무상 raw 옵션
- app/(main)/COMPANY_16/purchase/mbom/page.tsx — production/mbom 페이지 re-export
(사용자 요청: 구매관리 메뉴 트리에도 동일 화면 노출)
메뉴 (data-sync):
- 03_mbom_menu_dedup.sql — menu_info 100016(purchase/mbom) + 100032(production/mbom)
양쪽 active 보장 (이미 DB에 등록되어 있던 entry)
PR-A2 이후 분리:
- 단건 상세 다이얼로그, read-only mbom_detail 트리 표시
- BOM 복사 (E-BOM→M-BOM 트리 복사)
- 구매리스트 생성 액션 (M-BOM→PURCHASE)
- M-BOM 본 편집 (4프레임 팝업)
검증:
- backend nodemon hot-load OK (401 TOKEN_MISSING 응답으로 라우터 등록 확인)
- 매퍼 SQL 직접 실행: PROJECT_MGMT × CONTRACT_ITEM 5건 + CUSTOMER/M-BOM 매칭 정상
- typecheck: 신규 코드 0 에러 (pre-existing 에러만 잔존)
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 15:57:23 +09:00
hjjeong
7af366c595
생산관리>M-BOM 관리 — PR-A0 의존 테이블 신설 (mbom_history/sales_request_master/client_mng + user_name fn)
...
이전 04cfac6e (구매관리>data-sync) 분류 정정: M-BOM 은 운영 wace "생산관리_M-BOM관리"
메뉴에 1:1 대응. docs/migration/purchase/ → docs/migration/production/ 폴더 rename.
신규 DDL (401_mbom_dependencies.sql):
- mbom_history (8 cols) — M-BOM 변경 이력. FK→mbom_header CASCADE,
PK objid, idx (header_objid, change_date)
- sales_request_master (27 cols) — 구매요청서 마스터. PK objid,
mbom_header_objid 컬럼(FK 없음), doc_type/recipient_ref/executor/title 등
M-BOM→PURCHASE 연계 컬럼, idx (doc_type, mbom_header_objid)
- client_mng (117 cols) — 거래처 마스터. uk(client_cd), idx 3종
- user_name(varchar) PL/pgSQL — 그리드 WRITER_NAME/MBOM_EDITOR 표시용
(운영 mBomMgmtGridList:user_name(MH.WRITER) 1:1)
운영 sample 이관 (02_mbom_dependencies_sync.sql):
- mbom_history 14 / sales_request_master 3 / client_mng 8,946 → RPS 전이
- staging 패턴(LIKE INCLUDING DEFAULTS + PK·FK·UK 제거) 으로 무결성 우회
- mbom_history: mbom_header 매칭 없는 행은 import 제외 (FK CASCADE 호환)
- sales_request_master: mbom_header_objid 매칭 안 되면 NULL fallback
검증:
- contract_mgmt.customer_objid LIKE 'C_%' → client_mng 매칭 성공
(운영 매퍼 CUSTOMER_NAME 분기 RPS 에서 그대로 동작)
- user_name('admin') → '관리자' 반환 확인
- M-BOM 관리 화면 PR-A1 (그리드/검색/상세) 의 모든 의존 테이블 준비 완료
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com >
2026-05-13 15:43:21 +09:00