- 설비 마커 클릭 시 슬라이드 패널로 상세 정보 표시 - 설비 사진 업로드/삭제 기능 - 설비 임시 이동 기능 (3단계 지도 기반 선택) - Step 1: 공장 선택 - Step 2: 레이아웃 지도에서 작업장 선택 - Step 3: 상세 지도에서 위치 선택 - 설비 외부 반출/반입 기능 - 설비 수리 신청 기능 (기존 신고 시스템 연동) - DB 마이그레이션 추가 (사진, 임시이동, 외부반출 테이블) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
87 lines
3.9 KiB
SQL
87 lines
3.9 KiB
SQL
-- 설비 외부반출 테이블 생성 및 상태 ENUM 확장
|
|
-- 실행: docker exec -i tkfb_db mysql -u hyungi -p'your_password' hyungi < db/migrations/20260205003000_create_equipment_external_logs.sql
|
|
|
|
SET @dbname = DATABASE();
|
|
|
|
-- ============================================
|
|
-- STEP 1: equipment_external_logs 테이블 생성
|
|
-- ============================================
|
|
|
|
CREATE TABLE IF NOT EXISTS equipment_external_logs (
|
|
log_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT UNSIGNED NOT NULL COMMENT '설비 ID',
|
|
log_type ENUM('export', 'return') NOT NULL COMMENT '반출/반입',
|
|
export_date DATE COMMENT '반출일',
|
|
expected_return_date DATE COMMENT '반입 예정일',
|
|
actual_return_date DATE COMMENT '실제 반입일',
|
|
destination VARCHAR(200) COMMENT '반출처 (수리업체명 등)',
|
|
reason TEXT COMMENT '반출 사유',
|
|
notes TEXT COMMENT '비고',
|
|
exported_by INT COMMENT '반출 담당자',
|
|
returned_by INT COMMENT '반입 담당자',
|
|
created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
updated_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_eel_equipment FOREIGN KEY (equipment_id)
|
|
REFERENCES equipments(equipment_id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_eel_exported_by FOREIGN KEY (exported_by)
|
|
REFERENCES users(user_id) ON DELETE SET NULL,
|
|
CONSTRAINT fk_eel_returned_by FOREIGN KEY (returned_by)
|
|
REFERENCES users(user_id) ON DELETE SET NULL,
|
|
INDEX idx_eel_equipment_id (equipment_id),
|
|
INDEX idx_eel_log_type (log_type),
|
|
INDEX idx_eel_export_date (export_date)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
SELECT 'equipment_external_logs 테이블 생성 완료' AS status;
|
|
|
|
-- ============================================
|
|
-- STEP 2: equipments 테이블 status ENUM 확장
|
|
-- ============================================
|
|
|
|
-- 현재 status 컬럼의 ENUM 값 확인 후 확장
|
|
-- 기존: active, maintenance, repair_needed, inactive
|
|
-- 추가: external (외부 반출), repair_external (수리 외주)
|
|
|
|
ALTER TABLE equipments
|
|
MODIFY COLUMN status ENUM(
|
|
'active', -- 정상 가동
|
|
'maintenance', -- 점검 중
|
|
'repair_needed', -- 수리 필요
|
|
'inactive', -- 비활성
|
|
'external', -- 외부 반출
|
|
'repair_external' -- 수리 외주 (외부 수리)
|
|
) DEFAULT 'active' COMMENT '설비 상태';
|
|
|
|
SELECT 'equipments status ENUM 확장 완료' AS status;
|
|
|
|
-- ============================================
|
|
-- STEP 3: 설비 이동 이력 테이블 생성 (선택)
|
|
-- ============================================
|
|
|
|
CREATE TABLE IF NOT EXISTS equipment_move_logs (
|
|
log_id INT AUTO_INCREMENT PRIMARY KEY,
|
|
equipment_id INT UNSIGNED NOT NULL COMMENT '설비 ID',
|
|
move_type ENUM('temporary', 'return') NOT NULL COMMENT '임시이동/복귀',
|
|
from_workplace_id INT UNSIGNED COMMENT '이전 작업장',
|
|
to_workplace_id INT UNSIGNED COMMENT '이동 작업장',
|
|
from_x_percent DECIMAL(5,2) COMMENT '이전 X좌표',
|
|
from_y_percent DECIMAL(5,2) COMMENT '이전 Y좌표',
|
|
to_x_percent DECIMAL(5,2) COMMENT '이동 X좌표',
|
|
to_y_percent DECIMAL(5,2) COMMENT '이동 Y좌표',
|
|
reason TEXT COMMENT '이동 사유',
|
|
moved_by INT COMMENT '이동 처리자',
|
|
moved_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP,
|
|
CONSTRAINT fk_eml_equipment FOREIGN KEY (equipment_id)
|
|
REFERENCES equipments(equipment_id) ON DELETE CASCADE,
|
|
CONSTRAINT fk_eml_from_workplace FOREIGN KEY (from_workplace_id)
|
|
REFERENCES workplaces(workplace_id) ON DELETE SET NULL,
|
|
CONSTRAINT fk_eml_to_workplace FOREIGN KEY (to_workplace_id)
|
|
REFERENCES workplaces(workplace_id) ON DELETE SET NULL,
|
|
CONSTRAINT fk_eml_moved_by FOREIGN KEY (moved_by)
|
|
REFERENCES users(user_id) ON DELETE SET NULL,
|
|
INDEX idx_eml_equipment_id (equipment_id),
|
|
INDEX idx_eml_move_type (move_type)
|
|
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_unicode_ci;
|
|
|
|
SELECT 'equipment_move_logs 테이블 생성 완료' AS status;
|