7d73d2ee57
운영판: structureAscendingListExcel.jsp / structureDescendingListExcel.jsp
backend (devBomService.ts):
- ascendingForExcel / descendingForExcel — 그리드용 ascending/descending 보다 풀 컬럼
· 추가: P_QTY(bom_part_qty.item_qty), HEAT_TREATMENT_HARDNESS, HEAT_TREATMENT_METHOD,
SURFACE_TREATMENT, MAKER, PART_TYPE_TITLE(comm_code.code_name)
- devBomExcelExportService.ts 신규 (xlsx 라이브러리)
· 헤더: 동적 L1..LMaxLevel + 품번 / 품명 / 수량 / 항목수량 / 3D / 2D / PDF /
재료 / 열처리경도 / 열처리방법 / 표면처리 / 메이커 / 범주 이름 / 비고 (wace 1:1)
· LEVEL 셀: 행의 LEV 와 동일한 컬럼에 "*", 나머지는 공백
· 3D/2D/PDF: attach_file_info count > 0 → "Y", 0 → 공백 (wace 1:1)
· 컬럼 너비: LEVEL 4, 품번/품명/재료/MAKER 등 적절히 조정
· 시트명: "BOM 정전개" / "BOM 역전개"
- controllers/devBomController.ts: excelAscending / excelDescending 추가
· Content-Disposition 에 filename + filename*=UTF-8'' 둘 다 (한글 파일명 호환)
- routes/devBomRoutes.ts: /ebom-tree/ascending/excel, /ebom-tree/descending/excel
frontend:
- lib/api/devBom.ts: excelAscending/excelDescending (responseType: "blob")
· Content-Disposition 의 filename*=UTF-8'' 우선 파싱 헬퍼 추가
- app/.../ebom-search/page.tsx: "정전개 엑셀" / "역전개 엑셀" 버튼 추가
· 현재 검색 조건 그대로 다운로드, blob → anchor.click 으로 저장
· 파일명: 서버 응답 헤더의 "BOM 조회(정전개)_YYYY-MM-DD_HH-mm.xlsx" 그대로 사용
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>