# 생산계획 수량/날짜/분할/병합 조정 기능 안내 ## 📋 개요 생산계획관리 페이지에서 자동 스케줄 생성 후 표시되는 품목별 계획수량 박스를 클릭하면 모달창이 열리며, 다음 기능들을 수행할 수 있습니다: - ✏️ **수량 조정**: 생산 계획 수량 수정 - 📅 **날짜 조정**: 납기일 변경 - ✂️ **분할 조정**: 하나의 계획을 여러 개로 분할 - 🔗 **병합 조정**: 여러 개의 계획을 하나로 합치기 ⭐ NEW ## 🎯 주요 기능 ### 1. 수량 조정 #### 사용 방법 1. 타임라인에서 생산 계획 박스 클릭 2. 모달에서 "총 생산수량" 입력 필드 수정 3. 수량 변경 시 자동으로 변경 전/후 비교 정보 표시 #### 특징 - 📊 기존 수량 → 변경 수량을 시각적으로 표시 - 💡 실시간으로 변경사항 확인 가능 - ✅ 저장 시 타임라인 자동 업데이트 ``` 예시: 기존 수량: 1,000 EA → 변경 수량: 1,500 EA ``` ### 2. 날짜 조정 #### 사용 방법 1. 모달에서 "납기일" 필드 변경 2. 새로운 납기일 선택 3. 저장하면 생산 일정이 자동으로 재계산됨 #### 특징 - 📆 납기일 변경 시 생산 시작/종료일 자동 조정 - 🔔 변경된 날짜 차이 계산 (예: +7일, -3일) - 🎯 긴급 납기 여부 자동 판단 ### 3. 분할 조정 ⭐ #### 사용 방법 1. 모달에서 **"✂️ 계획 분할"** 섹션 확인 2. **"분할하기"** 버튼 클릭 3. 분할 개수 선택 (2개 / 3개 / 4개) 4. 각 계획의 수량 입력 (자동으로 균등 분할되어 표시됨) 5. **"✂️ 분할 실행"** 버튼 클릭 #### 분할 기능 상세 ##### 분할 옵션 - **2개로 분할**: 1,000EA → 500EA + 500EA - **3개로 분할**: 1,500EA → 500EA + 500EA + 500EA - **4개로 분할**: 2,000EA → 500EA + 500EA + 500EA + 500EA ##### 자동 조정 사항 1. **수량 균등 분할**: 전체 수량을 선택한 개수로 자동 분할 2. **일정 자동 배분**: - 첫 번째 계획: 원래 시작일 유지 - 이후 계획들: 이전 계획 종료일 다음날부터 연속으로 배치 3. **기간 비율 계산**: 각 계획의 수량 비율에 따라 생산 기간 자동 조정 4. **분할 표시**: 비고란에 "[분할 1/3]", "[분할 2/3]" 등 자동 추가 ##### 검증 기능 - ✅ 분할된 수량의 합계가 원본 수량과 일치하는지 자동 검증 - ⚠️ 불일치 시 경고 메시지 표시 - 🔒 검증 통과 후에만 분할 실행 가능 #### 분할 예시 **원본 계획:** ``` 품목: ITEM-001 수량: 1,500 EA 기간: 2024-01-01 ~ 2024-01-10 (10일) ``` **3개로 분할 후:** ``` 계획 1: 500 EA (2024-01-01 ~ 2024-01-04) [분할 1/3] 계획 2: 500 EA (2024-01-05 ~ 2024-01-08) [분할 2/3] 계획 3: 500 EA (2024-01-09 ~ 2024-01-12) [분할 3/3] ``` ### 4. 병합 조정 ⭐ NEW #### 사용 방법 1. 타임라인에서 병합할 계획 박스들의 **체크박스 선택** (2개 이상) 2. 상단에 **"🔗 선택 계획 병합 (N개)"** 버튼 자동 표시 3. 버튼 클릭 → 확인 메시지 확인 4. 병합 실행 → 하나의 계획으로 통합 #### 병합 기능 상세 ##### 병합 조건 - ✅ **동일 품목**만 병합 가능 - ✅ **2개 이상** 계획 선택 필요 - ✅ **완제품끼리** 또는 **반제품끼리**만 병합 가능 - ⚠️ 완제품과 반제품은 함께 병합 불가 ##### 자동 병합 처리 1. **수량 합산**: 모든 선택된 계획의 수량을 합산 2. **일정 통합**: - 시작일: 가장 빠른 시작일 - 종료일: 가장 늦은 종료일 3. **납기일**: 가장 빠른 납기일 적용 4. **수주 정보 병합**: 중복 없이 모든 수주 정보 통합 5. **설비 정보 병합**: 모든 설비 할당 정보 통합 6. **병합 표시**: 비고란에 "[N개 계획 병합]" 자동 추가 ##### 병합 예시 **원본 계획들:** ``` 계획 1: ITEM-001, 500 EA (2024-01-01~05) [분할 1/3] 계획 2: ITEM-001, 500 EA (2024-01-06~10) [분할 2/3] 계획 3: ITEM-001, 500 EA (2024-01-11~15) [분할 3/3] ``` **병합 후:** ``` 병합 계획: ITEM-001, 1,500 EA (2024-01-01~15) [3개 계획 병합] ``` #### 병합 검증 - ✅ 같은 품목인지 자동 확인 - ✅ 완제품/반제품 구분 검증 - ✅ 최소 2개 이상 선택 확인 - 📊 병합 전 총 수량 미리보기 #### 활용 시나리오 **시나리오 1: 분할했던 계획 다시 합치기** ``` 상황: 2개로 분할했던 계획을 다시 하나로 통합 해결: 1. 두 계획 박스의 체크박스 선택 2. "🔗 선택 계획 병합" 버튼 클릭 3. 확인 → 하나로 병합 ``` **시나리오 2: 여러 소량 계획 통합** ``` 상황: 같은 품목의 소량 계획 3개를 하나의 대량 생산으로 통합 해결: 1. 3개 계획 모두 체크박스 선택 2. 병합 버튼 클릭 3. 총 수량 확인 후 병합 4. 설비 재할당 ``` **시나리오 3: 라인 통합 생산** ``` 상황: 두 라인에서 생산하던 것을 한 라인으로 통합 해결: 1. 두 라인의 계획 선택 2. 병합 실행 3. 통합된 계획에 한 라인만 할당 ``` ### 5. 통합 관리 #### 모달에서 한 번에 조정 가능한 항목 1. ✏️ 총 생산수량 2. 📅 납기일 3. ✂️ 계획 분할 4. 🏭 설비 할당 5. 👤 담당자 지정 6. 📝 비고 입력 #### 타임라인에서 직접 조정 가능한 항목 1. ☑️ 계획 선택 (체크박스) 2. 🔗 선택 계획 병합 3. 🖱️ 드래그 앤 드롭 (날짜 이동) ## 🖥️ 사용자 인터페이스 ### 계획 박스 구조 ``` 타임라인에서: ┌─────────────────────────────┐ │ ☑ ITEM-001 │ ← 체크박스: 병합용 │ ■■■■■■■ 1,000 EA │ ← 수량 클릭: 모달 열림 └─────────────────────────────┘ 여러 개 선택 시: ☑ 계획1: 500EA ☑ 계획2: 500EA ☑ 계획3: 500EA ↓ [🔗 선택 계획 병합 (3개)] 버튼 자동 표시 ``` ### 모달 구조 ``` 📋 생산 스케줄 상세 ├── 기본 정보 (품목코드, 품목명) ├── 📋 수주 근거 정보 ├── 생산 정보 │ ├── 총 생산수량 ← 수정 가능 │ └── 납기일 ← 수정 가능 ├── ✂️ 계획 분할 (노란색 배경) │ ├── [분할하기] 버튼 │ └── 분할 옵션 (펼침/접힘) │ ├── 분할 개수 선택 │ ├── 각 계획 수량 입력 │ └── [취소] [✂️ 분할 실행] ├── 🏭 설비 할당 ├── 생산 상태 └── 추가 정보 └── [🗑️ 삭제] [취소] [💾 저장] ``` ## 💡 활용 시나리오 ### 시나리오 1: 긴급 수주 대응 ``` 상황: 기존 1,000EA 계획에 추가 500EA 긴급 수주 발생 해결: 1. 계획 박스 클릭 2. 수량을 1,500EA로 변경 3. 납기일을 긴급 납기로 조정 4. 저장 ``` ### 시나리오 2: 라인 분산 생산 ``` 상황: 2,000EA를 두 라인에서 동시 생산 필요 해결: 1. 계획 박스 클릭 2. "분할하기" → "2개로 분할" 선택 3. 각각 1,000EA로 자동 분할 4. 분할 실행 5. 각 계획에 서로 다른 설비 할당 ``` ### 시나리오 3: 단계적 생산 ``` 상황: 3,000EA를 3주에 걸쳐 단계적으로 생산 해결: 1. 계획 박스 클릭 2. "분할하기" → "3개로 분할" 선택 3. 각각 1,000EA로 균등 분할 4. 분할 실행 → 자동으로 연속 일정 생성 ``` ## ⚙️ 기술 구현 ### 데이터 구조 ```javascript // 분할된 계획 예시 { id: "schedule-001-split-1-1234567890", itemCode: "ITEM-001", itemName: "제품A", quantity: 500, startDate: new Date("2024-01-01"), endDate: new Date("2024-01-05"), remarks: "원본 비고 [분할 1/3]", // ... 기타 필드 } ``` ### 주요 함수 #### 수량 변경 감지 ```javascript function updateQuantityInfo() { // 수량 변경 시 실시간 비교 표시 // 원본 수량과 새 수량 비교 } ``` #### 날짜 변경 감지 ```javascript function updateDateInfo() { // 날짜 변경 시 일수 차이 계산 // 납기 변경 영향도 분석 } ``` #### 분할 실행 ```javascript function executeSplit() { // 1. 분할 수량 검증 // 2. 새로운 계획 객체 생성 // 3. 일정 자동 재계산 // 4. 원본 대체 및 배열 업데이트 // 5. 타임라인 재렌더링 } ``` ## 🔄 작업 흐름 ### 개별 계획 조정 (모달 사용) ``` [타임라인] → [수량 클릭] → [모달 열림] ↓ ┌─────────┼─────────┐ ↓ ↓ ↓ [수량조정] [날짜조정] [분할조정] ↓ ↓ ↓ └─────────┼─────────┘ ↓ [💾 저장] ↓ [타임라인 자동 업데이트] ``` ### 여러 계획 병합 (체크박스 사용) ``` [타임라인] → [체크박스 선택 (2개 이상)] ↓ [🔗 병합 버튼 자동 표시] ↓ [버튼 클릭] → [확인] ↓ [자동 병합 처리] - 수량 합산 - 일정 통합 - 수주 정보 병합 ↓ [타임라인 자동 업데이트] ``` ## 📌 주의사항 ### 수량 조정 시 - ⚠️ 수량을 0 이하로 설정할 수 없습니다 - 💡 수량 증가 시 생산 기간도 자동으로 조정됩니다 - 📊 변경 전/후 비교가 자동으로 표시됩니다 ### 날짜 조정 시 - ⚠️ 과거 날짜로 변경 시 경고가 표시됩니다 - 🔔 납기일이 7일 이내면 "긴급" 표시가 추가됩니다 - 📅 생산 시작/종료일이 자동으로 재계산됩니다 ### 분할 조정 시 - ⚠️ 분할 후에는 원본 계획이 삭제되고 개별 계획으로 대체됩니다 - ⚠️ 분할 수량의 합계가 원본 수량과 일치해야 합니다 - 💡 각 분할 계획은 독립적으로 관리됩니다 - 🔄 분할 실행 전 확인 메시지가 표시됩니다 - ✅ 분할 후 각 계획에 개별적으로 설비를 할당할 수 있습니다 ### 병합 조정 시 - ⚠️ 병합 후에는 원본 계획들이 삭제되고 하나의 계획으로 대체됩니다 - ⚠️ **같은 품목**만 병합할 수 있습니다 (다른 품목은 불가) - ⚠️ **완제품끼리** 또는 **반제품끼리**만 병합 가능 (혼합 불가) - 💡 수주 정보와 설비 할당 정보가 자동으로 통합됩니다 - 📊 병합 전 총 수량과 품목 정보가 확인 메시지에 표시됩니다 - ✅ 중복된 수주 정보는 자동으로 제거됩니다 - 🔗 분할했던 계획을 다시 병합하는 데 유용합니다 ## 🎨 UI 특징 ### 시각적 피드백 - **수량 변경**: 파란색 배경의 정보 박스로 변경사항 표시 - **분할 섹션**: 노란색 배경으로 강조 (눈에 잘 띔) - **입력 필드**: 실시간 검증 및 자동 합계 계산 ### 접근성 - 🖱️ 클릭 한 번으로 모달 열기 - ⌨️ 키보드로 모든 기능 접근 가능 - ✅ 명확한 버튼 레이블과 아이콘 - 📱 반응형 디자인 (모바일 대응) ## 🚀 향후 개선 가능 사항 ### 추가 기능 제안 1. ~~**병합 기능**: 여러 계획을 하나로 합치기~~ ✅ 구현 완료 2. **템플릿 저장**: 자주 사용하는 분할 패턴 저장 3. **드래그 앤 드롭 날짜 조정**: 타임라인에서 직접 날짜 조정 4. **일괄 수정**: 여러 계획 동시 수정 5. **이력 관리**: 변경 이력 추적 및 되돌리기 6. **조건부 병합**: 일정 조건에 맞는 계획 자동 병합 7. **스마트 분할**: AI 기반 최적 분할 제안 ### 검증 강화 - 재고 부족 경고 - 설비 중복 사용 체크 - 납기 초과 알림 - 수량 한도 검증 ## 📞 문의 및 지원 이 기능에 대한 질문이나 개선 제안이 있으시면 AI 어시스턴트에게 문의하세요. --- **마지막 업데이트**: 2025-01-28 **버전**: 1.0 **담당 파일**: `화면개발/생산계획관리.html`