> For the complete documentation index, see [llms.txt](https://kopens.gitbook.io/plantpulse-platform/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://kopens.gitbook.io/plantpulse-platform/user/production.md).

# 생산 관리

## 목차

* [개요](#overview)
* [화면 구성 — 5개 하위 메뉴](#layout)
* [고객 화면 (`/customer/index`)](#customer)
* [제품 화면 (`/product/index`)](#product)
* [직원 화면 (`/employee/index`)](#employee)
* [근무표 화면 (`/calendar/index`)](#calendar)
* [워크오더 화면 (`/order/index`)](#order)
  * [상단 검색 영역](#order-top)
  * [타임라인](#order-timeline)
  * [데이터 목록 테이블](#order-list)
  * [워크오더 상태 7종](#order-states)
  * [워크오더 도움말](#order-help)
  * [워크오더 추가/수정 양식](#order-form)
* [ISO 분석 연결](#iso-analysis)
* [활용 시나리오](#use-cases)
* [자주 묻는 질문](#faq)
* [관련 화면](#related)

***

## 개요 <a href="#overview" id="overview"></a>

Production 그룹은 생산 활동에 필요한 도메인 정보(고객·제품·직원·근무표·작업지시)를 관리합니다. ISO 22400 기반 운영 분석은 현재 별도 **ISO** 그룹의 **ISO 데이터 / ISO 분석** 메뉴에서 제공합니다.

| 하위 메뉴    | 내부 URL            | 용도                  |
| -------- | ----------------- | ------------------- |
| **고객**   | `/customer/index` | 주문/공급 고객 정보 등록·관리   |
| **제품**   | `/product/index`  | 생산 제품 정보 등록·관리      |
| **직원**   | `/employee/index` | 작업자 등록·연락처·소속       |
| **근무표**  | `/calendar/index` | 시프트 일정 등록·관리        |
| **워크오더** | `/order/index`    | 작업지시 등록·시작·종료·상태 관리 |

***

## 화면 구성 — 5개 하위 메뉴 <a href="#layout" id="layout"></a>

각 하위 화면은 **목록(`index.jsp`)** + **양식(`form.jsp`)** 형태로 구성됩니다. 목록에서 추가/수정 버튼을 누르면 양식 화면으로 전환됩니다.

| 화면   | 라인 수        | 주된 사용자 | 한줄 요약                 |
| ---- | ----------- | ------ | --------------------- |
| 고객   | 138+171     | 영업/관리자 | 고객 ID·담당자·외부 고객 ID 매핑 |
| 제품   | 133+173     | 생산 기획  | 제품 ID·BOM·외부 제품 코드    |
| 직원   | 138+178     | 인사/관리자 | 직원 ID·연락처·소속 사이트      |
| 근무표  | 156+170     | 생산 운영  | 시프트(주/야간) 일정          |
| 워크오더 | 216+260+679 | 생산 현장  | 작업지시 라이프사이클 + 타임라인    |

***

## 고객 화면 (`/customer/index`) <a href="#customer" id="customer"></a>

### 상단 도구

```
👑 고객                                    [사이트 ▼] [조회] [↻] [➕ 고객 추가]
```

| 컨트롤                            | 설명                           |
| ------------------------------ | ---------------------------- |
| **사이트 셀렉터** (`site_id`, 200px) | 전체 사이트 + 등록된 사이트             |
| **조회 / 새로고침**                  | 검색 적용 / 화면 새로고침              |
| **고객 추가**                      | 양식 화면으로 이동 (`addCustomer()`) |

### 목록 테이블 (10 컬럼)

| 컬럼           | 폭     | 설명                        |
| ------------ | ----- | ------------------------- |
| **사이트 ID**   | 120px | 도메인 뱃지 (클릭 시 자산 트리 이동)    |
| **고객 ID**    | 120px | 도메인 뱃지 (`CUSTOMER` 타입)    |
| **고객 명**     | 자동    | 클릭 시 수정 화면으로 이동           |
| **담당자 이름**   | 100px | `manager_name`            |
| **담당자 이메일**  | 200px | `manager_email`           |
| **담당자 전화**   | 200px | `manager_phone`           |
| **외부 고객 ID** | 150px | 외부 시스템(MES/ERP) 매핑용 ID 뱃지 |
| **등록일**      | 150px | `yyyy-MM-dd HH:mm:ss`     |
| **마지막 수정일**  | 150px | 마지막 수정 시각                 |
| **액션**       | 80px  | 🔧 수정 / 🗑 삭제             |

### 양식 (form.jsp 주요 입력)

| 입력                | path                                           | 설명                       |
| ----------------- | ---------------------------------------------- | ------------------------ |
| **사이트**           | `site_id` (셀렉터, 신규 등록 시)                       | 고객이 속한 사이트               |
| **고객 ID**         | `customer_id`                                  | 영문/숫자/`_` 만 허용           |
| **고객 명**          | `customer_name`                                | 사람이 식별할 이름               |
| **담당자 이름·이메일·전화** | `manager_name`/`manager_email`/`manager_phone` | 연락처 메타                   |
| **외부 고객 ID**      | `external_customer_id`                         | (선택) MES/ERP 등 외부 시스템 ID |
| **설명**            | `description`                                  | 메모                       |

> 외부 고객 ID 가 있으면 [플로우](/plantpulse-platform/user/flow.md) 의 `flow_create_customer` 노드에서 외부 시스템 페이로드를 자동 매핑할 수 있습니다.

***

## 제품 화면 (`/product/index`) <a href="#product" id="product"></a>

### 목록 테이블 (주요 컬럼)

| 컬럼             | 설명                     |
| -------------- | ---------------------- |
| **사이트 ID**     | 도메인 뱃지                 |
| **제품 ID**      | 도메인 뱃지 (`PRODUCT`)     |
| **제품 명**       | 클릭 시 수정 화면             |
| **제품 카테고리**    | 카테고리 분류 (예: 가전·자동차 부품) |
| **단위 (UOM)**   | 측정 단위 (EA/KG/L 등)      |
| **외부 제품 ID**   | (선택) 외부 시스템 매핑용        |
| **등록일·수정일·액션** | 공통                     |

### 양식 주요 입력

| 입력           | path                  | 설명      |
| ------------ | --------------------- | ------- |
| **제품 ID**    | `product_id`          | 도메인 식별자 |
| **제품 명**     | `product_name`        | —       |
| **제품 카테고리**  | `category`            | —       |
| **단위**       | `uom`                 | 단위 코드   |
| **외부 제품 ID** | `external_product_id` | (선택)    |
| **설명**       | `description`         | —       |

***

## 직원 화면 (`/employee/index`) <a href="#employee" id="employee"></a>

### 목록 테이블 (주요 컬럼)

| 컬럼             | 설명                  |
| -------------- | ------------------- |
| **사이트 ID**     | 도메인 뱃지              |
| **직원 ID**      | 도메인 뱃지 (`EMPLOYEE`) |
| **이름**         | 클릭 시 수정 화면          |
| **소속 부서**      | 부서 정보               |
| **직급**         | —                   |
| **이메일·전화**     | 연락처                 |
| **등록일·수정일·액션** | 공통                  |

### 양식 주요 입력

| 입력                | path                      | 설명                             |
| ----------------- | ------------------------- | ------------------------------ |
| **직원 ID**         | `employee_id`             | 도메인 식별자                        |
| **이름**            | `employee_name`           | —                              |
| **소속 (`org_id`)** | `org_id`                  | 소속 사이트/조직 (생략 시 site\_id 로 폴백) |
| **부서·직급**         | `department` / `position` | —                              |
| **이메일·전화**        | `email` / `phone`         | —                              |

***

## 근무표 화면 (`/calendar/index`) <a href="#calendar" id="calendar"></a>

근무표는 워크오더와 동일한 **타임라인 + 데이터 목록** 2 패널 구성으로 통일되어 있습니다.

### 상단 검색 영역

```
📅 근무표                  [기간] [사이트 ▼] [유형 ▼] [건수 ▼] [조회] [↻] [➕ 이벤트 추가]
   시프트 캘린더 / 이벤트 일정 관리
```

| 컨트롤                    | 폭           | 설명                                       |
| ---------------------- | ----------- | ---------------------------------------- |
| **기간** (`search_time`) | 와이드         | 일시 범위 (캘린더 피커)                           |
| **사이트** (`site_id`)    | 150px       | 전체 사이트 + 등록 사이트                          |
| **유형** (`target_type`) | 140px       | 전체 유형 + 등록된 유형 코드 (예: DAY/NIGHT/HOLIDAY) |
| **건수** (`limit`)       | 140px       | 최근 50/100/200/300/500/1,000건             |
| **🔍 조회**              | 빨강 primary  | 위 조건으로 다시 로드                             |
| **↻ 새로고침**             | 회색 + 회전 아이콘 | —                                        |
| **➕ 이벤트 추가**           | 빨강 primary  | 새 시프트/이벤트 등록 폼                           |

### 타임라인 패널

워크오더와 동일한 컨트롤. 패널 헤더 보조: "시간 구간별 시프트 / 이벤트 분포".

| 빠른 범위                                 | 동작                              |
| ------------------------------------- | ------------------------------- |
| **10분 / 30분 / 1시간 / 6시간 / 12시간 / 전체** | 6 버튼 — 클릭 시 active 강조 (기본 "전체") |

타임라인(`data_timeline`) 위에 시프트가 색상 막대로 표시됩니다. 색상은 시프트 상태(`cal-status-*` 풀컬러 그라디언트 뱃지)에 따라 다릅니다.

### 데이터 목록 테이블 (9 컬럼)

패널 헤더 보조: "검색된 시프트 / 이벤트 목록".

| 컬럼         | 폭     | 표시                                                                  |
| ---------- | ----- | ------------------------------------------------------------------- |
| **상태**     | 90px  | 풀컬러 그라디언트 `cal-status-*` 뱃지 — UPCOMING(파랑) / PROGRESS(녹) / DONE(회색) |
| **근무표 ID** | 200px | 도메인 뱃지 (CALENDAR)                                                   |
| **사이트 ID** | 140px | 도메인 뱃지                                                              |
| **설비 ID**  | 140px | 도메인 뱃지 (선택 시)                                                       |
| **유형 코드**  | 120px | DAY/NIGHT/HOLIDAY/SETUP 등                                           |
| **시작 시간**  | 자동    | 시프트 시작 일시                                                           |
| **종료 시간**  | 자동    | 시프트 종료 일시                                                           |
| **등록일**    | 160px | 등록 시각                                                               |
| **액션**     | 80px  | 🔧 수정 / 🗑 삭제                                                       |

### 양식 주요 입력

| 입력         | path                      | 설명                        |
| ---------- | ------------------------- | ------------------------- |
| **시프트 ID** | `calendar_id`             | —                         |
| **시프트 명**  | `calendar_name`           | —                         |
| **유형**     | `calendar_type`           | DAY/NIGHT/HOLIDAY/SETUP 등 |
| **시작/종료**  | `start_time` / `end_time` | —                         |
| **반복 패턴**  | (월/화/수.../일)              | 요일별 활성                    |
| **설명**     | `description`             | —                         |

***

## 워크오더 화면 (`/order/index`) <a href="#order" id="order"></a>

작업지시 라이프사이클 전체(등록·시작·일시중지·재개·종료·중단)를 관리하는 핵심 화면입니다.

### 상단 검색 영역 <a href="#order-top" id="order-top"></a>

```
💼 워크오더    [기간 ▭▭▭▭] [사이트 ▼] [검색...] [상태 ▼] [건수 ▼] [조회][↻] [➕ 워크오더 추가]
```

| 컨트롤                      | 폭      | 설명                                     |
| ------------------------ | ------ | -------------------------------------- |
| **기간** (`search_time`)   | 280px  | 시작\~종료 (가운데, 굵은 글씨)                    |
| **사이트** (`site_id`)      | 150px  | 전체 사이트 + 등록 사이트                        |
| **검색** (`search_value`)  | 200px  | placeholder: "검색 ..." — 워크오더 ID·제목 키워드 |
| **상태** (`search_status`) | 120px  | 전체/대기/진행중/일시중지/완료/비정상종료/지연/취소          |
| **건수** (`limit`)         | 130px  | 50/100/200/300/500/1,000               |
| **조회 / 새로고침**            | 빨강     | `search()` / `refresh()`               |
| **워크오더 추가**              | 빨강 + ➕ | 양식 화면으로 (`addOrder()`)                 |

#### 숨김 필드

상단 검색 폼에는 외부 화면(설비·고객·직원·제품 등)에서 넘어올 때 사용되는 hidden 필드가 있습니다: `shift_id`, `order_id`, `asset_id`, `employee_id`, `customer_id`, `product_id`. 외부에서 그 자원의 워크오더만 보고 싶을 때 자동으로 채워져 옵니다.

### 타임라인 <a href="#order-timeline" id="order-timeline"></a>

패널 헤더에 "타임라인 — 시간 구간별 워크오더 진행 상태" + 우측 6 범위 버튼 그룹.

| 빠른 범위 버튼         | 동작         |
| ---------------- | ---------- |
| **🕗 10분전**      | 현재로부터 10분  |
| **30분전**         | 현재로부터 30분  |
| **1시간전**         | 현재로부터 1시간  |
| **6시간전**         | 현재로부터 6시간  |
| **12시간전**        | 현재로부터 12시간 |
| **전체기간** (기본 활성) | 검색 기간 전체   |

선택된 범위 버튼은 **active** 강조로 표시됩니다. 진단·로그·플로우 화면과 동일한 컨트롤 패턴.

타임라인 영역(`data_timeline`)에는 워크오더가 시간 축 위에 *풀컬러 그라디언트 색상 막대(t-box-2- 뱃지)*\* 로 표시됩니다. 각 막대는 상태별 색(아래 [상태 7종](#order-states))이며, 클릭하면 그 워크오더의 [상세 화면](#order-view)으로 이동합니다.

### 데이터 목록 테이블 <a href="#order-list" id="order-list"></a>

패널 헤더 보조: "검색된 워크오더 목록".

```
┌────────────────────────────────────────────────────────────────────┐
│ 상태 │ 워크오더 ID │ 설비 ID │ 제목 │ 목표/실적 │ OEE │ 시작/종료 │ 등록일 │ 액션 │
└────────────────────────────────────────────────────────────────────┘
```

| 컬럼                | 폭     | 설명                                                         |
| ----------------- | ----- | ---------------------------------------------------------- |
| **상태**            | 100px | 풀컬러 그라디언트 뱃지 (`wo-status-*` 7종 — 위 [상태 7종](#order-states)) |
| **워크오더 ID**       | 250px | 도메인 뱃지                                                     |
| **설비 ID**         | 150px | `asset_id` (도메인 뱃지)                                        |
| **제목**            | 자동    | 워크오더 제목                                                    |
| **목표 / 실적**       | 180px | `target_units` / 실제 생산량                                    |
| **OEE**           | 90px  | 워크오더 단위 OEE (%)                                            |
| **워크오더 시작/종료 시간** | 150px | 두 줄 — 시작·종료 일시                                             |
| **등록일**           | 150px | 등록 시각                                                      |
| **액션**            | 150px | ▶ 시작 / ⏸ 일시중지 / ⏹ 종료 / 🚫 중단 / 🔧 수정 / 🗑 삭제               |

### 워크오더 상태 7종 <a href="#order-states" id="order-states"></a>

상태는 `wo-status-*` 풀컬러 그라디언트 뱃지로 표시되며, 같은 색상이 타임라인 막대에도 그대로 적용됩니다.

| 코드        | 한국어   | 그라디언트 색     | 설명                          |
| --------- | ----- | ----------- | --------------------------- |
| `WAIT`    | 대기    | 슬레이트 그레이    | 아직 시작 시간이 도래하지 않은 오더        |
| `START`   | 진행중   | 🟢 진녹 그라데이션 | 시작 버튼을 눌러 현재 가동 중           |
| `PAUSED`  | 일시중지  | 🟠 주황       | 진행 중 일시중지된 오더 (재개 또는 종료 가능) |
| `END`     | 완료    | 🔵 짙은 청회색   | 종료 처리된 오더                   |
| `ABORTED` | 비정상종료 | 🔴 진빨강      | 진행 중 비정상 종료된 오더             |
| `DELAY`   | 지연    | 🟡 황색       | 시작 시간이 지났으나 아직 시작하지 않은 오더   |
| `CANCEL`  | 취소    | ⚪ 연회색       | 시작하지 않은 채 종료 시간이 경과한 오더     |

> 색상 매핑은 [상태 코드 정의](/plantpulse-platform/user/status.md#workorder-status) 참고.

### 워크오더 도움말 <a href="#order-help" id="order-help"></a>

화면 하단에 운영 가이드 박스가 표시됩니다.

> ❓ **워크오더 도움말** 워크오더 메뉴에서는 생산 작업지시의 등록·시작·종료·삭제를 관리할 수 있습니다.
>
> * **대기** — 아직 시작 시간이 도래하지 않은 오더입니다.
> * **진행중** — 시작 버튼을 눌러 현재 가동 중인 오더입니다.
> * **일시중지** — 진행 중 일시중지된 오더입니다. 재개 또는 종료할 수 있습니다.
> * **지연** — 시작 시간이 지났으나 아직 시작하지 않은 오더입니다.
> * **취소** — 시작하지 않은 채 종료 시간이 경과한 오더입니다.
> * **완료** — 종료 처리된 오더입니다.
> * **비정상종료** — 진행 중 비정상 종료된 오더입니다.
> * 타임라인 및 목록에는 검색 기간 내 최대 1,000건의 오더가 표시됩니다.

### 워크오더 추가/수정 양식 <a href="#order-form" id="order-form"></a>

상단 **워크오더 추가** 또는 행의 🔧 수정 버튼으로 양식 화면으로 이동합니다.

#### 1) 사이트 fieldset (신규 등록 시만)

| 입력         | path                  | 설명                          |
| ---------- | --------------------- | --------------------------- |
| **사이트 선택** | `site_id` (350px 셀렉터) | 변경 시 그 사이트의 자산/직원 목록을 다시 로드 |

수정 모드(`mode='U'`)에서는 hidden 필드로 유지됩니다.

#### 2) 워크오더 fieldset

| 입력          | path                   | 설명                           |
| ----------- | ---------------------- | ---------------------------- |
| **워크오더 ID** | `order_id` (400px)     | 영문/숫자/`_` 만 허용               |
| **제목**      | `title` (600px)        | 사람이 읽기 좋은 제목                 |
| **우선순위**    | `priority` (200px 셀렉터) | NORMAL / LOW / HIGH / URGENT |

#### 3) 외부 시스템 연동 fieldset

| 입력           | path                        | placeholder          |
| ------------ | --------------------------- | -------------------- |
| **외부 주문 ID** | `external_order_id` (400px) | "ERP/MES 주문 ID (선택)" |
| **외부 PO ID** | `external_po_id` (400px)    | "구매발주 ID (선택)"       |
| **LOT 번호**   | `lot_number` (300px)        | "LOT/배치 번호 (선택)"     |
| **BOM ID**   | `bom_id` (300px)            | "BOM ID (선택)"        |

#### 4) 기간 fieldset

| 입력          | name                     | 폭     | 설명                                                         |
| ----------- | ------------------------ | ----- | ---------------------------------------------------------- |
| **워크오더 시작** | `dp_fix_start_timestamp` | 250px | placeholder: `2023-01-02 09:00` — 형식 `yyyy-MM-dd HH:mm:ss` |
| **워크오더 종료** | `dp_fix_end_timestamp`   | 250px | placeholder: `2023-01-03 18:00`                            |

> 시작/종료 시각이 현재보다 앞이면 `WAIT` → `DELAY` 자동 전환, 종료 시각이 지나도록 시작 안 되면 `CANCEL` 로 자동 변경됩니다.

#### 5) 설비 및 작업자 fieldset

| 입력        | path                  | 폭                 | 설명 |
| --------- | --------------------- | ----------------- | -- |
| **설비 ID** | `asset_id` (300px)    | 자동완성 — 사이트의 설비 자산 |    |
| **직원 ID** | `employee_id` (300px) | 자동완성 — 사이트의 직원    |    |

#### 6) 고객 및 생산 제품 fieldset

| 입력                 | path                               | 폭                                       | 설명 |
| ------------------ | ---------------------------------- | --------------------------------------- | -- |
| **고객 ID**          | `customer_id` (300px)              | 자동완성                                    |    |
| **제품 ID**          | `product_id` (300px)               | 자동완성                                    |    |
| **제품 생산 목표 수량**    | `target_units` (200px, 우정렬)        | 정수 — 그 워크오더에서 만들 양                      |    |
| **단위 생산 시간 \[MS]** | `time_per_unit_in_ms` (200px, 우정렬) | 한 개를 만드는 데 걸리는 시간(밀리초) — OEE 의 이상 시간 산출 |    |

#### 7) 설명 및 비고 fieldset

| 입력     | path          | 설명     |
| ------ | ------------- | ------ |
| **설명** | `description` | 자유 텍스트 |
| **비고** | `note` (선택)   | 운영자 메모 |

***

## 워크오더 상세 화면 (`/order/view/{order_id}`) <a href="#order-view" id="order-view"></a>

워크오더 목록에서 워크오더 ID 또는 행을 클릭하면 그 작업지시의 상세 화면으로 진입합니다. 화면은 col-lg-9 좌측(주요 패널들) + col-lg-3 우측(워크오더 메타 + 근무표)으로 구성됩니다.

### 상단 — 페이지 헤더

```
💼 워크오더 | {order_id}                            [← 목록] [↻ 새로고침]
   {site_id} / {asset_id} / {product_id} / {customer_id}
```

식별 정보(사이트·설비·제품·고객) 한 줄로 어떤 작업지시인지 즉시 파악할 수 있습니다.

### 좌측 ① 생산 진행률 패널 (단독)

화면 최상단 — 큰 진행률 숫자와 막대 + 메타 3 칸. 패널 헤더 우측에 **📊 ISO 분석** 버튼.

```
┌── 생산 진행률 ──────────────────────────────────────────┐
│                                                       │
│   78%       생산량: 1,560 개                          │
│   ████████████░░░░       목표: 2,000 개               │
│                          잔여: 440 개                 │
└───────────────────────────────────────────────────────┘
```

| 영역                             | 표시              |
| ------------------------------ | --------------- |
| **달성률** (`side_prod_rate`)     | 큰 % 숫자 + 진행률 막대 |
| **생산량** (`side_prod_good`)     | 양품 누적           |
| **목표** (`side_prod_target`)    | 목표 수량           |
| **잔여** (`side_prod_remaining`) | 목표 − 생산량        |

### 좌측 ② 요약 정보 패널 — 라이프사이클 액션 버튼 7종

패널 헤더 우측에 다음 버튼이 한 그룹으로 표시되며, 워크오더 상태에 따라 활성/비활성이 자동 전환됩니다.

| 버튼                   | 동작                        | 활성 조건               |
| -------------------- | ------------------------- | ------------------- |
| **▶ 시작**             | `startOrder()`            | `WAIT` 상태           |
| **⏸ 일시중지**           | `pauseOrder()`            | `START` 상태          |
| **🔄 재개**            | `resumeOrder()`           | `PAUSED` 상태         |
| **⏹ 종료**             | `endOrder()`              | `START`/`PAUSED` 상태 |
| **❌ 비정상종료**          | `abortOrder()`            | `START`/`PAUSED` 상태 |
| **📅 계획정지 등록**       | `openPlannedStopDialog()` | 항상 활성               |
| **🔧 수정** (아이콘 only) | `editOrder()`             | 항상 활성               |

> 마지막 조회 기준 시간(`last_refresh_time`)이 패널 헤더 라벨 영역에 작은 글씨로 표시됩니다.

#### 요약 정보 표 (5 컬럼)

| 컬럼        | 표시                                                               |
| --------- | ---------------------------------------------------------------- |
| **현재 상태** | 색상 뱃지 (WAIT/START/PAUSED/END/ABORTED/DELAY/CANCEL) — 풀컬러 그라디언트 톤 |
| **달성률**   | 실적 ÷ 목표 (%)                                                      |
| **정상**    | 양품 수                                                             |
| **불량**    | 불량품 수                                                            |
| **목표**    | 목표 수량                                                            |

### 좌측 ③ OEE 패널 (단독)

이전 버전에서 OEE/RAM/EMS 가 한 패널에 묶여 있었으나, **OEE 가 단독 패널로 분리되었습니다**. 한 패널 안에 4종의 카드 stat 이 큰 숫자 + 스파크라인 + 전일 대비 델타로 표시됩니다.

| 카드                     | 표시                        |
| ---------------------- | ------------------------- |
| **OEE**                | 종합 효율 (%) — 가용성 × 성능 × 품질 |
| **가용성 (Availability)** | (%)                       |
| **성능 (Performance)**   | (%)                       |
| **품질 (Quality)**       | (%)                       |

각 카드는 클릭 시 [ISO 데이터 및 분석](/plantpulse-platform/user/plugins.md) 의 해당 KPI 탭으로 이동합니다.

### 좌측 ④ 시간대별 OEE 표 (12 컬럼)

작업지시 진행 중 매 시간대별 OEE 스냅샷. 패널 헤더 서브 텍스트: "시간대별 생산량 · OEE 지표 이력".

| 컬럼        | 폭     | 설명                    |
| --------- | ----- | --------------------- |
| **시간**    | 100px | 시간대                   |
| **설비 상태** | 100px | RUN/IDLE/STOP/FAULT 등 |
| **전체**    | 자동    | 그 시간대 총 생산량           |
| **정상**    | 80px  | 양품                    |
| **불량**    | 80px  | 불량                    |
| **가동 시간** | 120px | 분 단위                  |
| **다운 시간** | 120px | 분 단위                  |
| **OEE**   | 70px  | 종합 효율 (%)             |
| **가용성**   | 70px  | (%)                   |
| **성능**    | 70px  | (%)                   |
| **품질**    | 70px  | (%)                   |

### 좌측 ⑤ ISO 데이터 탭 — OEE / RAM / EMS

OEE 단독 패널 아래에 **3-탭 패널**이 새로 분리되었습니다 (`tab-content-as-panels` 패턴). 탭 본체가 각 패널로 표시됩니다.

| 탭       | 아이콘 | 표시                                                   |
| ------- | --- | ---------------------------------------------------- |
| **OEE** | 🎚  | OEE KPI 추이 표 (`oee_kpi_stats_table`) — 가용성·성능·품질 시간별 |
| **RAM** | 🔧  | RAM 통계 표 (`ram_stats_table`) — MTBF·MTTR·가동성·신뢰성·정비성 |
| **EMS** | ⚡   | EMS 통계 표 (`ems_stats_table`) — 에너지 소비·CO2 배출·피크 전력   |

각 탭의 표 위에는 시간대별 트렌드 차트(라인/막대)가 함께 표시됩니다.

> 데이터가 없으면 각 탭에 "표시할 데이터가 없습니다." 안내가 표시됩니다. 자세한 지표 의미는 [ISO 데이터 및 분석 — OEE](/plantpulse-platform/user/plugins.md#tab-oee) · [RAM](/plantpulse-platform/user/plugins.md#tab-ram) · [EMS](/plantpulse-platform/user/plugins.md#tab-ems) 참고.

### 우측 ① 워크오더 정보 패널 (ds-dl)

[워크오더 양식](#order-form) 의 모든 입력 항목이 정의 리스트로 표시됩니다 (제목·우선순위·외부 ID·기간·설비·직원·고객·제품 등). 도메인 ID 는 모두 색상 뱃지 — 클릭으로 그 도메인 화면 이동.

### 우측 ② 근무표 패널

그 워크오더 기간에 적용되는 시프트 정보. 근무표 관리 화면으로 진입하는 버튼 포함.

### 계획정지 등록 다이얼로그

요약 패널의 **📅 계획정지 등록** 버튼으로 열립니다. 점심·정기점검 등 계획된 정지를 등록하면 OEE 의 **가용성(Availability)** 계산에서 제외됩니다.

| 입력             | 설명            |
| -------------- | ------------- |
| **시작 / 종료 시각** | 정지 구간         |
| **사유 코드**      | 점심/회의/정기점검/기타 |
| **메모**         | 추가 설명 (선택)    |

***

## ISO 분석 <a href="#iso-analysis" id="iso-analysis"></a>

현재 통합 메뉴의 **ISO > ISO 분석** 은 별도 분석 화면(`/analysis/index`)으로 이동합니다. 여기서는 ISO 22400 기반의 KPI 분석을 자세히 볼 수 있으며, [ISO 데이터 및 분석 (OEE/RAM/EMS)](/plantpulse-platform/user/plugins.md) 화면과 함께 사용됩니다.

***

## 활용 시나리오 <a href="#use-cases" id="use-cases"></a>

| 시나리오                  | 절차                                                                                                          |
| --------------------- | ----------------------------------------------------------------------------------------------------------- |
| **신규 고객 등록 + 첫 워크오더** | 고객 추가 → 제품 추가 → 워크오더 추가 (외부 주문 ID 매핑)                                                                       |
| **시프트 변경 자동 반영**      | 근무표에서 시프트 등록 → 워크오더에 시프트 ID 매핑 → 시프트 시간에 맞춰 자동 시작                                                           |
| **외부 ERP 동기화**        | [플로우](/plantpulse-platform/user/flow.md) 의 `flow_jdbc_poll` + `flow_create_work_order` 로 외부 PO 를 자동 워크오더 등록 |
| **품질 이슈로 라인 격리**      | 워크오더의 🚫 중단 → `ABORTED` + abort\_code 입력                                                                    |
| **시작 지연 추적**          | 상태=`DELAY` 로 검색 → 지연 사유 분석 → 운영자에게 통보                                                                       |
| **OEE 평가**            | 종료된 워크오더의 OEE 컬럼 + [ISO 데이터 및 분석](/plantpulse-platform/user/plugins.md) 의 OEE 탭 비교                          |

***

## 자주 묻는 질문 <a href="#faq" id="faq"></a>

**Q. 시작 시간이 지났는데 진행중으로 바뀌지 않습니다.** A. 자동 시작은 시프트·자동화 플로우가 등록되어 있어야 합니다. 수동 시작은 워크오더 행의 ▶ 시작 액션 버튼으로 가능합니다.

**Q. 비정상종료(`ABORTED`)와 취소(`CANCEL`)의 차이는?** A. **비정상종료** 는 진행 중에 강제 종료된 경우, **취소** 는 시작하지도 않은 채 종료 시간이 지나간 경우입니다.

**Q. 외부 주문 ID·PO ID·LOT·BOM 은 모두 입력해야 하나요?** A. 모두 선택입니다. 외부 시스템과 연동되지 않는 일회성 작업이라면 비워 두셔도 됩니다.

**Q. 단위 생산 시간(MS)은 어떻게 정하나요?** A. 이상적인 1개 생산 사이클 시간(밀리초)입니다. 예: 10초/개 → `10000`. 이 값은 OEE 의 성능(Performance) 계산에 사용됩니다.

**Q. 일시중지된 워크오더의 OEE 는 어떻게 계산되나요?** A. 일시중지 시간은 가동시간에서 제외되어 가용성(Availability)에 반영됩니다. 단, 시간 단위로 다운타임이 누적됩니다.

**Q. 워크오더 ID 가 영문/숫자/`_` 만 허용된다는데 한글 작업명을 쓰고 싶어요.** A. **워크오더 ID** 는 시스템 식별자로 영문/숫자/`_` 만 허용됩니다. 한글 표기는 **제목** 필드에 입력하시면 화면 곳곳에서 함께 표시됩니다.

**Q. 자동완성이 안 됩니다.** A. 자동완성은 사이트가 선택되어야 그 사이트의 자산·직원·고객·제품을 검색합니다. **사이트 선택** 부터 진행하세요.

**Q. 검색 기간 외의 워크오더가 안 보입니다.** A. 정상 동작입니다. 화면은 검색 기간 내 최대 1,000건만 표시됩니다. 더 오래된 워크오더는 기간을 늘리시거나 [일일 통계](/plantpulse-platform/user/statistics.md) 화면에서 일자별 비교를 사용하세요.

**Q. 고객의 외부 ID 와 워크오더의 외부 주문 ID 는 어떻게 다른가요?** A. **고객의 외부 ID** 는 그 고객 자체의 외부 시스템 식별자, **워크오더의 외부 주문 ID** 는 그 한 건의 작업지시(주문)에 대한 외부 시스템 식별자입니다.

***

## 관련 화면 <a href="#related" id="related"></a>

* [대시보드](/plantpulse-platform/user/summary.md) — 오늘 워크오더 카운트와 도넛 차트
* [설비](/plantpulse-platform/user/equipment.md) — 카드 클릭 시 그 설비의 워크오더 보기
* [ISO 데이터 및 분석](/plantpulse-platform/user/plugins.md) — 워크오더별 OEE/RAM/EMS 분석
* [일일 통계](/plantpulse-platform/user/statistics.md) — 사이트·일자별 워크오더 집계
* [플로우](/plantpulse-platform/user/flow.md) — 워크오더 자동 발행·상태 전이 자동화
* [상태 코드 정의](/plantpulse-platform/user/status.md#workorder-status) — 7종 상태 색상
* [팩토리 관리](/plantpulse-platform/user/factory.md) — 자산·고객·제품 등록과 자산 트리
