거래처 목록을 검색·조회하고, 행 클릭 시 우측 상세 패널에서 기본정보·취급 자재/공정 단가를 편집한다. (경로 /partners · /partners/:partnerId)
Figma 실제 디자인 기준 재작성(2026-07-08) — DE22-1 원본 대비 변경점: ① 목록 테이블 9컬럼(사업자번호·연락처·등록일 3개 추가) ② 페이지 타이틀 바("거래처 관리"+등록 버튼)를 목록/상세 분할 영역 위 전체 폭으로 분리, "Excel 다운로드"는 검색 바로 이동 ③ 상세 패널의 "거래처 유형"은 등록 후 읽기전용 필드로 상단 이동(더 이상 인라인 select 아님) ④ 역할·우선순위·리드타임(금형사 전용) 조건부 블록을 "비고" 필드 뒤 폼 최하단으로 재배치 ⑤ "비고" 필드 추가.
진입 — 사이드바 > 거래처관리
- + 거래처 등록 버튼 — 페이지 타이틀 바 우측. 클릭 시 등록 모달(f4) 오픈, 성공 시 목록 갱신·새 행 자동 선택·상세 패널 오픈으로 이어진다.
- 검색 바 — 거래처명·사업자번호 부분일치 검색. Enter 또는 [검색] 클릭 시 목록 조회 파라미터로 전달된다.
- Excel 다운로드 — 현재 검색 조건 기준 거래처 목록 xlsx 내보내기.
- 목록 테이블(9컬럼) — 거래처코드·거래처명·유형·사업자번호·대표자·연락처·자재 수·활성·등록일. 행 클릭 시 우측 상세 패널 오픈 + URL 갱신(/partners/:partnerId).
- 활성 토글 — 상세 패널 헤더의 거래처 활성/비활성을 즉시 전환한다(PATCH).
- 상세 탭 — 기본정보 / 취급 자재·단가 / 취급 공정·단가 3탭 전환. 각 탭은 별도 화면(f1 기본정보 · f2 · f3)으로 상세 정의.
- 금형사 조건부 블록 — 거래처 유형=금형사 선택 시에만 역할·우선순위·리드타임 필드를 폼 최하단에 노출한다.
- 저장 버튼 — 기본정보 탭 폼 하단. 편집한 기본정보를 저장·수정한다(PUT).
- GET
/api/pm/partners— 거래처 목록 조회 및 거래처명·사업자번호 검색(query param) - GET
/api/pm/partners/{partnerId}— 행 클릭 시 상세 조회(딥링크 /partners/:partnerId) - PUT
/api/pm/partners/{partnerId}— 기본정보 탭 저장·수정 - PATCH
/api/pm/partners/{partnerId}/active— 상세 패널 헤더 활성/비활성 토글 - POST
/api/pm/partners— [+ 거래처 등록] 버튼 → 등록 모달(f4) 제출 - GET
/api/pm/partners/export— [Excel 다운로드] 현재 검색 기준 xlsx 내보내기
| 거래처코드 | 거래처명 | 유형 | 사업자번호 | 대표자 | 연락처 | 자재 수 | 활성 | 등록일 |
|---|---|---|---|---|---|---|---|---|
| P-2026-001 | 가공소A | 금형사 | 123-45-67890 | 홍길동 | 010-1234-1234 | 12 | 활성 | YYYY.MM.DD |
| P-2026-002 | 유리공장B | 가공 | 987-65-43210 | 이순신 | 010-9999-1111 | 8 | 비활성 | YYYY.MM.DD |
| P-2026-003 | 대양금속 | 금형사 | 555-66-77890 | 강감찬 | 031-222-3344 | 5 | 활성 | YYYY.MM.DD |
가공소A
5활성 × 닫기선택 거래처가 취급하는 자재와 유효단가 목록. 행 클릭 시 최근 5건 단가 이력 아코디언이 열린다. 전체 이력은 SCR-PM-006 으로 이동.
진입 — SCR-PM-004 상세 패널 [기본정보] 탭에서 [취급 자재·단가] 탭 클릭 (f1 참조)
- + 자재 추가 버튼 — 헤더 액션. 클릭 시 자재 검색 모달을 열어 자재-거래처 매핑을 생성한다(POST).
- 목록 테이블(5컬럼) — 자재코드·자재명·단위·유효단가·변경일. 행 클릭 시 아래로 단가 이력 아코디언이 펼쳐진다.
- 단가 이력 아코디언 — 최근 5건(적용시작·적용종료·이전단가·변경단가·변경사유)만 표시(BE ?limit=5).
- 안내 힌트 — 전체 매핑·이력 관리는 SCR-PM-006[매핑 거래처 목록]으로 이동한다는 안내.
- GET
/api/pm/partners/{partnerId}/materials— 선택 거래처의 취급 자재·유효단가 목록 - GET
/api/pm/items/{itemCode}/partners/{partnerMaterialId}/prices— 행 클릭 시 최근 5건 단가 이력 아코디언(?limit=5) - POST
/api/pm/items/{itemCode}/partners— [+ 자재 추가] 자재-거래처 매핑 생성 - GET
/api/search— [+ 자재 추가] 자재 검색 모달의 자재 조회
가공소A
활성 × 닫기| 자재코드 | 자재명 | 단위 | 유효단가(₩) | 변경일 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| R-01-00001 | 상틀 프로파일 | EA | 12,500 | 2026-04-01 | |||||||||||||||
3▼ 최근 5건 단가 이력
| |||||||||||||||||||
| R-01-00023 | 하틀 알루미늄 | EA | 11,200 | 2026-03-28 | |||||||||||||||
거래처가 수행하는 공정과 규격범위별 단가. (공정, 규격범위) 1건 단위. 정방향 매핑(거래처 고정, 공정 검색).
진입 — SCR-PM-004 상세 패널에서 [취급 공정·단가] 탭 클릭 (f1 참조)
- + 공정 추가 버튼 — 거래처-공정 매핑을 생성하는 공정 검색 모달을 연다.
- + 단가 등록 버튼 — 선택된 (공정 × 규격범위) 단위로 단가 시계열을 등록한다.
- 목록 테이블(5컬럼) — 공정·규격범위·단가·적용시작일·변경사유. (공정, 규격범위) 1건 단위로 나열.
- 규격범위 규칙 힌트 — min·max 둘 다 필수 입력. 무제한 상한은 max=99999(mm) 컨벤션, 길이무관은 min·max NULL로 '전체' 표기. 행 클릭 시 최근 5건 단가 이력 아코디언이 펼쳐진다.
- 단가 이력 아코디언 예시 — "절단 L ≤ 3,000mm" 행 클릭 시 펼쳐지는 모습을 시연한다. [취급 자재·단가] 탭과 동일하게 최근 5건만 표시(BE ?limit=5).
- GET
/api/pm/partners/{partnerId}/processes— 거래처의 취급 공정·규격범위·단가 목록 - POST
/api/pm/partners/{partnerId}/processes— [+ 공정 추가] 거래처-공정 매핑 생성 - POST
/api/pm/partner-processes/{partnerProcessId}/prices— [+ 단가 등록] 규격범위별 단가 시계열 등록 - GET
/api/pm/partner-processes/{partnerProcessId}/prices— 행 클릭 시 최근 5건 단가 이력 아코디언 - 정책단가 이력 단건 삭제 = 무효 처리(supersede)로 확정 — 전용 삭제 endpoint 미신설 (§5.3.16 정책, #485). 오입력 회수는 정정 단가 재등록(위 POST .../prices 자동 종료 supersede)으로, 매핑 통째 정리는
DELETE /api/pm/partner-processes/{partnerProcessId}(CASCADE 그룹 삭제)로 처리. effective-dated 이력 보존 원칙 + 공정 단가 이력 테이블 부재. - GET
/api/pm/processes— 공정 목록 조회
가공소A
활성 × 닫기| 공정 | 규격범위 | 단가(₩) | 적용시작일 | 변경사유 | |||||||||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| 절단 | L ≤ 3,000mm | 1,200 | 2026-04-01 | 분기 단가 조정 | |||||||||||||||
5▼ 최근 5건 단가 이력
| |||||||||||||||||||
| 절단 | L > 3,000mm | 1,500 | 2026-04-01 | 분기 단가 조정 | |||||||||||||||
| 가공 | 전체 | 2,800 | 2026-03-15 | 원자재 인상 반영 | |||||||||||||||
좌측 목록 [+ 거래처 등록] 클릭 시 열린다. 필수: partnerCode · 거래처명 · 유형. 사업자번호는 선택. 금형사 선택 시 역할·priority·leadTimeDays 활성.
- 식별자 — 거래처코드(필수, 예: P-2026-001). 저장 시 partnerCode 중복이면 POST 409 폴백으로 처리한다(사전 검증 endpoint 없음).
- 기본 정보 — 거래처명·유형(필수) + 사업자번호·대표자·연락처·이메일(선택).
- 금형사 조건부 블록 — 유형=금형사 선택 시에만 역할(필수)·priority(1~99)·리드타임(0~365일)이 활성화된다.
- 추가 정보 — 주소(선택, max 500)·비고(선택, max 1000).
- 검증·저장 안내 — 저장 직전 일괄 검증(필드별 inline 에러). partnerCode 중복은 POST 409 폴백. 등록 성공 시 목록 즉시 갱신·새 행 자동 선택·상세 패널 오픈.
- [등록] 버튼 — 12필드를 제출한다(POST /api/pm/partners).
- POST
/api/pm/partners— 거래처 등록(12필드) 제출, 코드 중복 시 409 폴백 - 재사용
GET /api/pm/partners?code=X&exists=true— 거래처 코드 중복 사전 검증은 기존 조회(checkCodeExists, ISS-0074)로 처리한다. 전용/check-code는 두지 않고, 등록POST /api/pm/partners의 409 응답으로 폴백한다(의도된 부재, #414 BE 조사).
거래처 등록
×한 자재에 매핑된 거래처 목록과 시계열 단가 이력. 우선순위 드래그·묶음 단가(📦) 환산·거래처 별칭·비활성 배지를 표기. (경로 /materials/:itemCode/partners)
진입 — SCR-PM-003 [거래처 매핑] 탭 인라인 / SCR-PM-004 [취급 자재·단가] 탭 행 클릭(전체 매핑·이력) / 사이드바 > 거래처관리 > 자재-거래처 매핑 (자재 미선택 시 SCR-PM-001 자재 목록 redirect + "자재를 선택하세요" 안내)
- 자재 컨텍스트 — 상단에 현재 자재(코드·명·단위)를 고정 표시한다.
- + 거래처 매핑 추가 버튼 — 클릭 시 거래처 매핑 추가 모달(f6)을 연다.
- 매핑 거래처 목록 테이블(9컬럼) — 우선순위·거래처·type/역할·별칭·거래단가·단위단가(환산)·리드타임·적용기간·액션. ⠿ 핸들 드래그로 금형사 우선순위(1 주/2 보조/3 예비)를 재정렬한다(PATCH reorder).
- 묶음(📦) 단가 배지 — 묶음단위×수량으로 입력된 단가를 단위 단가로 자동 환산해 함께 표기한다(예: 8,500÷100=85).
- 비활성 배지(⚠) — 거래처가 비활성 상태임을 표기하며, 신규 매핑 대상에서 제외된다.
- 단가 이력 아코디언 — 행 클릭 시 펼쳐지며, 유효 단가 행을 강조(볼드) 표시한다.
- GET
/api/pm/items/{itemCode}/partners— 자재별 매핑 거래처 목록(우선순위·환산 단가 포함) - POST
/api/pm/items/{itemCode}/partners— [+ 거래처 매핑 추가] 모달(f6) 제출 - PATCH
/api/pm/items/{itemCode}/partners/reorder— ⠿ 드래그 우선순위 재정렬 - PUT
/api/pm/items/{itemCode}/partners/{partnerMaterialId}— [수정] 매핑 정보(별칭·우선순위·리드타임·유효기간) 수정 - POST
/api/pm/items/{itemCode}/partners/{partnerMaterialId}/prices— [신규 단가] 단가 시계열 등록(기존 활성 단가 자동 종료) - GET
/api/pm/items/{itemCode}/partners/{partnerMaterialId}/prices— [이력]·행 클릭 아코디언의 단가 이력 조회
| 우선순위 | 거래처 | type · 역할 | 거래처 별칭 | 거래 단가 | 단위 단가(환산) | 리드타임 | 적용시작 ~ 종료 | 액션 |
|---|---|---|---|---|---|---|---|---|
| ⠿ 1 (주) | 대양금속 | 금형사 · EXTRUSION | DY-PRF-225U | 12,400 / m | 12,400 / m | 7일 | 2026-04-01 ~ (현재) | 수정 신규 단가 이력 |
| ⠿ 2 (보조) | 성진알미늄 | 금형사 · EXTRUSION | — | 12,800 / m | 12,800 / m | 5일 | 2026-04-01 ~ (현재) | 수정 신규 단가 이력 |
| — | 가공소A | 가공 | GA-TOP-A | 12,500 / EA | 12,500 / EA | — | 2026-04-01 ~ (현재) | 수정 신규 단가 이력 |
| — | 동신테크 | 금형사 · HARDWARE | DST-PCS-100 | 4📦 8,500 / 박스(100 EA) | 85 / EA | 3일 | 2026-04-15 ~ (현재) | 수정 신규 단가 이력 |
| — | 유리공장B 5⚠ 비활성 | 자재공급 | — | 9,800 / EA | 9,800 / EA | — | 2026-01-01 ~ 2026-03-31 | 이력 |
| 적용시작 | 적용종료 | 이전단가 | 변경단가 | 변경사유 |
|---|---|---|---|---|
| 2026-04-01 | (현재) | 11,000 | 12,400 | 원자재 인상 |
| 2026-01-01 | 2026-03-31 | 10,500 | 11,000 | 분기 조정 |
자재는 고정(🔒), 거래처를 검색·선택. 단위/묶음(📦) 단가 택1, 유효기간·변경사유 입력. priority·리드타임은 금형사 한정. 적용시작 min=today(소급 차단).
진입 — SCR-PM-006 [+ 거래처 매핑 추가] 버튼 클릭 (f5 참조)
- 자재(고정) 필드 — 🔒 읽기전용. 매핑 대상 자재를 고정 표시한다.
- 거래처 검색 select — 활성 거래처만 검색·선택 대상으로 노출된다.
- type·역할 자동 채움 — 거래처 선택 시 해당 거래처의 type·역할을 읽기전용으로 자동 표시한다.
- 단가 입력 방식 라디오 — 단위 단가 / 📦 묶음 단가 중 택1.
- 묶음 조건부 블록 — 📦 묶음 단가 선택 시 묶음단위·수량·묶음단가를 입력하면 환산 단위단가를 자동 계산한다(예: 8,500÷100=85).
- 우선순위 select — 금형사 거래처에 한정해 1(주)/2(보조)/3(예비) 우선순위를 지정한다.
- 유효 시작일 — min=today로 소급 적용을 차단한다. 기존 유효 단가는 신규 시작일 직전으로 자동 종료된다.
- 매핑 등록 버튼 — 모달 하단. 자재-거래처 매핑과 초기 단가를 등록한다(POST).
- POST
/api/pm/items/{itemCode}/partners— 매핑 + 초기 단가 등록([매핑 등록]) - GET
/api/pm/partners— 거래처 검색 select(활성 거래처만 노출)
거래처 매핑 추가
×priority · 단가 · 리드타임 · status 의 시간순 변경 타임라인. [diff] 클릭 시 before/after 전체 필드 비교 모달. 90일 경과 이력은 자동 아카이브.
진입 — SCR-PM-006 [매핑 거래처 목록] 탭에서 [변경 이력] 탭 클릭 (f5 참조)
- 탭 전환 — [매핑 거래처 목록](f5) / [변경 이력] 2탭.
- 자재 컨텍스트 · 보관 기간 — 상단에 현재 자재와 이력 보관 기간(90일)을 함께 표시한다.
- 변경 이력 테이블(7컬럼) — 변경일시·거래처·변경 항목·before→after·변경자·사유·액션. priority·단가·리드타임·status 변경을 시간순으로 나열.
- [diff] 버튼 — 행별로 클릭하면 before/after 전체 필드 비교 모달이 열린다.
- 자동 아카이브 안내 — 90일이 지난 이력은 감사용으로 자동 아카이브된다.
- GET
/api/pm/items/{itemCode}/partners/{partnerMaterialId}/history— 매핑 변경 이력 타임라인 조회(카탈로그상 GET /partners/{partnerId}/history)
| 변경일시 | 거래처 | 변경 항목 | before → after | 변경자 | 사유 | 액션 |
|---|---|---|---|---|---|---|
| 2026-04-15 14:22 | 대양금속 | 단가 | 11,000 → 12,400 ₩/m | 김지광 | 원자재 인상 | 4diff |
| 2026-04-10 09:30 | 성진알미늄 | priority | 3 (예비) → 2 (보조) | 이순신 | 주력 거래처 승격 | diff |
| 2026-04-01 11:00 | 대양금속 | 리드타임 | 10일 → 7일 | 김지광 | 납기 단축 협상 | diff |
| 2026-03-28 16:45 | 유리공장B | status | ACTIVE → INACTIVE | 관리자 | 거래 중단 | diff |