- 5130 레거시 시스템 분석 (00_OVERVIEW ~ 08_SAM_COMPARISON) - MES 프로젝트 문서 - API/프론트엔드 스펙 문서 - 가이드 및 레퍼런스 문서
6.0 KiB
6.0 KiB
자재/재고 (Material/Instock) 분석
개요
- 디렉토리:
/instock/ - DB 테이블: 자재 유형별 개별 테이블 (i_* 패턴)
- 주요 기능: LOT 관리, 입고 검사, 자재 추적, 재고 관리
디렉토리 구조
/instock/
├── _request.php # 요청 파라미터 정의
├── _row.php # 행 렌더링
├── insert.php # 데이터 저장
├── list.php # 자재 목록
├── list_sheet.php # 시트 형태 목록
├── statistics.php # 통계
├── i_*.php # 자재 유형별 입력 폼 (23개)
│ ├── i_EGI155.php # EGI155 자재
│ ├── i_GIplate.php # GI 판재
│ ├── i_SUSplate.php # SUS 판재
│ ├── i_SUScoil.php # SUS 코일
│ ├── i_angle.php # 앵글
│ ├── i_anglebottom.php # 앵글 바텀
│ ├── i_antifireglass.php # 방화 유리
│ ├── i_bendingcoil.php # 벤딩 코일
│ ├── i_bracket.php # 브라켓
│ ├── i_cerakwool.php # 세락울
│ ├── i_controller.php # 컨트롤러
│ ├── i_fiber.php # 파이버
│ ├── i_fireproofWire.php # 방화 와이어
│ ├── i_motor.php # 모터
│ ├── i_platesteel.php # 판강
│ ├── i_pole.php # 폴
│ ├── i_recpipe.php # 각관
│ ├── i_shaft.php # 샤프트
│ ├── i_sillica.php # 실리카
│ ├── i_slatcoil.php # 슬랫 코일
│ ├── i_wire.php # 와이어
│ ├── i_wireDaehan.php # 대한 와이어
│ └── i_Fireproof_sealings.php # 방화 씰링
├── fetch_*.php # AJAX 데이터 조회
└── common/ # 공통 모듈
DB 스키마
자재 공통 테이블 구조
CREATE TABLE i_[자재유형] (
num INT AUTO_INCREMENT PRIMARY KEY,
-- LOT 정보
lot_no VARCHAR(50), -- LOT 번호
inspection_date DATE, -- 검사일
lotDone DATE, -- LOT 완료일
-- 공급업체 정보
supplier VARCHAR(100), -- 공급업체
manufacturer VARCHAR(100), -- 제조사
-- 자재 정보
item_name VARCHAR(200), -- 품명
specification VARCHAR(200), -- 규격
unit VARCHAR(20), -- 단위
prodcode VARCHAR(50), -- 제품코드
-- 수량/가격 정보
received_qty DECIMAL(15,2), -- 입고수량
weight_kg DECIMAL(15,2), -- 중량(kg)
purchase_price_excl_vat DECIMAL(15,0), -- 구매단가(부가세 제외)
-- 참조/이력
material_no VARCHAR(50), -- 자재번호
remarks TEXT, -- 비고
-- 시스템 필드
searchtag TEXT, -- 검색태그 (자동생성)
update_log TEXT, -- 수정이력
is_deleted TINYINT DEFAULT 0, -- 삭제플래그
INDEX idx_lot_no (lot_no),
INDEX idx_supplier (supplier),
INDEX idx_item_name (item_name)
);
검색태그 생성 로직
// insert.php에서 searchtag 자동 생성
$searchtag = $lot_no . ' ' .
$inspection_date . ' ' .
$supplier . ' ' .
$item_name . ' ' .
$specification . ' ' .
$unit . ' ' .
$received_qty . ' ' .
$material_no . ' ' .
$manufacturer . ' ' .
$purchase_price_excl_vat . ' ' .
$weight_kg . ' ' .
$lotDone . ' ' .
$prodcode . ' ' .
$remarks;
자재 유형별 특성
1. 코일 자재
- 테이블:
i_SUScoil,i_bendingcoil,i_slatcoil - 특징: 중량(kg) 기반 재고 관리
- 추가 컬럼: 두께, 폭, 소재
2. 판재 자재
- 테이블:
i_GIplate,i_SUSplate,i_platesteel - 특징: 면적(m²) 또는 장 단위 관리
- 추가 컬럼: 가로, 세로, 두께
3. 부품 자재
- 테이블:
i_motor,i_controller,i_bracket - 특징: 개수 단위 관리, 모델별 구분
- 추가 컬럼: 모델명, 제조번호
4. 구조재
- 테이블:
i_angle,i_pole,i_shaft,i_recpipe - 특징: 길이(m) 단위 관리
- 추가 컬럼: 길이, 단면규격
비즈니스 로직
LOT 관리
- LOT 번호 생성:
lotnum_generator.php - LOT 완료 처리:
lotDone날짜 설정 - LOT 추적: 출하 시 LOT 번호 연결
입고 검사
- 자재 입고 시 검사일(
inspection_date) 기록 - 합격 시 재고에 반영
- 불합격 시 반품 처리
가격 관리
- 구매단가는 부가세 제외 금액 저장
- 환율/원자재 가격 변동 반영 필요
SAM 마이그레이션 포인트
1. 테이블 통합
-- 5130: 자재 유형별 개별 테이블
i_SUSplate, i_GIplate, i_motor, ...
-- SAM: 단일 테이블 + 카테고리
materials (
id,
tenant_id,
category_id, -- categories 테이블 참조
lot_no,
...
)
2. 카테고리 계층화
-- SAM: 4단계 카테고리 구조
material_categories (
id,
parent_id,
name,
level, -- 1: 대분류, 2: 중분류, 3: 소분류, 4: 세분류
attributes JSON -- 카테고리별 추가 속성 정의
)
3. 속성 동적 관리
-- SAM: 카테고리별 동적 속성
material_attributes (
material_id,
attribute_key,
attribute_value,
attribute_type -- string, number, date, etc.
)
4. LOT 추적 강화
-- SAM: LOT 이력 테이블
lot_histories (
id,
lot_id,
action, -- created, inspected, used, returned
quantity,
reference_type, -- output, production
reference_id,
created_at
)
관련 파일 참조
/instock/insert.php- INSERT/UPDATE 로직/instock/_request.php- 요청 파라미터 정의/instock/list.php- 목록 조회 쿼리/instock/fetch_inspection.php- 검사 데이터 조회