From 0fc2d699a454ad9074b884ed8ba8bf370da0c66a Mon Sep 17 00:00:00 2001 From: chpark Date: Fri, 15 May 2026 16:47:00 +0900 Subject: [PATCH] =?UTF-8?q?docs(manual):=20RPS=20PLM=20=EC=8B=9C=EC=8A=A4?= =?UTF-8?q?=ED=85=9C=20=EC=82=AC=EC=9A=A9=EC=9E=90=20=EB=A9=94=EB=89=B4?= =?UTF-8?q?=EC=96=BC=20(HTML)=20=E2=80=94=208=EC=9E=A5=20=EA=B5=AC?= =?UTF-8?q?=EC=84=B1?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - 시스템 개요 / 전체 메뉴 구조 (10개 모듈 매트릭스) - 업무 프로세스 흐름 — 영업→개발→구매→생산→품질→매출 - Amaranth(ERP) 연계 — 외부 커넥션 7종, 결재상신 11단계 워크플로, auth_config 암호화/복호화, 결재 상태 코드, 문제 해결 FAQ - 대시보드 관리 — 사용자 대시보드 / 3종 모니터링 보드 / 관리자 위젯 - 품질관리 4메뉴 상세 (필터·컬럼·자동 산정 로직) - 공통 UI (DataGrid / CompactFilterBar / PageHeader) 사용법 - 자주 묻는 질문 5건 self-contained HTML, 좌측 sticky 목차 + 인쇄 친화 CSS. --- docs/manual/RPS_시스템_사용자_매뉴얼.html | 661 ++++++++++++++++++++++ 1 file changed, 661 insertions(+) create mode 100644 docs/manual/RPS_시스템_사용자_매뉴얼.html diff --git a/docs/manual/RPS_시스템_사용자_매뉴얼.html b/docs/manual/RPS_시스템_사용자_매뉴얼.html new file mode 100644 index 00000000..e85c6f42 --- /dev/null +++ b/docs/manual/RPS_시스템_사용자_매뉴얼.html @@ -0,0 +1,661 @@ + + + + + +RPS PLM 시스템 사용자 매뉴얼 + + + +
+ + +
+
+

RPS PLM 시스템 사용자 매뉴얼

+

영업·개발·구매·생산·품질·CS·ECR 전 업무 + Amaranth(ERP) 결재 연계

+
+ 버전: v1.0 + 대상: 일반 사용자 / 관리자 + 최종 갱신: 2026-05-15 +
+
+ + +

1. 시스템 개요

+

+ RPS PLM 은 영업(견적·수주)부터 개발(E-BOM), 구매(발주·입고), 생산(M-BOM·실적), + 품질(수입·공정·반제품·CS·ECR), 매출까지 전사 업무를 단일 시스템으로 처리합니다. + 회계·결재·인사 등 ERP 영역은 Wehago/Amaranth 와 REST API 로 연계됩니다. +

+ +
+
11
주요 모듈
+
40+
화면 메뉴
+
7
Amaranth 커넥션
+
3
모니터링 보드
+
+ +

시스템 구성

+ + + + + + + +
레이어기술역할
프론트엔드Next.js 15 + React + Tailwind탭 기반 SPA, DataGrid, 그리드 차트/엑셀
백엔드Node.js + Express + TypeScriptREST API, JWT 인증, 외부 ERP 프록시
데이터베이스PostgreSQL 15업무 데이터 + 메뉴/권한 메타
외부 ERPWehago / Amaranth전자결재, 인사, 거래처, 계정과목 마스터
인증JWT + Refresh Token로그인 세션, 401 자동 갱신
+ + + + +
+
+

📋 영업관리

+
    +
  • 견적관리 — 견적 작성·승인·메일발송
  • +
  • 주문서관리 — 수주 등록·확정
  • +
  • 판매관리 — 출하 처리
  • +
  • 매출관리 — 세금계산서 발행
  • +
+
+ +
+

📁 프로젝트관리

+
    +
  • 제품구분_WBS관리 — 제품별 WBS 템플릿
  • +
  • 진행관리 — 프로젝트 단계별 진척률
  • +
+
+ +
+

🛠 개발관리

+
    +
  • PART 등록·조회
  • +
  • E-BOM 등록·조회
  • +
  • 설계변경 리스트
  • +
+
+ +
+

🛒 구매관리

+
    +
  • M-BOM 관리
  • +
  • 구매리스트 / 견적요청서 / 품의서 / 발주서
  • +
  • 입고관리 (3가지 뷰)
  • +
  • 프로젝트별 발주/입고 현황
  • +
+
+ +
+

📦 자재관리

+
    +
  • 자재리스트
  • +
  • 불출의뢰서
  • +
+
+ +
+

🏭 생산관리

+
    +
  • M-BOM 관리
  • +
  • 생산계획&실적 (일반/장비)
  • +
  • 반제품·원자재 소요량
  • +
+
+ +
+

🔬 품질관리

+
    +
  • 수입검사 요청·관리
  • +
  • 공정검사 관리
  • +
  • 반제품검사 관리
  • +
+
+ +
+

💬 고객CS관리

+
    +
  • 고객CS관리 — 민원 접수·조치
  • +
+
+ +
+

📝 ECR관리

+
    +
  • ECR관리 — 설계변경요청서
  • +
+
+ +
+

📊 모니터링

+
    +
  • 품질 모니터링
  • +
  • 생산 모니터링
  • +
  • 설비 모니터링
  • +
+
+
+ + +

3. 업무 프로세스 흐름

+ +

+ 각 모듈의 작업 결과는 다음 모듈의 입력이 되어 자동으로 흘러갑니다. 한 화면에서 다른 화면으로 + 물려 있는 점이 RPS PLM의 핵심입니다. +

+ +
+
견적 작성
+ +
결재상신 (Amaranth)
+ +
수주 확정
+ +
M-BOM 생성
+ +
발주서
+ +
입고·수입검사
+ +
생산실적
+ +
공정·반제품 검사
+ +
출하
+ +
매출·세금계산서 (Amaranth)
+
+ + +

3.1 영업·수주

+
+

핵심 시나리오

+
    +
  1. 견적요청 등록 — 영업관리 > 견적관리 [+ 견적요청등록]. 주문유형/고객사/유무상/접수일/품목 입력.
  2. +
  3. 견적작성 — 행 선택 후 [견적작성]. 일반/장비 템플릿 중 선택 → 신규 차수 생성.
  4. +
  5. 결재상신 — 견적서가 작성된 행에서 [결재상신] → Amaranth 팝업 → 결재완료까지 대기.
  6. +
  7. 수주 확정 — 결재완료 시 자동으로 contract_result 가 변경되어 주문서관리에 노출됨.
  8. +
+

+ ⚠ 가드 조건 + ① 견적서 미작성 → 결재상신 불가 ② 결재중·결재완료 건은 재상신 차단 + ③ 수주확정(0000964/0000968) 행은 품목 추가/삭제 불가 +

+
+ + +

3.2 개발·설계

+
+

+ 제품 양산 전 단계의 부품(PART)과 설계 BOM(E-BOM)을 관리합니다. + 설계변경(ECR)이 발생하면 E-BOM 의 차수가 올라가고, 변경 이력은 [설계변경 리스트]에서 추적됩니다. +

+
+
PART 등록
+ +
E-BOM 트리 구성
+ +
ECR 발의
+ +
E-BOM 차수 업데이트
+
+
+ + +

3.3 구매·입고

+
+

+ 수주 → M-BOM 분해 → 구매리스트 → 견적요청서 → 품의서(승인) → 발주서 → 입고 → 수입검사 순서로 진행됩니다. + Amaranth 와는 거래처/계정과목 마스터를 실시간 동기화합니다. +

+ + + + + + + + +
단계메뉴핵심 동작
1. 구매대상 추출구매리스트관리수주 M-BOM 에서 외주/구매 품목만 필터링
2. 견적요청견적요청서관리거래처별 RFQ 발송 (Amaranth 거래처 조회 연동)
3. 품의 → 결재품의서관리구매 품의서 작성 후 Amaranth 결재 (formId=품의서)
4. 발주발주서관리결재완료된 품의서를 발주로 전환
5. 입고입고관리 (3가지 뷰)전체/품목별/입고일별 입고 확정
6. 수입검사품질관리 > 수입검사입고된 자재의 검사 진행 + 합/불 판정
+
+ + +

3.4 생산

+
+

+ M-BOM 으로 생산계획을 수립하고 작업지시번호 단위로 실적을 입력합니다. + 장비 생산은 별도 메뉴(생산계획&실적관리(장비))에서 처리합니다. +

+
    +
  • M-BOM 관리 — 구조 트리 + 본 편집(품목 추가/삭제) + 변경이력
  • +
  • 반제품/원자재 소요량 — 계획 대비 필요 자재 자동 계산
  • +
  • 생산실적 — 작업지시 단위 양품/불량 등록 (반제품검사와 inspection_group_id 로 연계)
  • +
+
+ + +

3.5 품질

+
+

품질관리는 4단계로 흐릅니다:

+
+
수입검사 요청 (발주서 단위)
+ +
수입검사 진행 (검사자 판정)
+ +
공정검사 (작업 중 SPC)
+ +
반제품검사 (양품/불량 분류)
+
+

불량 발생 → 책임부서로 통보 → 수정완료 시 재생수량 가산 → 최종양품수량 자동 산정. 자세한 내용은 6. 품질관리 메뉴 가이드.

+
+ + +

3.6 매출·CS

+
+

출하 완료 → 매출 인식 → Amaranth 로 세금계산서 발행. 고객 클레임은 CS 메뉴로 접수되어 분석/조치 후 종결됩니다.

+
+
판매관리 (출하)
+ +
매출관리
+ +
세금계산서 발행 (Amaranth)
+ +
CS 접수 (필요 시)
+ +
ECR (설계 반영 필요 시)
+
+
+ + +

4. Amaranth(ERP) 연계

+ +

+ RPS PLM 은 결재·인사·거래처 등 ERP 영역을 Wehago/Amaranth 시스템과 + REST API 로 통합합니다. 모든 외부 호출 정보는 [관리자 > 자동화 관리 > 외부 커넥션 관리] 에 등록되어 있고, + 자격 증명(accessToken/hashKey)은 AES-256-GCM 으로 암호화 저장됩니다. +

+ + +

4.1 외부 커넥션 관리

+
+

위치: 관리자 > 자동화 관리 > 외부 커넥션 관리 > REST API 연결

+ + + + + + + + + +
연결명엔드포인트용도
Amaranth - 결재(SSO/결재 호출 시 path 지정)전자결재 SSO URL 발급, 결재함 조회
Amaranth - Wehago 사용자/apiproxy/api99u01A11사용자 인증 토큰 발급
Amaranth - 거래처/apiproxy/api16S11거래처 마스터 동기화
Amaranth - 부서/apiproxy/api16S10부서 마스터 동기화
Amaranth - 사원/apiproxy/api16S05사원 마스터 동기화
Amaranth - 창고/apiproxy/api20A00S00801창고 마스터 동기화
Amaranth - 계정과목/apiproxy/api11A02계정과목 마스터 동기화
+

각 커넥션 카드의 [테스트] 버튼을 누르면 실 호출이 발생하고 성공 / 실패 가 표시됩니다.

+
+ +

auth_config 필드

+
{
+  "callerName": "API_gcmsAmaranth40578",     // 평문 (수정 시 즉시 적용)
+  "groupSeq":   "gcmsAmaranth40578",         // 평문
+  "accessToken": "MN5Kz...",                 // AES-256-GCM 자동 암호화 저장
+  "hashKey":     "22519103...",              // AES-256-GCM 자동 암호화 저장
+  "aesKey":      "8441e27489d402cd"          // 결재 SSO empSeq AES-128-CBC 키
+}
+

+ 💡 암호화 동작 + 신규 등록/수정 시 accessToken·hashKey 는 자동으로 iv:authTag:cipher 3-part hex 로 변환되어 저장됩니다. + 복호화 키는 환경변수 DB_PASSWORD_SECRET 입니다. +

+ + +

4.2 결재상신 워크플로

+
+

견적관리/주문서관리/품의서관리/ECR 관리/CS관리 등 결재 대상 화면에서 [결재상신] 버튼을 누를 때 동작하는 흐름입니다.

+
    +
  1. 프론트에서 행 선택 후 [결재상신] 클릭
  2. +
  3. 백엔드 POST /api/sales/estimate/:id/amaranth-approval 호출
  4. +
  5. 현재 사용자의 emp_seq 를 user_info 에서 조회 (없으면 401 에러 반환)
  6. +
  7. 견적서(estimate_template) 최신 차수 objid 를 추출하여 target_objid 로 사용
  8. +
  9. amaranth_approval 테이블에서 기존 매핑 조회 +
      +
    • 없음 → 신규 approKey 생성
    • +
    • 상태가 reject/delete/create → 재상신용 신규 approKey
    • +
    • 그 외(inProcess/complete) → 기존 approKey 재사용
    • +
    +
  10. +
  11. Amaranth 인증: callerName/accessToken/hashKey 로 wehago-sign(HMAC-SHA256) 헤더 생성
  12. +
  13. SSO URL 발급 API 호출 → fullUrl 응답 수신
  14. +
  15. amaranth_approval INSERT/UPDATE (approKey + sso_url)
  16. +
  17. 프론트로 fullUrl 반환
  18. +
  19. 프론트가 window.open(fullUrl, "amaranthApproval") 으로 결재 팝업 오픈
  20. +
  21. 사용자가 Amaranth 결재창에서 작성·상신 → 완료 시 Amaranth 의 webhook 으로 상태 변경
  22. +
+ +
+ ✓ 주요 파라미터 +
+
targetType
CONTRACT_ESTIMATE (견적) / CONTRACT_ORDER (수주) / 등
+
formId
1162 (견적) / 1161 (수주) — Amaranth 양식 ID
+
compSeq
1000
+
approvalTitle
"견적서 결재 - 26C-0801" 같은 결재함 제목
+
+
+
+ +

결재 상태 코드

+ + + + + + + + +
코드의미가능 액션
create임시 저장 (작성중)재상신 가능
inProcess결재 진행 중상신 불가 (가드)
complete결재 완료후속 처리 가능 (수주확정 등)
reject반려수정 후 재상신
delete회수/삭제재상신 가능
notRequired / N결재불필요 처리
+ + +

4.3 문제 해결

+ +
+ Q. [결재상신] 클릭 시 "결재 시스템 연동 중 오류" 토스트가 표시됩니다. +
    +
  1. [외부 커넥션 관리] 에서 Amaranth - 결재 의 [테스트] 버튼 실행
  2. +
  3. 실패 시 auth_config 의 accessToken/hashKey 가 만료됐을 가능성 → 운영팀 또는 Wehago 관리자에게 키 재발급 요청
  4. +
  5. 성공인데 결재상신이 안 되면 백엔드 로그 docker logs rps_backend 에서 SSO API 응답 확인
  6. +
+
+ +
+ Q. "empSeq 정보가 없습니다" 오류가 납니다. +

user_info.emp_seq 가 비어 있는 사용자입니다. 관리자 메뉴 [유저관리] 에서 해당 사용자의 emp_seq 를 Amaranth 사원 마스터의 값으로 채워야 합니다.

+
+ +
+ Q. 결재 후 PLM 상태가 자동 업데이트되지 않습니다. +

Amaranth 측 webhook (콜백 URL) 설정이 RPS PLM 의 /api/amaranth-approval/callback 으로 등록돼 있어야 합니다. Wehago 관리 콘솔에서 확인 가능.

+
+ + +

5. 대시보드 관리

+ +

5.1 사용자 대시보드

+
+

로그인 후 메인 화면(/dashboard)에서 보여지는 위젯형 대시보드입니다. 회사별로 위젯 구성이 다릅니다.

+
    +
  • 매출 추이 — 월별 매출 합계 라인 차트
  • +
  • 수주 잔량 — 미출하 수주 막대 차트
  • +
  • 리스크 / 알림 — 기상특보 / 교통사고 / 환율 (외부 API 자동 갱신, 10분 간격)
  • +
  • To-Do — 결재 대기, 마감 임박 견적, 미입고 발주
  • +
+
+ +

5.2 모니터링 보드

+ + + + + + + + + + + + + + + + + +
보드경로주요 위젯
품질 모니터링/COMPANY_16/monitoring/quality일별 불량률 추이, 검사자 별 처리 건, 불량 유형 Top 10
생산 모니터링/COMPANY_16/monitoring/production실시간 작업지시 현황, 라인별 가동률, 계획 대비 실적
설비 모니터링/COMPANY_16/monitoring/equipment설비별 상태(가동/정지/점검), 알람 이력
+ +

5.3 대시보드 관리자 기능

+
+

위치: 관리자 > 화면 관리 > 대시보드 리스트

+
    +
  • 회사별 대시보드 신규 생성 / 위젯 배치 / 권한 설정
  • +
  • 위젯 종류: 카드 / 라인 차트 / 막대 차트 / 파이 차트 / 그리드 / 외부 URL embed
  • +
  • 저장된 대시보드는 /dashboard/{dashboardId} 경로로 접근
  • +
+
+ +

+ 💡 그리드 → 차트 즉시 변환 + 모든 업무 그리드(견적관리, 매출관리, 품질관리 등)는 우상단 📊 토글로 + Top-N 데이터를 막대/파이 차트로 즉시 시각화할 수 있습니다. +

+ + +

6. 품질관리 메뉴 가이드

+ +

6.1 수입검사 요청

+
+

경로: /COMPANY_16/quality/incoming-request

+

발주서 단위로 입고/검사 요청 현황을 한 줄씩 보여줍니다. 검사 디테일이 아직 없으면 "미요청", 있으면 "요청중"/"요청완료".

+

필터 (12종)

+

품의서 No · 발주서 No · 프로젝트번호 · 품번 · 품명 · 공급업체 · 입고결과 · 제품구분 · 검사여부 · 요청현황 · 요청자 · 요청일 범위

+

그리드 컬럼 (12개)

+

품의서 No · 발주서 No · 프로젝트번호 · 제품구분 · 품번 · 품명 · 공급업체 · 입고결과 · 요청일 · 요청자 · 검사여부 · 요청현황

+
+ +

6.2 수입검사 진행

+
+

경로: /COMPANY_16/quality/incoming-mgmt

+

검사자가 실제 검사를 진행하여 합/불 판정과 불량률(검사수량 대비)을 입력하는 화면입니다.

+

주요 컬럼 (19개)

+

검사일 · 검사자 · 품의서 · 발주서 · 프로젝트번호 · 제품구분 · 품명(모델명) · 부품품번 · 부품명 · 공급업체 · 입고일 · 입고수량 · 입고결과 · 검사수량 · 불량수량 · 불량률 · 검사현황 · 검사성적서(첨부파일)

+

불량률 = SUM(defect_qty 서브쿼리) / inspection_qty × 100, 소수점 2자리.

+
+ +

6.3 공정검사 관리

+
+

경로: /COMPANY_16/quality/process-inspection

+

작업 중 SPC 검사. 마스터 1건당 디테일 N건(검사항목)을 SUM 으로 집계하여 한 줄로 표시.

+

필터 (10종, 2행)

+
    +
  • 1행: 프로젝트번호 · 제품구분 · 품번 · 품명 · 작업환경상태 · 측정기
  • +
  • 2행: 검사일 범위 · 검사자 · 검사결과 · 진행공정
  • +
+

그리드 컬럼 (9개)

+

검사일 · 검사자 · 프로젝트번호 · 제품구분 · 품번 · 품명 · 검사수량 합계 · 검사결과(OK/NG) · 첨부파일

+
+ +

6.4 반제품검사 관리

+
+

경로: /COMPANY_16/quality/semi-product-inspection

+

반제품 입고에 대한 양품/불량 판정. 단일 테이블(pms_quality_semi_product_inspection)에 양품 마스터(DATA_TYPE='GOOD')와 불량 행('DEFECT')을 동일 INSPECTION_GROUP_ID 로 묶어 저장합니다.

+

자동 산정 컬럼

+ + + + + + +
컬럼계산식
불량수량 합계같은 group_id 의 DEFECT 행 defect_qty 합
불량률(%)round(불량수량 / 입고수량 × 100, 2)
재생수량 합계DEFECT 행 중 disposition_type='수정완료' 의 defect_qty 합
최종양품수량good_qty + 재생수량
+
+ + +

7. 공통 UI 사용법

+ +

7.1 데이터 그리드

+
+

모든 업무 화면의 표는 동일한 DataGrid 컴포넌트로 통일됩니다.

+
    +
  • 컬럼 드래그 — 헤더 ⋮⋮ 영역을 드래그해 컬럼 순서 변경
  • +
  • 정렬 — 헤더 클릭 (asc/desc 토글)
  • +
  • 필터 — 헤더 옆 깔때기 아이콘 → 고유값 체크박스 다중 선택
  • +
  • 인라인 편집 — 셀 더블클릭 (편집 가능 컬럼만)
  • +
  • 🔃 새로고침 / 📊 차트 / ⬇ 엑셀 다운로드 / ⚙ 컬럼 표시 설정 — 그리드 우상단 툴바
  • +
  • 페이지 사이즈 — 우하단 드롭다운 (10/15/20/50/100)
  • +
+
+ +

7.2 필터바 (CompactFilterBar)

+

화면 상단의 검색 영역. 요청일·검사일 같은 날짜 범위는 캘린더 아이콘 클릭으로 달력 popover가 뜹니다(YYYY-MM-DD 직접 입력도 가능).

+ +

7.3 페이지 헤더

+

모든 화면 상단의 [검색] / [초기화] / 업무 액션(등록·삭제·결재상신 등)은 PageHeader 한 곳에 모입니다.

+ + +

8. 자주 묻는 질문

+ +
+ Q. 로그인 후 좌측 메뉴가 안 보입니다. +

해당 계정이 권한 그룹에 속해있지 않습니다. 관리자 > 권한 그룹 관리에서 사용자에게 메뉴를 부여하세요.

+
+ +
+ Q. 그리드의 엑셀 다운로드가 "내보낼 데이터가 없습니다" 토스트만 나옵니다. +

현재 필터로 조회된 결과가 0건이라 그렇습니다. 검색 조건을 변경한 후 다시 [⬇ 엑셀 다운로드] 를 누르세요.

+
+ +
+ Q. 결재상신 버튼이 비활성화 되어 있습니다. +
    +
  • 행을 선택했는지 확인 (체크박스 클릭 또는 셀 클릭)
  • +
  • 견적관리의 경우 [견적작성] 으로 견적서(템플릿)가 먼저 생성되어 있어야 함
  • +
  • 이미 결재중/결재완료 인 건은 재상신 불가
  • +
+
+ +
+ Q. Amaranth 결재 팝업이 안 뜨고 에러만 납니다. +

4.3 문제 해결 참조.

+
+ +
+ Q. 화면이 "Loading chunk app/layout failed" 로 깨집니다. +

프론트엔드 dev 서버가 초기 컴파일 중이거나 OOM 으로 재시작 중입니다. 1~2분 기다린 후 하드 새로고침(Cmd+Shift+R / Ctrl+F5).

+
+ + +
+
+ +