SAM × AFAB Dashboard
불러오는 중…

생산월 이력관리

같은 MY·같은 모델의 WINGS commission 을 생산월 순으로 세워 두고, 달마다 추가(+)·삭제(−)된 코드·도색·타이어를 보여줍니다.

추가 삭제

모델 매칭

SAM ↔ WINGS 모델 인식 — 규칙은 model_mapping.xlsx

📂 SharePoint 폴더 열기
모델 → 비교된 SAM 파일. 캡·PTO 는 코드로 판정하며 WINGS/SAM 이 다르면 ≠.

코드 관리

SharePoint 04. code 폴더의 Excel 파일을 웹에서 직접 편집·저장

📂 SharePoint 폴더 열기

비교에 쓰이는 모든 기준표(필수코드·공장관리코드·캡·모델 카테고리 등)가 04. code 폴더의 Excel 파일로 관리됩니다. 아래에서 파일을 고르고 시트 탭을 바꿔 편집한 뒤 SharePoint에 저장하면 원본 파일에 반영되고, 다음 데이터 다시 계산 때 적용됩니다.

파일 목록을 불러오는 중…
위에서 편집할 Excel 파일을 선택하세요.
SAM × AFAB Dashboard

사용자 매뉴얼

SAM 견적서(Internal quotation)와 WINGS 주문 데이터의 사양 코드를 차량 단위로 대조해 생산 전에 차이를 찾아내는 사내 웹 앱입니다. 이 문서는 일반 사용자가 쓰는 방법과 관리자가 알아야 할 판정 로직·기준표 관리까지 한 번에 다룹니다.

접속 주소sam-afab.startruckkorea.com
로그인회사 Microsoft 365 계정
데이터 보관SharePoint · SAM-AFAB 사이트
계산 위치사용자 브라우저(서버 없음)

00 · 이 앱은 무엇인가

왜 만들었나

차량 한 대의 사양은 두 곳에 따로 존재합니다. 하나는 영업이 만든 SAM 견적서 (Internal quotation … .docx), 다른 하나는 공장에 실제로 전달되는 WINGS 주문입니다. 두 곳의 옵션 코드가 어긋난 채로 Changeability(변경 가능 기한)가 지나가면 원하는 사양이 아닌 차가 생산됩니다. 이 앱은 그 어긋남을 기한이 지나기 전에, 사람이 문서를 일일이 대조하지 않고 찾아내기 위한 도구입니다.

무엇을 답해 주나

  • 이번 달 이후 생산 예정 차량 중 사양이 어긋난 차는 몇 대이고 어느 차인가
  • 그 차는 어떤 코드가 SAM에만 있고, 어떤 코드가 WINGS에만 있는가
  • 필수코드(Mandatory)가 한쪽에서 빠지지 않았는가
  • 도색(Paint)·타이어(Tyre)·캡(Cab)·PTO가 양쪽에서 같은가
  • 생산월이 바뀌는 동안 사양이 어떻게 변해 왔는가(생산월 이력관리)
  • 이 차는 어느 SAM 문서와 비교된 것인가(모델 매칭)
한 줄 요약 — “WINGS 주문 한 줄”을 “같은 모델의 SAM 견적서 한 부”와 짝지어 코드 집합끼리 비교하고, 그 결과를 대시보드로 보여 주는 앱입니다.
📷캡처 자리대시보드 전체 화면
그림 0-1. 로그인 직후 첫 화면(대시보드)

01 · 시작하기 · 로그인

접속

브라우저(Edge·Chrome 권장)에서 https://sam-afab.startruckkorea.com 으로 접속합니다. 운영 주소에서는 회사 Microsoft 365 계정 로그인이 필수이며, 로그인 화면에서 Microsoft 계정으로 로그인을 누르면 회사 로그인 페이지로 이동했다가 되돌아옵니다.

📷캡처 자리로그인 화면
그림 1-1. Microsoft 365 로그인 게이트

권한

별도의 앱 내부 권한 표는 없습니다. SharePoint 사이트(SAM-AFAB)의 접근 권한이 곧 이 앱의 권한입니다.

하는 일필요한 것
대시보드·이력·매칭 결과 조회로그인만 하면 가능
코드 관리 / 모델 매칭 편집·저장SharePoint 해당 폴더 쓰기 권한
데이터 다시 계산(빌드)SharePoint 읽기 + 05. output 쓰기 권한
주의 — 쓰기 권한이 없는 계정으로 SharePoint에 저장을 누르면 저장 단계에서 Graph 오류(403)가 납니다. 화면에서 미리 버튼을 감추지는 않습니다.

02 · 화면 구성

모든 화면은 상단 바 하나로 이동합니다.

📷캡처 자리상단 네비게이션 바
그림 2-1. 상단 바 — 메뉴 5개 + 오른쪽 도구 버튼
메뉴 / 버튼하는 일
대시보드차량 목록과 요약 타일. 앱의 중심 화면
생산월 이력관리같은 모델의 사양이 생산월마다 어떻게 바뀌었는지
모델 매칭WINGS 모델이 어떤 SAM 문서와 짝지어졌는지 + 매칭 규칙 편집
코드 관리기준표 Excel(필수코드·캡·카테고리 등)을 웹에서 편집
사용자메뉴얼지금 보고 있는 이 문서
⬇ Export대시보드에서만 보이며, 지금 필터가 걸린 목록을 Excel로 저장
⟳ 데이터 다시 계산SharePoint 원본으로 비교를 다시 계산(→ 09장)
🌐 EN / 한국어화면 언어 전환. 선택은 이 브라우저에 기억됩니다
⎋ 로그아웃Microsoft 계정 로그아웃
언어 전환은 화면 문구만 바꿉니다. 코드·모델명·SAM 파일명 같은 데이터 값은 원본 그대로 보입니다. 이 매뉴얼 본문은 한국어로만 제공됩니다.

03 · 데이터가 흐르는 길

이 앱에는 서버가 없습니다. 화면은 GitHub Pages에 올라간 정적 파일이고, 데이터는 전부 SharePoint에 있으며, 계산은 “데이터 다시 계산”을 누른 사람의 브라우저에서 돕니다.

01. SAM_files생산월 폴더별 견적서 .docx
02. WINGS_dataWINGS export .xlsx/.csv
브라우저에서 비교파싱 → 매칭 → 대조
05. outputdata.json · codes.json
모든 사용자 화면재계산 없이 결과만 조회

SharePoint 폴더 구조

사이트: startruckkorea.sharepoint.com/sites/SAM-AFAB → 문서 라이브러리 SAM-AFAB_Data

폴더들어가는 것규칙
01. SAM_files SAM 견적서 .docx 생산월 폴더 안에 넣습니다. MY26/2026-07 생산 또는 2026-07 생산처럼 폴더 이름이 YYYY-MM으로 시작해야 인식됩니다.
02. WINGS_data WINGS export .xlsx / .xls / .csv 여러 개가 있으면 가장 최신 1개만 사용합니다(→ 12장 “최신 판정”).
03. model_rules model_mapping.xlsx 모델 번호 정규화·별칭 등 매칭 규칙
04. code 기준표 Excel 5종 필수코드·공장관리코드·캡·모델 카테고리·코드 사전(→ 11장)
05. output data.json, codes.json 빌드 결과. 앱이 켜질 때 여기부터 읽습니다. 사람이 직접 건드리지 마세요.
중요 — SharePoint에 새 파일을 올려도 화면은 바로 바뀌지 않습니다. 누군가 “⟳ 데이터 다시 계산”을 눌러야 05. output이 갱신되고, 그때부터 전원에게 반영됩니다.

05. output을 읽지 못하면(권한 없음/빌드 이력 없음) 사이트와 함께 배포된 사본 데이터를 씁니다. 이때 화면 상단 회색 줄에 “출처: 배포 사본(빌드 결과 없음)”이 표시됩니다.

04 · 대시보드

📷캡처 자리대시보드 상단(타일 + 모델별 대수)
그림 4-1. 요약 타일과 모델별 대수

4.1 요약 타일

타일은 두 줄입니다. 숫자는 항상 아래 범위 안에서 셉니다.

  • 전체 현황 (시작월 이후) — 생산월이 시작월 이상인 차량 전체. 시작월은 기본이 이번 달이며, 필터 줄의 시작월 드롭다운으로 바꿉니다. 과거로 넓히면 지난 차량도 함께 비교됩니다.
  • 2주 이내 (Changeability D-14) — 남은 일수가 0~14일인 차량. 가장 급한 대상 (남은 일수 기준이라 시작월과 무관합니다)
타일세는 기준
전체 Commission해당 범위의 전체 대수
매칭 MatchSAM 문서를 찾았고 차이가 없음
미스매치 MismatchSAM 문서를 찾았지만 코드·도색·타이어 차이가 있음
No SAM No SAM비교할 SAM 문서를 찾지 못함
Mandatory 누락필수코드가 한쪽에만 있는 차량
SAM update요청생산월 폴더에 문서가 없어 이전 달 문서로 대신 비교한 차량
합계 관계전체 = 매칭 + 미스매치 + No SAM (겹치지 않음). Mandatory 누락SAM update요청은 별도 표시라 위 셋과 겹쳐서 셉니다.

타일을 누르면 아래 목록이 그 조건만 남깁니다. 이때 기존 드롭다운·검색은 모두 해제되므로 목록 건수 = 타일 숫자가 됩니다. 미스매치·Mandatory 타일은 유용한 순서로 자동 정렬됩니다.

4.2 Upcoming changeability 카드

왼쪽 위 카드는 오늘 기준 가장 가까운 Changeability 날짜와 그날 해당하는 Commission 수를 보여 줍니다. 앞으로 남은 날짜가 없으면 가장 최근 지난 날짜를 보여 줍니다.

4.3 모델별 대수

오른쪽 두 카드는 Model · Type · Axle · Cab · MY 조합을 “1개 모델”로 보고 대수를 셉니다. 왼쪽 카드는 이번 생산월 이후 전체, 오른쪽 카드는 지금 필터가 걸린 결과입니다.

4.4 필터

필터설명
생산월WINGS의 Requested delivery date 기준 연-월
MY모델이어. SAM/WINGS 코드 V8Q~V8Z로 판정(→ 10.7)
Model / Type / Axle / Cab차종(Arocs 등) / 모델표기(4153L 등) / 축(8x4) / 캡 코드
검색창Commission·모델·코드 등 행의 모든 값을 대상으로 부분 일치
전체 상태Match / Mismatch / No SAM
Display only production from this month기본 켜짐. 생산월이 이번 달 이상인 행만
드롭다운은 서로 연동됩니다. Model을 고르면 Type·Axle·Cab 목록도 그 모델에 실제로 존재하는 값만 남습니다. “아무리 골라도 0건”이 나오지 않도록 하는 장치입니다.

4.5 목록 읽는 법

📷캡처 자리차량 목록 표
그림 4-2. 차량 목록 — 열 제목을 누르면 정렬
의미
CommissionWINGS Commission no. (차량 1대)
Model / Type / Axle차종 / 모델 표기 / 구동축
Cab · PTOWINGS 기준 값. SAM과 다르면 가 붙고, 마우스를 올리면 양쪽 값이 보입니다
Production생산(요청 납기) 일자
Changeability사양 변경 가능 마지막 일자
Changeability D-Day오늘 기준 남은 일수. D-14 이하는 주황, 지난 건 회색(지남)
Only in SAM / Only in WINGS한쪽에만 있는 코드 개수. 0이면
Mandatory한쪽에만 있는 필수코드 개수
StatusMatch / Mismatch / No SAM (+ SAM update요청 배지)

개수 열의 셈법 — 옵션코드 차이뿐 아니라 도색·타이어 차이도 함께 셉니다. “타이어만 다른 차”가 Mismatch인데 목록에는 ✓로 보이는 일을 막기 위한 것입니다.

정렬은 열 제목 클릭(다시 누르면 역순), 행 클릭은 차량 상세 창을 엽니다.

4.6 Export

⬇ Export지금 화면에 보이는 목록 그대로(필터·정렬 반영) Excel로 저장합니다. 파일 맨 위에 적용된 필터와 내보낸 시각이 함께 기록되므로, 회의 자료로 그대로 쓸 수 있습니다.

05 · 차량 상세 창

목록에서 행을 클릭하면 오른쪽에서 상세 창이 열립니다.

📷캡처 자리차량 상세 창(Difference Codes 탭)
그림 5-1. 차이 코드 탭
  • 맨 위 정보 — 차종·카테고리·축·캡·MY·PTO·생산일·Changeability·SAM Baumuster·상태 등. 제목 아래 회색 글씨가 실제로 비교된 SAM 파일명입니다.
  • 🔍 Difference Codes — 차이만 모아 봅니다.
    • 🚪 Cab / ⚙️ PTO / 🎨 Paint / 🛞 Tyre — 양쪽이 다를 때만 나타납니다
    • Codes Only in SAM / Codes Only in WINGS — 한쪽에만 있는 옵션코드와 설명
    • Mandatory — 빠진 필수코드. 문제가 없으면 “양쪽 모두 반영됨” 목록을 보여 줍니다
    • Factory Control — 공장관리코드 차이(참고용. 상태 판정에는 쓰지 않음 → 10.5)
  • 📄 Full Code List — SAM·WINGS 전체 코드를 좌우로 나란히 정렬. 한쪽에 없는 칸은 비어 보입니다.
  • ⬇ 이 차량 Excel — 이 차량 한 대의 정보와 전체 코드 대조표를 Excel로 저장합니다.

06 · 생산월 이력관리

같은 MY·같은 모델의 차량을 생산월 순으로 세워 두고, 달마다 어떤 코드가 +추가·−삭제됐는지 보여 줍니다. “언제부터 이 코드가 빠졌지?”를 추적할 때 씁니다.

📷캡처 자리생산월 이력관리 화면
그림 6-1. 왼쪽 모델 목록 + 오른쪽 월별 변경 표

조작

항목설명
MY 선택이력은 같은 MY 안에서만 이어집니다
WINGS 코드 / SAM 코드 / WINGS + SAM 대조어느 쪽 코드를 볼지. 대조를 고르면 두 줄이 위아래로 함께 나옵니다
이전 생산월 대비 / 첫 생산월 대비각 달을 무엇과 비교할지
모델 검색모델명·Commission 번호로 좁히기
⬇ Export지금 보이는 이력을 Excel로 저장

표 읽는 법

  • 열 = 생산월, 줄 = Commission → 갈래(코드 / 🎨도색 / 🛞타이어) × 소스(WINGS·SAM)
  • 그 모델의 첫 생산월기본(기준)으로 표시되고 변경 내역이 없습니다
  • 생산이 없던 달은 로 비어 있습니다
  • 한 달에 여러 대가 있으면 그 달의 코드는 합집합으로 봅니다. 대표 1건만 칩으로 보이고 나머지는 “외 n대”
  • ⚠ n 배지 = 같은 달 안에서도 차량마다 사양이 갈린 코드 수. 마우스를 올리면 코드 목록이 보입니다
  • Commission 번호를 클릭하면 그 차량의 상세 창이 열립니다

일치 / 불일치 띠

WINGS + SAM 대조일 때만 월 머리글 아래에 일치 / 불일치 띠가 깔립니다. 이 배지는 바로 아래 두 줄(WINGS·SAM)의 변경 내역이 서로 같은가를 말합니다. 화면에 보이는 것과 배지가 늘 맞아떨어지게 하려는 것입니다.

혼동 주의 — “변경 내역이 같다”와 “그 달의 코드가 같다”는 다른 이야기입니다. 기준이 되는 달이 이미 갈려 있으면 변화만 같을 수 있습니다. 그래서 그 달 전체 코드의 차이는 배지에 마우스를 올렸을 때 툴팁 둘째 줄에 따로 적어 둡니다.

07 · 모델 매칭

“이 차는 어느 SAM 문서와 비교된 건가?”를 확인하고, 매칭 규칙을 고치는 화면입니다.

📷캡처 자리모델 매칭 — 매칭 결과
그림 7-1. 모델 → 비교된 SAM 파일

매칭 결과

  • 모델별로 비교에 쓰인 SAM 파일, 대수, 상태를 보여 줍니다
  • 캡·PTO는 파일명이 아니라 실제 코드로 판정하며, WINGS와 SAM이 다르면
  • 매칭된 SAM 없음으로 나오는 모델이 바로 대시보드의 No SAM 원인입니다

대조표(규칙 편집)

model_mapping.xlsx의 시트를 웹에서 직접 고칩니다. 편집 방법은 코드 관리와 같습니다(→ 08장). 인식모델_대조표 시트는 열 때마다 현재 데이터로 다시 만들어지는 확인용 보기라 저장 대상이 아닙니다.

규칙을 고쳐 저장해도 화면은 바로 바뀌지 않습니다. ⟳ 데이터 다시 계산을 눌러야 반영됩니다.

진단 탭 — 왜 안 붙었나

매칭 결과 표에는 주문에 붙은 SAM 문서만 나옵니다. 넣었는데 아무 주문도 쓰지 않은 문서는 거기 흔적이 없어 영영 보이지 않습니다 — 그런 문서는 위 진단 탭에서 봅니다. 문서가 무슨 모델키로 읽혔는지, PTO 로 봤는지, 그 생산월 주문이 몇 건인지가 한 줄에 있습니다. 아래 워크북 시트와 같은 내용이라 엑셀을 열지 않아도 됩니다.

미매칭_진단 — 워크북에서 보기

⟳ 데이터 다시 계산은 끝나면서 이 워크북을 SharePoint 에 다시 씁니다. 규칙 시트는 그대로 두고 인식모델_대조표미매칭_진단만 이번 결과로 갈아 끼웁니다. 새 SAM 파일을 넣었는데 반영이 안 된다 싶으면 미매칭_진단 시트를 먼저 보세요.

  • WINGS 미매칭 — SAM 을 못 찾은 주문. 원인 칸이 “생산월 폴더 자체가 없음”인지 “그 달 SAM 에 이 번호가 없음”인지 알려 줍니다
  • SAM 파일 건너뜀 — 읽다가 버린 파일과 이유(모델번호·장비표를 못 찾음, 파싱 실패 등)
  • 안 붙은 SAM 문서 — 잘 읽혔는데 어떤 주문에도 안 쓰인 문서. 그 문서가 무슨 모델키로 읽혔는지, PTO 로 봤는지, 그 생산월 주문이 몇 건인지를 함께 적습니다. 주문이 0건이면 파일·규칙 문제가 아니라 아직 주문이 없는 것입니다
  • WINGS 주문 수 — 생산월별 주문 건수. SAM 문서는 있는데 그 달 주문이 없는 경우를 가릅니다
  • 생산월 폴더 — 폴더별로 몇 개를 읽었는지와 인식된 모델키. 파일을 넣었는데 수가 안 늘면 파일 형식(.docx)이나 폴더 이름(YYYY-MM …)을 확인하세요

08 · 코드 관리

비교에 쓰이는 모든 기준표가 SharePoint 04. code 폴더의 Excel로 관리됩니다. 이 화면에서 Excel을 열지 않고 브라우저에서 바로 고치고 저장할 수 있습니다.

📷캡처 자리코드 관리 — 파일 탭 + 카드 편집
그림 8-1. 파일 선택 → 시트 탭 → 편집

순서

  1. 위쪽 파일 버튼에서 편집할 Excel을 고릅니다
  2. 시트 탭으로 편집할 시트를 고릅니다
  3. 🗂 카드 편집(행 하나를 폼으로) 또는 ▦ 표 편집(엑셀처럼 격자로) 중 하나로 수정합니다
    • + 등록 — 새 항목 추가(카드 편집)
    • + 행 추가 — 빈 행 추가(표 편집). 열 자체를 바꾸려면 표 편집을 쓰세요
    • 행을 클릭하면 편집 창이 열리고, 창 안의 삭제로 행을 지웁니다
  4. 고치면 ● 저장되지 않은 변경 표시가 켜집니다
  5. ⭱ SharePoint에 저장 — 원본 Excel을 덮어씁니다 / ↺ 되돌리기 — 저장 전 상태로 복구 / ⬇ 다운로드 — 내 PC로 사본 저장
  6. ⟳ 데이터 다시 계산을 눌러야 비교 결과에 반영됩니다
저장하지 않고 다른 메뉴로 이동하면 경고가 뜹니다. 브라우저를 닫을 때도 마찬가지입니다. 여러 사람이 같은 파일을 동시에 편집하면 나중에 저장한 쪽이 이깁니다(병합 없음).

09 · 데이터 다시 계산

상단 오른쪽 ⟳ 데이터 다시 계산은 SharePoint의 최신 WINGSSAM 생산월 폴더 전부, 그리고 기준표를 읽어 비교를 처음부터 다시 계산합니다.

📷캡처 자리빌드 진행 로그 창
그림 9-1. 빌드 로그 — 단계별 진행 상황

언제 눌러야 하나

  • 새 WINGS export를 02. WINGS_data에 올렸을 때
  • SAM 견적서를 추가·교체했을 때
  • 코드 관리나 모델 매칭에서 기준표를 고쳐 저장했을 때

알아둘 점

  • 계산은 누른 사람의 브라우저에서 돌며 보통 1~3분 걸립니다. 그동안 탭을 닫지 마세요
  • 결과는 05. output에 저장되어 모든 사용자에게 반영됩니다
  • 진행 로그에 단계별 상황과 건너뛴 SAM 파일이 표시됩니다 — 실패가 있으면 여기서 원인을 확인하세요
  • 로그인하지 않았거나 Excel 라이브러리가 차단된 환경에서는 실행되지 않습니다
관리자용

10 · 판정 로직 상세

화면의 숫자가 왜 그렇게 나오는지를 결정하는 규칙입니다. 기준표를 고치기 전에 반드시 읽어 주세요.

10.1 두 소스에서 코드를 뽑는 방법

WINGS (.xlsx/.csv)SAM (.docx)
옵션코드 Standard/Additional equipment 열의 텍스트에서 영숫자 3~5자 토큰을 모두 추출 Equipment overview 표(없으면 Standard equipment 표)에서 추출. Standard/Special 구역은 문단 전체, Additional 구역은 줄 맨 앞 코드만
도색Paint … zone 열의 숫자Paint 섹션의 MB 1234
타이어축별 Tyre key (+ Manufacturer key)Tyres 섹션의 규격 문자열
모델Type (brief)TypeBaumuster본문 Vehicle type파일명
SAM 문서에서 흔한 실패 — Equipment overview 표가 없거나 모델 번호를 못 찾으면 그 문서는 통째로 건너뜁니다(빌드 로그에 “건너뜀”으로 남습니다). 견적서 양식을 임의로 바꾸면 인식이 깨집니다. 또 숫자가 없는 코드(예: JKTO)는 코드 사전에 등록된 경우에만 살아남습니다 — 일반 영어 단어를 코드로 오인하지 않기 위한 장치입니다.

10.2 WINGS 한 줄에 SAM 문서를 붙이는 순서

  1. 모델 번호를 정규화합니다 — 축 정보(8x4) 제거, DNA 제거, 영숫자만 대문자로
  2. 그 차의 생산월 폴더에서 같은 모델키를 찾습니다
  3. 없으면 이전 최대 6개월 폴더를 차례로 찾습니다 → 찾으면 SAM update요청 표시
  4. 후보가 여러 개면 점수가 가장 높은 문서를 고릅니다
    캡 일치 +3 · Baumuster 일치 +2 · Subcategory 일치 +1
  5. 끝내 못 찾으면 No SAM

생산월(요청 납기)이 비어 있는 행은 최신 월 폴더부터 훑어 매칭하며, 이 경우 SAM update요청 판정은 하지 않습니다.

10.3 캡(Cab)과 PTO

  • cab.xlsx의 매핑(WINGS 캡 코드 → SAM 캡 variant, 예 F1J → G5F)으로 판정합니다. 문서에 캡 코드가 있으면 그것이 1순위이고, 없을 때만 파일명 토큰을 봅니다.
  • PTO코드 설명에 “PTO”가 포함된 코드가 있는지로 판정합니다(문서 본문·파일명도 보조로 사용).
  • PTO는 엄격한 필터입니다 — WINGS가 PTO 차량인데 SAM에 PTO 변형이 없으면 비PTO 문서로 넘어가지 않고 No SAM이 됩니다. 예전처럼 반대 변형과 비교하면 차이가 통째로 묻히기 때문입니다.
  • 캡·PTO는 양쪽 값을 모두 남겨 화면에서 로 표시합니다. 캡은 양쪽 모두 값이 있을 때만, PTO는 있다/없다가 갈릴 때 불일치로 봅니다.

10.4 상태(Match / Mismatch / No SAM)

상태조건
No SAM비교할 SAM 문서를 못 찾음. 이 행은 차이·Mandatory 값을 모두 비웁니다
MismatchOnly in SAM / Only in WINGS / 도색 / 타이어 중 하나라도 차이가 있음
Match위 어느 것도 없음

SAM update요청은 상태가 아니라 별도 플래그입니다. 이전 달 문서로 대체 비교된 경우 Match/Mismatch는 그 대체본 기준으로 그대로 계산하고, 배지만 덧붙입니다.

도색·타이어는 한쪽이 비어 있으면 비교하지 않습니다. 문서에 정보가 없는 것과 “다르다”는 것을 구분하기 위한 규칙입니다.

10.5 차이 목록에서 빠지는 코드

Only in SAM / Only in WINGS를 만들 때 아래 코드는 제외됩니다. 대신 자기 칸에서 따로 다룹니다.

  • Factory Control(공장관리코드)factory-control-codes.xlsx의 접두어(기본 I·O·Z·U)와 개별코드(기본 DUP0·A0B·E0D·E0Q·J7G). Factory Control Codes 칸에만 모아 보여 주고 상태 판정에는 쓰지 않습니다.
  • Mandatory(필수코드)Mandatory Codes 칸에서 따로 셉니다.

PTO 여부는 pto-codes.xlsx로 판정합니다(→ 08장). 코드 설명에 “PTO”라는 글자가 있는지 훑던 예전 방식은 준비·제어 코드까지 PTO 로 넘겨 버렸습니다.

10.6 Mandatory(필수코드) 판정

  • 필수코드는 카테고리(tractor / rigid / tipper / all)별로 적용됩니다. 그 차의 카테고리는 Baumuster 앞 6자리로 결정합니다(model-category.xlsx, 표에 없으면 접두어 규칙으로 추정).
  • 그룹이 없는 코드한쪽에만 있으면 곧바로 누락으로 셉니다.
  • 그룹이 있는 코드(예: 같은 기능의 대체 코드 묶음)는 그룹 단위로 봅니다 — “SAM에 그룹 중 하나라도 있는가”와 “WINGS에 하나라도 있는가”가 갈릴 때만 누락으로 셉니다. 같은 그룹 안에서 서로 다른 코드를 쓰는 것은 문제로 보지 않습니다.

10.7 MY(모델이어)

코드 V8Q~V8Z = 모델이어 끝자리 0~9 입니다(V8W → 6 → 2026). SAM 코드가 1순위, 없으면 WINGS 코드로 보완합니다(No SAM 차량도 MY로 묶기 위함).

10.8 화면 값이 비어 있을 때 채우는 규칙

차종·축은 문서에 따로 없어 SAM 파일명에서 뽑습니다. 매칭이 없으면 비게 되므로, 같은 Baumuster를 가진 다른 행의 값으로 채웁니다(값이 하나로 모일 때만. 갈리면 비워 둡니다). 또 WINGS 모델 표기에 축이 섞여 들어오면(4153 K 8x4) 축은 축 칸으로 옮겨 같은 모델이 두 줄로 갈라지지 않게 합니다.

관리자용

11 · 기준표 파일 사양

04. code · 03. model_rules 폴더의 파일입니다. 열 위치와 시트 이름이 곧 규칙이므로 순서를 바꾸거나 시트 이름을 바꾸면 인식되지 않습니다. 첫 줄은 항상 머리글로 간주해 건너뜁니다.

mandatory-codes.xlsx — 필수코드 시트: Mandatory

내용비고
A카테고리all / tractor / rigid / tipper. 비우면 all
B그룹같은 값끼리 한 묶음. 비우면 단독 코드
C코드필수. 비면 그 행은 무시
D설명화면 툴팁·상세 창에 표시
E비고참고용(로직에 영향 없음)

factory-control-codes.xlsx — 공장관리코드 시트: FactoryControl

내용비고
A유형접두어(prefix) 또는 개별코드(code)
B코드 / 접두어접두어는 한 글자만 유효. - 같은 안내 행은 무시
C설명참고용

pto-codes.xlsx — PTO 코드 시트: PTO

PTO 차량인지 아닌지를 정하는 유일한 기준입니다. WINGS 주문과 SAM 견적서 양쪽 모두 여기 PTO코드로 적힌 코드를 하나라도 가지면 PTO 로 봅니다. PTO 차량과 비PTO 차량은 서로 비교하지 않으므로, 이 목록이 곧 매칭 기준입니다.

내용비고
A유형PTO코드(판정에 사용) 또는 제외(판정에서 뺌)
B코드필수. - 같은 안내 행은 무시
C설명참고용
D비고왜 이렇게 분류했는지 적어 두는 칸
준비(provision)·제어 코드는 PTO 가 달리지 않은 차에도 붙습니다. 이런 코드를 PTO코드로 두면 그 견적서가 통째로 PTO 로 분류돼, 같은 달의 비PTO 주문이 짝을 못 찾고 지난달 문서로 밀립니다. 기본값은 N6P(PTO 준비)와 U2K(오일레벨 제어)를 제외로 둡니다. 두 번째 시트 설명에_PTO포함(Ref)에 설명에 PTO 가 들어간 코드가 전부 있으니 미분류로 뜨는 새 코드가 있으면 검토해 주세요.
파일이 없으면 이 화면을 열 때(또는 다시 계산할 때) 기본값으로 한 번 만들어 둡니다. 이미 있으면 손대지 않으므로, 분류한 내용이 덮어써질 걱정은 없습니다.

cab.xlsx — 캡 매핑

A열 = WINGS 캡 코드, C열 = SAM 캡 variant. 둘 다 있어야 매핑이 만들어집니다(대문자로 저장).

model-category.xlsx — 모델 카테고리

A열 = Baumuster 앞 6자리, B열 = tractor / rigid / tipper. 이 셋이 아닌 값은 무시됩니다.

mbtruck-spec-data.xlsx — 코드 사전 시트: code_dict

B열 = 코드, C열 = 영문 설명. 화면의 코드 설명과 숫자 없는 코드의 인식에 함께 쓰입니다.

model_mapping.xlsx — 매칭 규칙 (03. model_rules)

모든 시트가 A열=키, B열=값 구조입니다.

시트역할
정규화_과거번호매칭에 쓰임 — 같은 차의 과거/대체 번호 (예 3253 ↔ 4153). 양방향으로 봅니다
모델별칭매칭에 쓰임 — SAM 번호 → 같은 차를 부르는 WINGS 번호들(쉼표로 여러 개)
옵션매칭에 쓰임normalize_28xx_to_26xx 가 true 면 28xx ↔ 26xx(DNA)를 같은 차로 봄
이전모델 / 현재모델세대 관계 표기(참고용). 2853 과 2863 은 다른 차라 매칭 키로는 쓰지 않습니다
WINGS표시치환WINGS 표기를 화면 표기로 치환 — 같은 차가 표기 차이로 두 모델처럼 갈라지는 걸 막습니다
차종키워드차종 판정 키워드 (값은 쉼표로 여러 개)
인식모델_대조표확인용 보기. 다시 계산할 때마다 새로 생성되므로 편집·저장 대상 아님
미매칭_진단확인용 보기. SAM 을 못 찾은 주문과 그 원인, 건너뛴 SAM 파일, 생산월 폴더별 읽은 파일 수
파일이 없거나 읽기에 실패하면 앱은 내장 기본값으로 조용히 진행합니다(빌드 로그에 경고만 남습니다). “고쳤는데 반영이 안 된다” 싶으면 파일명·시트명·열 위치부터 확인하세요.
관리자용

12 · 주의사항 · 한계

운영상 반드시 지킬 것

  • SAM 폴더 이름은 YYYY-MM으로 시작해야 합니다. 아니면 그 달은 통째로 인식되지 않습니다.
  • WINGS 파일은 폴더에 최신 1개만 유효합니다. “최신”은 파일명의 13자리 타임스탬프 또는 YYYY-MM-DD가 1순위, 없으면 SharePoint 수정일이 2순위입니다. 파일명에 날짜를 넣어 두는 편이 안전합니다.
  • WINGS 파일에 Commission no. 열이 없으면 빌드가 실패합니다.
  • 임시 파일(~$…)과 .docx가 아닌 파일은 무시됩니다.
  • 기준표를 고쳤으면 반드시 데이터 다시 계산까지 해야 합니다.

알려진 한계

  • 결과의 정확도는 SAM 문서 양식에 달려 있습니다. 표 구조·섹션 제목이 바뀌면 코드 추출이 깨집니다.
  • 코드 추출은 텍스트 패턴 기반이라, 설명문 안의 대문자 약어가 코드로 잡힐 여지가 있습니다 (숫자 없는 토큰은 사전 등록분만 통과시켜 이를 줄였습니다).
  • 한 달에 여러 대가 있으면 이력관리는 합집합으로 봅니다. 차량별 차이는 배지로만 알려 줍니다.
  • 동시 편집 병합이 없습니다. 같은 Excel을 둘이 고치면 나중에 저장한 쪽으로 덮어집니다.
  • 계산이 브라우저에서 돌기 때문에 SAM 문서가 많아질수록 빌드가 느려집니다. 도중에 탭을 닫으면 중단됩니다.
  • 로그인 게이트는 화면 보호(UX)입니다. 사이트는 정적 호스팅이라 URL을 아는 사람은 배포 사본 데이터에 접근할 수 있습니다. 대외비 자료를 배포 사본에 담지 마세요.
  • 회사망에서 외부 CDN이 차단되면 Excel 처리·로그인 라이브러리가 로드되지 않을 수 있습니다 (로컬 사본을 우선 사용하도록 되어 있습니다).
관리자용

13 · 문제 해결(FAQ)

증상원인 / 조치
화면에 “출처: 배포 사본(빌드 결과 없음)” 05. output을 읽지 못한 상태입니다. 로그인 여부와 SharePoint 권한을 확인하고 데이터 다시 계산을 한 번 실행하세요.
특정 차량이 계속 No SAM ① 생산월 폴더(및 직전 6개월)에 해당 모델 문서가 있는지 ② 모델 번호 표기가 다르면 model_mapping.xlsx의 정규화 규칙 ③ PTO 차량인데 PTO 문서가 없는 경우(→ 10.3) ④ 문서가 파싱에 실패해 건너뛰어졌는지(빌드 로그 확인)
SAM 문서를 올렸는데 반영이 안 됨 폴더 이름이 YYYY-MM으로 시작하는지 확인 → 데이터 다시 계산 실행
기준표를 고쳤는데 그대로임 저장 후 데이터 다시 계산을 하지 않았거나, 시트명·열 위치가 사양과 다릅니다(→ 11장)
엉뚱한 SAM 파일과 비교됨 모델 매칭 → 매칭 결과에서 실제 붙은 파일을 확인하세요. 후보가 여러 개면 캡·Baumuster·Subcategory 점수로 고릅니다(→ 10.2). 문서 본문의 Baumuster/캡 코드를 바로잡는 것이 가장 확실합니다.
저장 시 오류(403 / 권한) 해당 SharePoint 폴더 쓰기 권한이 없습니다. 사이트 관리자에게 요청하세요.
“엑셀 라이브러리를 불러오지 못했습니다” 사내망 차단 가능성. 새로고침 후 재시도하고, 계속되면 네트워크 담당자에게 문의하세요.
로그인 창이 계속 돌거나 실패 브라우저 팝업 차단을 해제하고, 시크릿 창/다른 브라우저로 확인해 보세요. 그래도 안 되면 Entra 앱 등록의 Redirect URI 설정을 확인해야 합니다.
이력관리에서 없던 변경이 생긴 것처럼 보임 그 달에 사양이 다른 차량이 섞여 합집합이 커진 경우입니다. ⚠ 배지를 확인하세요(→ 06장).

14 · 용어 사전

용어
SAM영업 견적 시스템. 여기서는 Internal quotation .docx 문서를 가리킵니다
WINGS / AFAB주문·생산 관리 시스템에서 내려받은 주문 목록(export)
Commission no.차량 1대를 가리키는 주문 번호
Baumuster공장 모델 코드(숫자). 앞 6자리로 카테고리를 판정합니다
Changeability사양을 바꿀 수 있는 마지막 날짜. 이후에는 수정 불가
Mandatory code해당 카테고리 차량에 반드시 들어가야 하는 코드
Factory Control code공장 관리용 코드. 차이가 나도 불일치로 보지 않습니다
PTO동력 인출 장치. 있고 없고가 사양을 크게 가르므로 매칭에서 엄격히 구분합니다
Cab variantSAM 문서·파일명에 쓰이는 캡 표기(예 G5F)
MY모델이어. 코드 V8Q~V8Z로 판정
SAM update요청생산월 폴더에 문서가 없어 이전 달 문서로 대신 비교했다는 표시
이 문서에서 답을 찾지 못한 내용은 제품팀(Product Management)으로 문의해 주세요.
SAM × AFAB Dashboard · 사용자 매뉴얼