사용자 매뉴얼
SAM 견적서(Internal quotation)와 WINGS 주문 데이터의 사양 코드를 차량 단위로 대조해 생산 전에 차이를 찾아내는 사내 웹 앱입니다. 이 문서는 일반 사용자가 쓰는 방법과 관리자가 알아야 할 판정 로직·기준표 관리까지 한 번에 다룹니다.
00 · 이 앱은 무엇인가
왜 만들었나
차량 한 대의 사양은 두 곳에 따로 존재합니다. 하나는 영업이 만든 SAM 견적서
(Internal quotation … .docx), 다른 하나는 공장에 실제로 전달되는
WINGS 주문입니다. 두 곳의 옵션 코드가 어긋난 채로 Changeability(변경 가능 기한)가
지나가면 원하는 사양이 아닌 차가 생산됩니다. 이 앱은 그 어긋남을
기한이 지나기 전에, 사람이 문서를 일일이 대조하지 않고 찾아내기 위한 도구입니다.
무엇을 답해 주나
- 이번 달 이후 생산 예정 차량 중 사양이 어긋난 차는 몇 대이고 어느 차인가
- 그 차는 어떤 코드가 SAM에만 있고, 어떤 코드가 WINGS에만 있는가
- 필수코드(Mandatory)가 한쪽에서 빠지지 않았는가
- 도색(Paint)·타이어(Tyre)·캡(Cab)·PTO가 양쪽에서 같은가
- 생산월이 바뀌는 동안 사양이 어떻게 변해 왔는가(생산월 이력관리)
- 이 차는 어느 SAM 문서와 비교된 것인가(모델 매칭)
01 · 시작하기 · 로그인
접속
브라우저(Edge·Chrome 권장)에서 https://sam-afab.startruckkorea.com 으로 접속합니다.
운영 주소에서는 회사 Microsoft 365 계정 로그인이 필수이며, 로그인 화면에서
Microsoft 계정으로 로그인을 누르면 회사 로그인 페이지로 이동했다가 되돌아옵니다.
권한
별도의 앱 내부 권한 표는 없습니다. SharePoint 사이트(SAM-AFAB)의 접근 권한이 곧 이 앱의 권한입니다.
| 하는 일 | 필요한 것 |
|---|---|
| 대시보드·이력·매칭 결과 조회 | 로그인만 하면 가능 |
| 코드 관리 / 모델 매칭 편집·저장 | SharePoint 해당 폴더 쓰기 권한 |
| 데이터 다시 계산(빌드) | SharePoint 읽기 + 05. output 쓰기 권한 |
02 · 화면 구성
모든 화면은 상단 바 하나로 이동합니다.
| 메뉴 / 버튼 | 하는 일 |
|---|---|
| 대시보드 | 차량 목록과 요약 타일. 앱의 중심 화면 |
| 생산월 이력관리 | 같은 모델의 사양이 생산월마다 어떻게 바뀌었는지 |
| 모델 매칭 | WINGS 모델이 어떤 SAM 문서와 짝지어졌는지 + 매칭 규칙 편집 |
| 코드 관리 | 기준표 Excel(필수코드·캡·카테고리 등)을 웹에서 편집 |
| 사용자메뉴얼 | 지금 보고 있는 이 문서 |
| ⬇ Export | 대시보드에서만 보이며, 지금 필터가 걸린 목록을 Excel로 저장 |
| ⟳ 데이터 다시 계산 | SharePoint 원본으로 비교를 다시 계산(→ 09장) |
| 🌐 EN / 한국어 | 화면 언어 전환. 선택은 이 브라우저에 기억됩니다 |
| ⎋ 로그아웃 | Microsoft 계정 로그아웃 |
03 · 데이터가 흐르는 길
이 앱에는 서버가 없습니다. 화면은 GitHub Pages에 올라간 정적 파일이고, 데이터는 전부 SharePoint에 있으며, 계산은 “데이터 다시 계산”을 누른 사람의 브라우저에서 돕니다.
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 |
빌드 결과. 앱이 켜질 때 여기부터 읽습니다. 사람이 직접 건드리지 마세요. |
05. output이 갱신되고, 그때부터 전원에게 반영됩니다.
05. output을 읽지 못하면(권한 없음/빌드 이력 없음) 사이트와 함께 배포된
사본 데이터를 씁니다. 이때 화면 상단 회색 줄에 “출처: 배포 사본(빌드 결과 없음)”이 표시됩니다.
04 · 대시보드
4.1 요약 타일
타일은 두 줄입니다. 숫자는 항상 아래 범위 안에서 셉니다.
- 전체 현황 (시작월 이후) — 생산월이 시작월 이상인 차량 전체. 시작월은 기본이 이번 달이며, 필터 줄의 시작월 드롭다운으로 바꿉니다. 과거로 넓히면 지난 차량도 함께 비교됩니다.
- 2주 이내 (Changeability D-14) — 남은 일수가 0~14일인 차량. 가장 급한 대상 (남은 일수 기준이라 시작월과 무관합니다)
| 타일 | 세는 기준 |
|---|---|
| 전체 Commission | 해당 범위의 전체 대수 |
| 매칭 Match | SAM 문서를 찾았고 차이가 없음 |
| 미스매치 Mismatch | SAM 문서를 찾았지만 코드·도색·타이어 차이가 있음 |
| 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 | 기본 켜짐. 생산월이 이번 달 이상인 행만 |
4.5 목록 읽는 법
| 열 | 의미 |
|---|---|
| Commission | WINGS Commission no. (차량 1대) |
| Model / Type / Axle | 차종 / 모델 표기 / 구동축 |
| Cab · PTO | WINGS 기준 값. SAM과 다르면 ≠ 가 붙고, 마우스를 올리면 양쪽 값이 보입니다 |
| Production | 생산(요청 납기) 일자 |
| Changeability | 사양 변경 가능 마지막 일자 |
| Changeability D-Day | 오늘 기준 남은 일수. D-14 이하는 주황, 지난 건 회색(지남) |
| Only in SAM / Only in WINGS | 한쪽에만 있는 코드 개수. 0이면 ✓ |
| Mandatory | 한쪽에만 있는 필수코드 개수 |
| Status | Match / Mismatch / No SAM (+ SAM update요청 배지) |
개수 열의 셈법 — 옵션코드 차이뿐 아니라 도색·타이어 차이도 함께 셉니다. “타이어만 다른 차”가 Mismatch인데 목록에는 ✓로 보이는 일을 막기 위한 것입니다.
정렬은 열 제목 클릭(다시 누르면 역순), 행 클릭은 차량 상세 창을 엽니다.
4.6 Export
⬇ Export는 지금 화면에 보이는 목록 그대로(필터·정렬 반영) Excel로 저장합니다. 파일 맨 위에 적용된 필터와 내보낸 시각이 함께 기록되므로, 회의 자료로 그대로 쓸 수 있습니다.
05 · 차량 상세 창
목록에서 행을 클릭하면 오른쪽에서 상세 창이 열립니다.
- 맨 위 정보 — 차종·카테고리·축·캡·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·같은 모델의 차량을 생산월 순으로 세워 두고, 달마다 어떤 코드가 +추가·−삭제됐는지 보여 줍니다. “언제부터 이 코드가 빠졌지?”를 추적할 때 씁니다.
조작
| 항목 | 설명 |
|---|---|
| MY 선택 | 이력은 같은 MY 안에서만 이어집니다 |
| WINGS 코드 / SAM 코드 / WINGS + SAM 대조 | 어느 쪽 코드를 볼지. 대조를 고르면 두 줄이 위아래로 함께 나옵니다 |
| 이전 생산월 대비 / 첫 생산월 대비 | 각 달을 무엇과 비교할지 |
| 모델 검색 | 모델명·Commission 번호로 좁히기 |
| ⬇ Export | 지금 보이는 이력을 Excel로 저장 |
표 읽는 법
- 열 = 생산월, 줄 = Commission → 갈래(코드 / 🎨도색 / 🛞타이어) × 소스(WINGS·SAM)
- 그 모델의 첫 생산월은 기본(기준)으로 표시되고 변경 내역이 없습니다
- 생산이 없던 달은 — 로 비어 있습니다
- 한 달에 여러 대가 있으면 그 달의 코드는 합집합으로 봅니다. 대표 1건만 칩으로 보이고 나머지는 “외 n대”
- ⚠ n 배지 = 같은 달 안에서도 차량마다 사양이 갈린 코드 수. 마우스를 올리면 코드 목록이 보입니다
- Commission 번호를 클릭하면 그 차량의 상세 창이 열립니다
일치 / 불일치 띠
WINGS + SAM 대조일 때만 월 머리글 아래에 일치 / 불일치 띠가 깔립니다. 이 배지는 바로 아래 두 줄(WINGS·SAM)의 변경 내역이 서로 같은가를 말합니다. 화면에 보이는 것과 배지가 늘 맞아떨어지게 하려는 것입니다.
07 · 모델 매칭
“이 차는 어느 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을 열지 않고 브라우저에서 바로 고치고 저장할 수 있습니다.
순서
- 위쪽 파일 버튼에서 편집할 Excel을 고릅니다
- 시트 탭으로 편집할 시트를 고릅니다
- 🗂 카드 편집(행 하나를 폼으로) 또는 ▦ 표 편집(엑셀처럼 격자로) 중 하나로 수정합니다
- + 등록 — 새 항목 추가(카드 편집)
- + 행 추가 — 빈 행 추가(표 편집). 열 자체를 바꾸려면 표 편집을 쓰세요
- 행을 클릭하면 편집 창이 열리고, 창 안의 삭제로 행을 지웁니다
- 고치면 ● 저장되지 않은 변경 표시가 켜집니다
- ⭱ SharePoint에 저장 — 원본 Excel을 덮어씁니다 / ↺ 되돌리기 — 저장 전 상태로 복구 / ⬇ 다운로드 — 내 PC로 사본 저장
- ⟳ 데이터 다시 계산을 눌러야 비교 결과에 반영됩니다
09 · 데이터 다시 계산
상단 오른쪽 ⟳ 데이터 다시 계산은 SharePoint의 최신 WINGS와 SAM 생산월 폴더 전부, 그리고 기준표를 읽어 비교를 처음부터 다시 계산합니다.
언제 눌러야 하나
- 새 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) → Type → Baumuster 순 | 본문 Vehicle type 및 파일명 |
JKTO)는 코드 사전에 등록된 경우에만 살아남습니다 —
일반 영어 단어를 코드로 오인하지 않기 위한 장치입니다.
10.2 WINGS 한 줄에 SAM 문서를 붙이는 순서
- 모델 번호를 정규화합니다 — 축 정보(
8x4) 제거,DNA제거, 영숫자만 대문자로 - 그 차의 생산월 폴더에서 같은 모델키를 찾습니다
- 없으면 이전 최대 6개월 폴더를 차례로 찾습니다 → 찾으면 SAM update요청 표시
- 후보가 여러 개면 점수가 가장 높은 문서를 고릅니다
캡 일치 +3 · Baumuster 일치 +2 · Subcategory 일치 +1
- 끝내 못 찾으면 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 값을 모두 비웁니다 |
| Mismatch | Only 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 | 비고 | 왜 이렇게 분류했는지 적어 두는 칸 |
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 variant | SAM 문서·파일명에 쓰이는 캡 표기(예 G5F) |
| MY | 모델이어. 코드 V8Q~V8Z로 판정 |
| SAM update요청 | 생산월 폴더에 문서가 없어 이전 달 문서로 대신 비교했다는 표시 |