본문으로 건너뛰기

생산 관리

목차


개요

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

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

화면 구성 — 5개 하위 메뉴

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

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

고객 화면 (/customer/index)

상단 도구

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

목록 테이블 (10 컬럼)

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

양식 (form.jsp 주요 입력)

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

외부 고객 ID 가 있으면 플로우flow_create_customer 노드에서 외부 시스템 페이로드를 자동 매핑할 수 있습니다.


제품 화면 (/product/index)

목록 테이블 (주요 컬럼)

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

양식 주요 입력

입력path설명
제품 IDproduct_id도메인 식별자
제품 명product_name
제품 카테고리category
단위uom단위 코드
외부 제품 IDexternal_product_id(선택)
설명description

직원 화면 (/employee/index)

목록 테이블 (주요 컬럼)

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

양식 주요 입력

입력path설명
직원 IDemployee_id도메인 식별자
이름employee_name
소속 (org_id)org_id소속 사이트/조직 (생략 시 site_id 로 폴백)
부서·직급department / position
이메일·전화email / phone

근무표 화면 (/calendar/index)

근무표는 워크오더와 동일한 타임라인 + 데이터 목록 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(회색)
근무표 ID200px도메인 뱃지 (CALENDAR)
사이트 ID140px도메인 뱃지
설비 ID140px도메인 뱃지 (선택 시)
유형 코드120pxDAY/NIGHT/HOLIDAY/SETUP 등
시작 시간자동시프트 시작 일시
종료 시간자동시프트 종료 일시
등록일160px등록 시각
액션80px🔧 수정 / 🗑 삭제

양식 주요 입력

입력path설명
시프트 IDcalendar_id
시프트 명calendar_name
유형calendar_typeDAY/NIGHT/HOLIDAY/SETUP 등
시작/종료start_time / end_time
반복 패턴(월/화/수.../일)요일별 활성
설명description

워크오더 화면 (/order/index)

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

상단 검색 영역

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

숨김 필드

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

타임라인

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

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

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

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

데이터 목록 테이블

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

┌────────────────────────────────────────────────────────────────────┐
│ 상태 │ 워크오더 ID │ 설비 ID │ 제목 │ 목표/실적 │ OEE │ 시작/종료 │ 등록일 │ 액션 │
└────────────────────────────────────────────────────────────────────┘
컬럼설명
상태100px풀컬러 그라디언트 뱃지 (wo-status-* 7종 — 위 상태 7종)
워크오더 ID250px도메인 뱃지
설비 ID150pxasset_id (도메인 뱃지)
제목자동워크오더 제목
목표 / 실적180pxtarget_units / 실제 생산량
OEE90px워크오더 단위 OEE (%)
워크오더 시작/종료 시간150px두 줄 — 시작·종료 일시
등록일150px등록 시각
액션150px▶ 시작 / ⏸ 일시중지 / ⏹ 종료 / 🚫 중단 / 🔧 수정 / 🗑 삭제

워크오더 상태 7종

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

7종 중 2종은 저장되는 상태가 아닙니다

지연(DELAY)과 취소(CANCEL)는 화면이 시각을 보고 계산해 보여주는 것이고, 데이터로는 남지 않습니다. 저장되는 상태는 대기·진행중·일시중지·완료·비정상종료 다섯 가지입니다.

그래서 이 둘은 버튼으로 바꿀 수 없습니다. "지연"을 없애려면 오더를 시작하면 되고, "취소"를 없애려면 종료 예정 시각을 미뤄야 합니다. API 나 DB 에서 DELAY 를 찾아도 없습니다.

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

화면이 상태를 정하는 순서

저장된 상태가 먼저이고, 그것이 대기일 때만 시각으로 판정합니다.

저장된 상태가 진행중·일시중지·완료·비정상종료 → 그대로 표시
그 외(대기) → 지금 시각으로 판정
종료 예정 시각이 지났으면 → 취소
시작 예정 시각이 지났으면 → 지연
둘 다 아니면 → 대기

여기서 나오는 두 가지 실제 현상을 알아두면 좋습니다.

  • 일시중지된 오더는 종료 시각이 지나도 계속 "일시중지" 로 보입니다. 저장된 상태가 이기기 때문입니다 — 화면이 조용하다고 정상은 아니니 기간이 지난 일시중지 오더는 따로 챙기세요.
  • 취소를 지연보다 먼저 판정합니다. 시작·종료 시각이 모두 지난 오더는 "지연"을 건너뛰고 바로 "취소"로 보입니다.

색상 매핑은 상태 코드 정의 참고.

워크오더 도움말

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

워크오더 도움말 워크오더 메뉴에서는 생산 작업지시의 등록·시작·종료·삭제를 관리할 수 있습니다.

  • 대기 — 아직 시작 시간이 도래하지 않은 오더입니다.
  • 진행중 — 시작 버튼을 눌러 현재 가동 중인 오더입니다.
  • 일시중지 — 진행 중 일시중지된 오더입니다. 재개 또는 종료할 수 있습니다.
  • 지연 — 시작 시간이 지났으나 아직 시작하지 않은 오더입니다.
  • 취소 — 시작하지 않은 채 종료 시간이 경과한 오더입니다.
  • 완료 — 종료 처리된 오더입니다.
  • 비정상종료 — 진행 중 비정상 종료된 오더입니다.
  • 타임라인 및 목록에는 검색 기간 내 최대 1,000건의 오더가 표시됩니다.

워크오더 추가/수정 양식

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

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

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

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

2) 워크오더 fieldset

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

3) 외부 시스템 연동 fieldset

입력pathplaceholder
외부 주문 IDexternal_order_id (400px)"ERP/MES 주문 ID (선택)"
외부 PO IDexternal_po_id (400px)"구매발주 ID (선택)"
LOT 번호lot_number (300px)"LOT/배치 번호 (선택)"
BOM IDbom_id (300px)"BOM ID (선택)"

4) 기간 fieldset

입력name설명
워크오더 시작dp_fix_start_timestamp250pxplaceholder: 2023-01-02 09:00 — 형식 yyyy-MM-dd HH:mm:ss
워크오더 종료dp_fix_end_timestamp250pxplaceholder: 2023-01-03 18:00

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

5) 설비 및 작업자 fieldset

입력path설명
설비 IDasset_id (300px)자동완성 — 사이트의 설비 자산
직원 IDemployee_id (300px)자동완성 — 사이트의 직원

6) 고객 및 생산 제품 fieldset

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

7) 설명 및 비고 fieldset

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

워크오더 상세 화면 (/order/view/{order_id})

워크오더 목록에서 워크오더 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 데이터 및 분석 의 해당 KPI 탭으로 이동합니다.

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

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

컬럼설명
시간100px시간대
설비 상태100pxRUN/IDLE/STOP/FAULT 등
전체자동그 시간대 총 생산량
정상80px양품
불량80px불량
가동 시간120px분 단위
다운 시간120px분 단위
OEE70px종합 효율 (%)
가용성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·가동성·신뢰성·정비성
EMSEMS 통계 표 (ems_stats_table) — 에너지 소비·CO2 배출·피크 전력

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

데이터가 없으면 각 탭에 "표시할 데이터가 없습니다." 안내가 표시됩니다. 자세한 지표 의미는 ISO 데이터 및 분석 — OEE · RAM · EMS 참고.

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

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

우측 ② 근무표 패널

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

계획정지 등록 다이얼로그

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

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

ISO 분석

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


활용 시나리오

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

자주 묻는 질문

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건만 표시됩니다. 더 오래된 워크오더는 기간을 늘리시거나 일일 통계 화면에서 일자별 비교를 사용하세요.

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


관련 화면