7a7f4f03b5
PR-B1 본 편집/저장 (운영 saveMbom.do 1:1)
· 매퍼 7종 1:1 (insert/updateMbomHeader, insert/updateMbomDetail,
deleteMbomDetailByObjid, insertMbomHistory, updateProjectMbomStatus)
· 신규 CREATE: createObjId + generateMbomNo(M-{partNo}-YYMMDD-NN) +
child_objid 재매핑 + detail 일괄 insert + history(CREATE) + project_mgmt.mbom_status='Y'
· 수정 UPDATE: 기존 mbom_header.objid UPSERT(insert/update/delete) + history(UPDATE)
· POST /api/production/mbom/save (BEGIN/COMMIT/ROLLBACK 트랜잭션)
· MbomDetailDialog: '본 편집' 토글 + 13개 셀 인라인 편집 + 저장/취소 가드
M-BOM 컬럼 폴더 아이콘
· production/mbom/page.tsx: mbom_status 컬럼 → mbom_has(0/1) renderType=folder
· onClick → MbomDetailDialog 오픈 (행 더블클릭도 그대로 유지)
· 운영판 wace 견적/partMng 폴더 아이콘 패턴 1:1
DataGrid 서버 페이지네이션
· props 신설: serverPaging/serverPage/serverPageSize/serverTotalItems
+ onPageChange/onPageSizeChange
· 5메뉴 적용: production/mbom, development/change-list/ebom-regist/part-search/part-regist
· pageSizeOptions=[10,15,20,50,100,200,500] 통일
· 클라이언트 모드 하위호환 유지
bigint=varchar fix (mbom 트리 SQL 4종)
· ATTACH_FILE_INFO 서브쿼리: P.OBJID(bigint) = F.TARGET_OBJID(varchar) → P.OBJID::varchar 캐스트
· EBOM_WORKING_TREE_SQL INNER JOIN: P.OBJID = COALESCE(V.LAST_PART_OBJID,V.PART_NO) → ::varchar 캐스트
· 사용자 보고: 폴더 클릭 시 'operator does not exist: bigint = character varying' 토스트
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>