자재 유형 탭 — 원자재/부자재 전환. 탭에 따라 목록·필터 카테고리 세트와 코드 접두어(원자재 R-01·부자재 R-02 등)가 달라진다.
검색 — 자재코드·자재명 부분일치 검색. Enter 또는 [검색] 시 목록 조회 파라미터로 전달된다.
필터 패널(토글) — 카테고리(6종)·단위 조건은 서버 필터 적용 중, 등록일 범위·규격은 BE 확장 대기(IF-PM-MAT-001, ISS-0060 3단계 미결정)로 조건을 겹쳐 적용해 목록을 좁힌다.
액션 버튼 — [+ 자재 등록](빈 폼 SCR-PM-002)·[복사 등록](선택 행 프리필)·[단가 묶음 등록]·[Excel 다운로드]. 등록은 ROLE_PM_EDITOR 이상만 노출. [단가 묶음 등록]은 고른 자재 여러 건에 거래처 하나·기간을 한 번 매기고 단가는 자재 줄마다 받는다 — 고른 자재가 없으면 비활성이고 정본은 SCR-PM-006 R-PM006-BULK-PRICE 다(#1708). [Excel 업로드]는 내려받은 파일을 고쳐 그대로 올리는 단추다 — 없는 자재코드는 등록하고 있는 자재코드는 고친다. 누르면 파일 고르기 → 미리보기 → 반영 → 결과 차례로 간다(R-PM-001-EXCEL-UPSERT, #2460). ROLE_PM_EDITOR 이상만 보인다. 원자재·부자재 탭이 같은 흐름이다.
목록 테이블 — 자재코드 정렬(▲), 행 클릭 시 자재 상세(SCR-PM-003) 진입, 좌측 체크박스로 다중 선택(복사·삭제 대상 지정).
페이지네이션 — 서버 페이징. 페이지 이동 + 페이지당 표시 개수(20/50/100) 선택.
GET/api/pm/materials/export — Excel 다운로드(현재 탭·필터 기준 15열 — 이 파일이 올리기 양식이다)
POST/api/pm/materials/import?mode=PREVIEW|APPLY — Excel 업로드(미리보기 뒤 반영, IF-DATA-EXCEL-005)
자재관리 › 자재 목록
CMD+K 검색
🔔3
탭 · 검색 · 필터바
1원자재부자재
2자재코드/자재명 검색검색필터 ▾
3필터 패널(토글): 카테고리(6종) · 단위 — 서버 필터 적용 / 등록일 범위 · 규격 — BE 확장 대기 (IF-PM-MAT-001, ISS-0060 3단계 미결정)
액션 버튼
4+ 자재 등록복사 등록단가 묶음 등록Excel 다운로드Excel 업로드
5목록 테이블 (행 클릭 → 상세)
☐
자재코드 ▲
자재명
카테고리
규격
단위
수정일
☐
R-01-00001
상틀 알루미늄
PROFILE
W×60×70
EA
04.05
☐
R-02-00012
로이유리 복층
GLASS
5+12A+5
EA
04.03
☐
R-01-00023
하틀 알루미늄
PROFILE
W×60×70
EA
03.28
6페이지네이션
123… / 820개/페이지
SCR-PM-001자재 목록 · Excel 올리기 — 미리보기
고쳐 올린 파일이 무엇을 바꿀지 먼저 보여 준다 · 아직 아무것도 쓰지 않았다 · [반영] 을 눌러야 쓴다 (권한 ROLE_PM_EDITOR 이상, R-PM-001-EXCEL-UPSERT #2460)
진입 — SCR-PM-001 [Excel 업로드] → 파일 고르기 → [미리보기]
다음 단계 — [N건 반영] → 결과 · [다른 파일 고르기] → 파일 고르기 · [취소] → 목록
파일과 상태 — 파일 이름·행 수와 「아직 반영하지 않았습니다」를 적는다. 미리보기는 서버에 남지 않는다.
수 넷 — 등록·수정·건너뜀·실패. 넷을 더하면 파일의 행 수다. 건너뜀은 값이 같아 손대지 않는 행이고 목록으로는 보여 주지 않는다.
경고 — 자재 구성표에서 쓰는 자재의 단위·용량단위·단위중량이 바뀌는 행이 있으면 띄운다. 막지는 않는다(화면 한 건 고치기도 막지 않는다).
탭 셋 — [수정]·[등록]·[실패]. 수가 0 인 탭은 흐리게 둔다. [실패] 탭의 열은 행·자재코드·열·까닭이다.
수정 표 — 바뀌는 항목마다 한 줄(전 → 후). 빈 값은 「(빈 값)」. 구성표에서 쓰는 자재의 경고 칸에는 ⚠ 를 단다. 파일에서 비워 둔 칸은 「그대로 둔다」라 여기 나오지 않는다.
경고 확인 칸 — 경고가 있을 때만 그린다. 체크해야 [반영] 이 켜지고 confirmWarnings=true 를 보낸다.
[N건 반영] — N 은 등록 + 수정. 0 이면 비활성. 같은 파일을 mode=APPLY 로 다시 올리고 미리보기 응답의 fileSha256·previewedAt 을 함께 보낸다. 실패 행은 빼고 반영한다.
앞 단계 ① 파일 고르기 안내문 — 파일 고르기 칸 아래에 다섯 줄을 늘 보인다(원문 정본 DE22-1 §01 「안내 문구」). 셋째 줄은 「칸을 비워 두면 그 값은 그대로 둡니다. 값을 지우려면 자재 상세 화면에서 지우세요. 단, 새 자재는 자재명·자재유형·분류·규격을 꼭 채우세요.」다(#2521). 넷 중 하나라도 빈 새 자재 행은 [실패] 탭에 서버 안내문으로 나온다.
POST/api/pm/materials/import?mode=PREVIEW — 미리보기(쓰지 않음). 등록·수정·건너뜀·실패 수와 바뀔 칸을 돌려준다
POST/api/pm/materials/import?mode=APPLY&fileSha256=&previewedAt=&confirmWarnings= — 반영. 파일을 처음부터 다시 판정해 쓴다
자재관리 › 자재 목록 › Excel 올리기 (모달)
Excel 올리기 — 미리보기1materials_20260930.xlsx · 250행 · 아직 반영하지 않았습니다
2바뀔 내용 요약
등록 3수정 40건너뜀 200 (값이 같음)실패 7
3⚠ 자재 구성표에서 쓰는 자재 2건의 단위·용량단위·단위중량이 바뀝니다. 계산 결과가 달라질 수 있습니다.
4수정 40등록 3실패 7
5수정될 칸 (전 → 후)
행
자재코드
자재명
바뀌는 항목
전
후
경고
12
UNI-A225-101A
225 상틀
단위중량(kg/m)
1.2
1.25
⚠ 구성표 2건
12
규격
W×60×70
W×60×70×1.2t
18
04-0002
6.7×5mm 모헤어
비고
(빈 값)
기밀용
[실패] 탭 예 — 47행 · 02-0077 · 자재유형(RAW/SUB) · 「자재유형은 바꿀 수 없습니다. 지금 값은 SUB 입니다.」 / 52행 · R-01-00009 · — · 「휴지통에 있는 자재입니다. 휴지통에서 먼저 되살리세요.」 / 60행 · 04-0018 · — · 「내려받은 뒤에 다른 사람이 고친 자재입니다. 다시 내려받아 고치세요.」
확인 · 반영
6☐ 경고 2건을 확인했습니다실패 7건은 반영되지 않습니다취소다른 파일 고르기743건 반영
SCR-PM-001자재 목록 · Excel 올리기 — 결과
반영이 끝난 뒤 실제로 쓴 수와 실패 행을 보여 준다 · 닫으면 목록을 새로 읽는다 (R-PM-001-EXCEL-UPSERT #2460)
진입 — 미리보기에서 [N건 반영]
다음 단계 — [닫기] → SCR-PM-001 (목록 새로 읽기) · 고친 자재의 이력은 SCR-PM-003 [변경이력] 탭
결과 수 — 실제로 쓴 등록·수정 수와 건너뜀·실패 수. 미리보기와 다를 수 있다 — 그 사이 다른 사람이 고친 자재는 반영 때 실패로 바뀐다.
실패 표 — 행·자재코드·열·까닭. 까닭은 서버가 준 안내문을 그대로 적는다. 실패가 없으면 「모두 반영했습니다」 한 줄만 보인다.
[실패 목록 내려받기] — 실패 표를 xlsx 로 받는다. 화면이 응답으로 만든다(서버 주소 없음).
고친 자재의 [변경이력] 탭에 「엑셀 일괄 수정 — 파일 이름 · 올린 때」가 남습니다3실패 목록 내려받기4닫기
SCR-PM-002자재 등록
자재 유형 선택 후 기본 정보 입력 · 카테고리별 전용 섹션(PROFILE·부자재) · 저장 (권한 ROLE_PM_EDITOR 이상, 복사 등록 프리필 지원)
진입 — SCR-PM-001 [+ 자재 등록] 또는 [복사 등록] / 사이드바 > 자재관리 > 자재 등록(직접 메뉴) / SCR-PM-013 BOM 팔레트 「검색 결과 없음」 아래 [+ 자재 등록](returnTo — #2112)
다음 단계 — [저장] 뒤 SCR-PM-003(자동 이동) — 도착한 상세 머리에 한 번 [거래처 매핑 탭으로](탭은 주소 ?tab= 으로 짚는다) · BOM 팔레트에서 왔으면(returnTo) [BOM 편집으로 돌아가기] 를 주 단추로 (#2107 9·10).
자재 유형 선택 — 원자재/부자재 라디오 선택. 선택값에 따라 카테고리 후보 세트와 아래 조건부 섹션(③④) 노출이 달라진다.
기본 정보 폼 — 자재코드는 입력 즉시 중복확인하며 ✅ 사용 가능 / ❌ 활성 자재와 중복 / ♻️ 휴지통 자재와 중복(→ [복원] 버튼으로 기존 자재 복원) 3상태로 분기한다(R-MAT-TRASH-RESTORE). 자재명·규격·단위·카테고리를 입력하고, SCR-PM-001의 [복사 등록]으로 진입하면 원본 자재값이 프리필된다. 카테고리 아래 발주 제품군(선택)은 발주서 원자재·부자재 서식의 줄 차례를 정하는 무리다 — 공통코드 ORDER_GROUP 다섯 값 중 하나를 고르거나 비운다(비우면 기타). 원자재·부자재 모두 보인다(#3390 · §01 「발주 제품군 칸」). 그 아래 생산 라인(선택)은 발주 3단계 절단 결과를 라인별로 묶는 값이다 — 공통코드 PRODUCTION_LINE(프레임 · 문짝 · 커튼월 · 단열재, 잠정) 중 하나를 고르거나 비운다(비우면 라인 미지정). 📌 #3993 · ⏳ 서버·화면 반영 전 (§01 「생산 라인 칸」).
PROFILE 전용 섹션 — 카테고리가 PROFILE일 때만 노출. 다이스 코드·단위 중량(kg/m)을 입력한다.
부자재 전용 섹션 — 자재 유형이 부자재일 때만 노출. 용도·용량 단위(필수)·사양·보관 방법을 입력한다.
추가 정보 — 비고 텍스트와 이미지(JPG/PNG, 5MB 이하) 업로드.
거래처·단가 안내 — 거래처·구매 단가는 이 화면에서 입력하지 않고, 등록 완료 후 상세 화면의 [거래처 매핑] 탭에서 별도 연결한다.
저장/취소 액션 — [저장] 시 신규 자재로 등록되고 상세(SCR-PM-003)로 이동, [취소] 시 목록(SCR-PM-001)으로 복귀.
새 단추 (#2112 — 정본 「이탈」 행)거래처 매핑 탭으로자리: 도착한 SCR-PM-003 머리 — 등록 직후 한 번BOM 편집으로 돌아가기자리: 같은 자리 — returnTo 가 있을 때
SCR-PM-003자재 상세 / 수정 · [기본정보] 탭
자재 마스터 조회·수정 (자재 코드 수정 불가) · 이미지 조회/교체/삭제 · BOM 미포함 시만 삭제 활성 (조회 VIEWER / 수정 EDITOR)
진입 — SCR-PM-001 [행 클릭] / SCR-PM-002 등록 뒤 자동 이동 / SCR-ES-003 검토 제출 막힘 안내의 자재 코드 / 발주 위저드 3단계 [표준 길이 등록 →](새 창 — #2112)
다음 단계 — [BOM 사용처] 줄 → SCR-PM-013 · [거래처 매핑] 전체 → SCR-PM-006 · returnTo 를 받고 왔으면 머리에 [○○로 돌아가기](탭을 옮겨도 유지, 새 창이면 창 닫기) · 표준 길이 칸은 발주 위저드 3단계 [표준 길이 등록 →] 가 새 창으로 연다 (#2106 ⑰ · #2112).
탭 바 — 기본정보/거래처 매핑/BOM 사용처/변경이력 4탭 전환. 현재 탭은 [기본정보].
상세 폼 · 기본 정보 — 자재코드는 수정 불가(배지 표시)로 고정하고, 자재명·규격·단위·카테고리는 편집 가능하다. 발주 제품군도 여기서 고치거나 비운다 — 등록 화면과 같은 칸이다(#3390 · §01 「발주 제품군 칸」). 생산 라인도 같은 자리에서 고치거나 비운다(📌 #3993 · ⏳ 반영 전 · §01 「생산 라인 칸」).
PROFILE 전용 섹션 — 카테고리가 PROFILE인 자재만 다이스 코드·단위 중량을 노출·편집한다. 표준 길이(원자재 막대 한 본의 길이 — 기본·범위·조정 허용)도 이 영역에 둔다 — 행이 없으면 「표준 길이 미등록」 + [표준 길이 등록], 있으면 [고치기] (#2112 · §01 「표준 길이 칸」, IF-PM-LEN-001).
비고 · 이미지 · 감사 정보 — 이미지 조회/교체/삭제, 하단에 등록자·수정자 감사 정보(일시 포함)를 표시한다.
삭제/취소/저장 액션 — [삭제]는 이 자재가 BOM에 포함되지 않은 경우만 활성화된다(본 예시는 [BOM 사용처] 탭 기준 3건 포함이라 비활성 표시). [취소]/[저장]으로 폼을 종료한다.
POST/api/pm/items/{itemCode}/partners/{partnerMaterialId}/prices — 신규 단가 등록
자재관리 › 자재 상세 · 거래처 매핑
CMD+K 검색
🔔3
기본정보1거래처 매핑BOM 사용처변경이력
2매핑 목록 (인라인 5컬럼 · 행 클릭 → 아코디언)
거래처 매핑3+ 거래처 추가
상태
거래처
별칭
단가
적용 기간
🟢 유효
가공소A
GA-TOP-A
12,500 / EA
2026-04-01 ~ (현재)
🟢 유효
동신테크
DST-PCS-100
📦 8,500 / 박스(100 EA) → 85 / EA
2026-04-15 ~ (현재)
⚪ 종료
가공소B ⚠ 비활성
—
11,800 / EA
2026-03-01 ~ 2026-05-31
4단가 이력 아코디언 (▼ 가공소A · 최근 5건)
적용시작
적용종료
이전단가
변경단가
변경사유
2026-04-01
(현재)
12,000
12,500
원자재 인상
2026-01-15
2026-03-31
11,800
12,000
분기 조정
유효 단가 행 강조 — 정본 규칙은 배경 #E8F5E9(연두)+볼드, 본 로우파이는 그레이스케일로 대체(회색 볼드) 표기 · 최근 5건만 표시 — 전체 이력은 SCR-PM-006 으로 이동
5신규 단가 등록
단가2026-05-01 📅변경 사유등록
SCR-PM-003자재 상세 / 수정 · [BOM 사용처] 탭
이 자재를 참조하는 BOM 목록 — 구성표 안 자리마다 한 줄(상위 품목·수량·산식) · 초안(DRAFT) 판 줄은 그 자리에서 수량·산식 고치기 · 필터(EBOM/MBOM·상태·검색) · 제품코드 글자 → BOM 트리(SCR-PM-013) · 비페이징(전건 로드) (#4117, ⏳ 서버·화면 반영 전)
진입 — SCR-PM-001 [행 클릭] 후 [BOM 사용처] 탭 전환
탭 바 — 4탭 중 현재 [BOM 사용처] 탭이 활성 상태다.
BOM 사용처 헤더 — 이 자재를 사용하는 BOM 건수("총 N건" — 제품·유형·버전 묶음 수, 삭제 막기 안내와 같은 값)와 펼친 자리 수("자리 M곳")를 표시한다.
삭제 비활성 안내 — 이 자재가 포함된 BOM이 존재하면 [기본정보] 탭의 [삭제] 버튼이 비활성됨을 알린다.
필터바 — BOM 유형(자재구성/공정구성)·상태·제품코드/제품명 검색으로 목록을 좁힌다.
BOM 사용처 테이블 — 한 줄 = 구성표 한 줄(자리). 같은 제품·유형·버전 줄은 이어 붙이고 제품코드~상태는 첫 줄에만 쓴다. 제품코드 글자(↗)를 누르면 그 판의 BOM 트리(SCR-PM-013)로 간다 — 줄 전체 누르기는 쓰지 않는다. 자재구성(EBOM) 줄은 산식이 「—」다. 자재당 사용처가 통상 20건 이하라 비페이징 전건 로드다.
그 자리 고치기 — 초안(DRAFT) 판 줄의 [고치기] → 수량 칸(0보다 큰 수, Enter·칸 벗어남 확정, Esc 되돌림)과 [산식 편집](SCR-PM-013 과 같은 창 — 가로·세로(2차)·개수 산식, 허용 변수 아홉 개 문법 검사)이 열린다. [저장]은 구성표 일괄 편집 PUT 에 그 줄 UPDATE 한 건(바꾼 칸만)을 보낸다. 한 번에 한 줄만 고친다. 조회 권한은 이 칸이 없다.
고칠 수 없는 줄 — 확정(RELEASED) 줄은 🔒 「확정된 구성표는 여기서 고칠 수 없습니다. 구성표 화면에서 새 버전을 만든 뒤 고치세요.」, 폐기(DEPRECATED) 줄은 🔒 「폐기된 구성표는 고칠 수 없습니다.」 표 아래에 같은 뜻의 안내 한 줄을 둔다.