- 통합 원격 접속 정보 UI 구현 (IP/MAC 및 계정 정보 통합) - 서버 측 스냅샷 비교 기반 자동 이력(Log) 생성 로직 도입 - 타임라인 UI 개선 (이벤트별 색상 뱃지 및 변동 사항 강조) - 자산 상세 필드 확장 (서비스 구분, 용도 등) - 테스트 데이터 생성기 및 이력 계획서 추가
181 lines
9.6 KiB
TypeScript
181 lines
9.6 KiB
TypeScript
/**
|
|
* ITAM 통합 스키마 매퍼 (Unified Schema Mapper)
|
|
*
|
|
* key: 애플리케이션 내부 로직에서 사용하는 속성명
|
|
* db: MySQL 데이터베이스 컬럼명
|
|
* ui: 사용자에게 보여지는 UI 레이블
|
|
*/
|
|
|
|
export const ASSET_SCHEMA = {
|
|
// ─── 공통 필드 (Common) ───
|
|
ID: { key: 'id', db: 'id', ui: 'ID' },
|
|
ASSET_CODE: { key: 'asset_code', db: 'asset_code', ui: '자산번호' },
|
|
CATEGORY: { key: 'category', db: 'category', ui: '구분' },
|
|
ASSET_TYPE: { key: 'asset_type', db: 'asset_type', ui: '유형' },
|
|
PURCHASE_CORP: { key: 'purchase_corp',db: 'purchase_corp', ui: '구매법인' },
|
|
PURCHASE_DATE: { key: 'purchase_date',db: 'purchase_date', ui: '구매일자' },
|
|
PURCHASE_AMOUNT:{ key: 'purchase_amount', db: 'purchase_amount', ui: '구매금액' },
|
|
PURCHASE_VENDOR:{ key: 'purchase_vendor', db: 'purchase_vendor', ui: '구매업체' },
|
|
APPROVAL_DOC: { key: 'approval_document', db: 'approval_document', ui: '품의서' },
|
|
SERVICE_TYPE: { key: 'service_type', db: 'service_type', ui: '서비스 구분' },
|
|
MANAGER_MAIN: { key: 'manager_primary', db: 'manager_primary', ui: '담당자(정)' },
|
|
MANAGER_SUB: { key: 'manager_secondary', db: 'manager_secondary', ui: '담당자(부)' },
|
|
LOCATION: { key: 'location', db: 'location', ui: '자산위치' },
|
|
LOC_DETAIL: { key: 'location_detail', db: 'location_detail', ui: '상세위치' },
|
|
LOCATION_PHOTO: { key: 'location_photo', db: 'location_photo', ui: '배치도이미지' },
|
|
LOC_X: { key: 'loc_x', db: 'loc_x', ui: '위치X' },
|
|
LOC_Y: { key: 'loc_y', db: 'loc_y', ui: '위치Y' },
|
|
MEMO: { key: 'memo', db: 'memo', ui: '메모' },
|
|
|
|
// ─── 하드웨어 상세 (Hardware) ───
|
|
HW_STATUS: { key: 'hw_status', db: 'hw_status', ui: '상태' },
|
|
MODEL_NAME: { key: 'model_name', db: 'model_name', ui: '모델명' },
|
|
ASSET_NAME: { key: 'asset_name', db: 'asset_name', ui: '자산명' },
|
|
ASSET_MFR: { key: 'asset_mfr', db: 'asset_mfr', ui: '제조사' },
|
|
CURRENT_DEPT: { key: 'current_dept', db: 'current_dept', ui: '현 사용조직' },
|
|
PREV_DEPT: { key: 'previous_dept',db: 'previous_dept', ui: '직전 사용조직' },
|
|
CURRENT_USER: { key: 'user_current', db: 'user_current', ui: '현 사용자' },
|
|
EMP_NO: { key: 'emp_no', db: 'emp_no', ui: '사번' },
|
|
USER_POSITION: { key: 'user_position', db: 'user_position', ui: '직무' },
|
|
PREV_USER: { key: 'previous_user',db: 'previous_user', ui: '직전 사용자' },
|
|
CPU: { key: 'cpu', db: 'cpu', ui: 'CPU' },
|
|
RAM: { key: 'ram', db: 'ram', ui: 'RAM' },
|
|
GPU: { key: 'gpu', db: 'gpu', ui: 'GPU' },
|
|
SSD1: { key: 'ssd_1', db: 'ssd_1', ui: 'SSD1' },
|
|
SSD2: { key: 'ssd_2', db: 'ssd_2', ui: 'SSD2' },
|
|
HDD1: { key: 'hdd_1', db: 'hdd_1', ui: 'HDD1' },
|
|
HDD2: { key: 'hdd_2', db: 'hdd_2', ui: 'HDD2' },
|
|
HDD3: { key: 'hdd_3', db: 'hdd_3', ui: 'HDD3' },
|
|
HDD4: { key: 'hdd_4', db: 'hdd_4', ui: 'HDD4' },
|
|
MAINBOARD: { key: 'mainboard', db: 'mainboard', ui: '메인보드' },
|
|
OS: { key: 'os', db: 'os', ui: 'OS' },
|
|
IP_ADDR: { key: 'ip_address', db: 'ip_address', ui: 'IP 주소' },
|
|
IP_ADDR2: { key: 'ip_address_2', db: 'ip_address_2', ui: 'IP 주소 2' },
|
|
MAC_ADDR: { key: 'mac_address', db: 'mac_address', ui: 'MAC 주소' },
|
|
REMOTE_TOOL: { key: 'remote_tool', db: 'remote_tool', ui: '원격도구' },
|
|
REMOTE_ID: { key: 'remote_id', db: 'remote_id', ui: '원격 ID' },
|
|
REMOTE_PW: { key: 'remote_pw', db: 'remote_pw', ui: '원격 PW' },
|
|
MONITORING: { key: 'monitoring', db: 'monitoring', ui: '모니터링' },
|
|
VOLUME: { key: 'volume', db: 'volume', ui: '용량' },
|
|
MONITOR_INCH: { key: 'monitor_inch', db: 'monitor_inch', ui: '인치' },
|
|
ASSET_COUNT: { key: 'asset_count', db: 'asset_count', ui: '수량' },
|
|
SERIAL_NUM: { key: 'serial_num', db: 'serial_num', ui: 'S/N' },
|
|
|
|
// ─── 소프트웨어/클라우드 상세 (SW/Cloud/Domain) ───
|
|
SW_STATUS: { key: 'sw_status', db: 'sw_status', ui: '상태' },
|
|
SW_FIELD: { key: 'sw_field', db: 'sw_field', ui: '분야' },
|
|
SW_TYPE: { key: 'sw_type', db: 'sw_type', ui: '유형' },
|
|
DEV_OBJ: { key: 'dev_objective',db: 'dev_objective', ui: '목적' },
|
|
DEV_MGR: { key: 'dev_manager', db: 'dev_manager', ui: '개발담당자' },
|
|
PLANNING_MGR: { key: 'planning_manager', db: 'planning_manager', ui: '기획담당자' },
|
|
SALES_MGR: { key: 'sales_manager',db: 'sales_manager', ui: '영업담당자' },
|
|
PRODUCT_NAME: { key: 'product_name', db: 'product_name', ui: '제품명' },
|
|
DOMAIN_ADDR: { key: 'domain_address', db: 'domain_address',ui: '도메인주소' },
|
|
EMAIL_ACCOUNT: { key: 'email_account', db: 'email_account', ui: '이메일주소' },
|
|
EMAIL_PW: { key: 'email_pw', db: 'email_pw', ui: '이메일비밀번호' },
|
|
SW_ID: { key: 'sw_id', db: 'sw_id', ui: '계정ID' },
|
|
SW_PW: { key: 'sw_pw', db: 'sw_pw', ui: '비밀번호' },
|
|
PURCHASE_METHOD:{ key: 'purchase_method', db: 'purchase_method', ui: '결제수단' },
|
|
ASSET_PURPOSE: { key: 'asset_purpose', db: 'asset_purpose', ui: '용도' },
|
|
ASSET_STATUS: { key: 'asset_status', db: 'asset_status', ui: '상태' },
|
|
START_DATE: { key: 'start_date', db: 'start_date', ui: '시작일' },
|
|
EXPIRED_DATE: { key: 'expired_date', db: 'expired_date', ui: '만료일' }
|
|
};
|
|
|
|
/**
|
|
* 페이지별 헤더 정보 (타이틀, 설명, 아이콘)
|
|
*/
|
|
export const PAGE_DESCRIPTIONS: Record<string, { title: string; description: string; icon: string }> = {
|
|
'PC': {
|
|
title: '개인PC 자산 관리',
|
|
description: '임직원에게 지급된 데스크톱 및 노트북 자산의 할당 현황과 하드웨어 사양을 통합 관리합니다.',
|
|
icon: 'laptop'
|
|
},
|
|
'서버': {
|
|
title: '서버 자산 관리',
|
|
description: 'IDC 및 사내 서버실에 운영 중인 물리 서버 장비의 도입, 운영, 폐기 현황을 관리합니다.',
|
|
icon: 'server'
|
|
},
|
|
'스토리지': {
|
|
title: '스토리지 자산 관리',
|
|
description: '데이터 저장 및 백업을 위한 NAS, DAS 등 스토리지 장비의 용량과 연결 상태를 관리합니다.',
|
|
icon: 'database'
|
|
},
|
|
'네트워크': {
|
|
title: '네트워크 장비 관리',
|
|
description: '스위치, 방화벽, 공유기 등 사내 네트워크 인프라를 구성하는 주요 장비 현황을 관리합니다.',
|
|
icon: 'layers'
|
|
},
|
|
'업무지원장비': {
|
|
title: '업무 지원 장비 관리',
|
|
description: '모니터, 프린터, 스캐너 등 원활한 업무 수행을 보조하는 전산 비품들을 관리합니다.',
|
|
icon: 'monitor'
|
|
},
|
|
'PC부품': {
|
|
title: 'PC 부품 자산 관리',
|
|
description: 'CPU, RAM, GPU 등 PC 조립 및 유지보수를 위해 보유 중인 주요 부품 재고를 관리합니다.',
|
|
icon: 'cpu'
|
|
},
|
|
'공간정보장비': {
|
|
title: '공간 정보 장비 관리',
|
|
description: '측량 및 공간 정보 수집에 사용되는 특수 정밀 장비들의 이력과 상태를 관리합니다.',
|
|
icon: 'map'
|
|
},
|
|
'내부SW': {
|
|
title: '사내 개발 S/W 관리',
|
|
description: '사내에서 자체 개발하거나 운영 중인 시스템 및 소프트웨어 서비스 현황을 관리합니다.',
|
|
icon: 'code'
|
|
},
|
|
'외부SW': {
|
|
title: '외부 상용 S/W 관리',
|
|
description: '상용 소프트웨어의 라이선스 보유 현황, 사용자 할당 및 만료 일정을 관리합니다.',
|
|
icon: 'package'
|
|
},
|
|
'도메인': {
|
|
title: '도메인 자산 관리',
|
|
description: '운영 중인 서비스 도메인의 등록 정보, 관리 업체 및 갱신 만료일을 관리합니다.',
|
|
icon: 'globe'
|
|
},
|
|
'클라우드': {
|
|
title: '클라우드 자산 관리',
|
|
description: 'AWS, Azure, GCP 등 클라우드 인프라 자원 및 구독 서비스 이용 현황을 관리합니다.',
|
|
icon: 'cloud'
|
|
},
|
|
'비용관리': {
|
|
title: 'IT 비용 집행 관리',
|
|
description: '전산 자산 도입 및 유지보수에 소요되는 정기/비정기 지출 비용을 통합 관리합니다.',
|
|
icon: 'credit-card'
|
|
},
|
|
'선물': {
|
|
title: '내빈/외빈 선물 관리',
|
|
description: '내외빈 방문 시 지급되는 기념품 및 선물용 자산의 재고와 지급 이력을 관리합니다.',
|
|
icon: 'gift'
|
|
},
|
|
'사무가구': {
|
|
title: '사무용 가구 관리',
|
|
description: '책상, 의자, 캐비닛 등 사무 환경 구성을 위한 가구 자산의 배치 현황을 관리합니다.',
|
|
icon: 'armchair'
|
|
}
|
|
};
|
|
|
|
/**
|
|
* 용어 사전 (UI 텍스트 전용)
|
|
*/
|
|
export const UI_TEXT = {
|
|
ACTION: {
|
|
ADD: '신규 등록',
|
|
EDIT: '수정',
|
|
SAVE: '저장',
|
|
DELETE: '삭제',
|
|
CANCEL: '취소',
|
|
CLOSE: '닫기',
|
|
HISTORY_ADD: '이력 추가',
|
|
RESET_FILTER: '필터 초기화'
|
|
},
|
|
MESSAGES: {
|
|
CONFIRM_DELETE: '정말로 삭제하시겠습니까?',
|
|
SAVE_SUCCESS: '성공적으로 저장되었습니다.',
|
|
NO_DATA: '검색 결과가 없습니다.'
|
|
}
|
|
};
|