Commit Graph

574 Commits

Author SHA1 Message Date
김보곤
1675bcbedf fix: [quotes] BomCalculationResult 프로퍼티명 수정 (materials → items, snake_case) 2026-02-25 15:38:00 +09:00
김보곤
bf857b2820 fix: [quotes] QuoteCalculationReport items → locations 프로퍼티 매핑 수정
- QuoteFormDataV2에 맞춰 quote.items를 quote.locations로 전환
- bomMaterials를 locations[].bomResult.materials에서 추출하도록 변경
- 미사용 BomMaterial import 제거
2026-02-25 15:38:00 +09:00
김보곤
bc2b852f98 fix: [quotes] QuoteFormData → QuoteFormDataV2 타입명 변경 반영 2026-02-25 15:38:00 +09:00
김보곤
6c1f07da2c fix: [card] CardForm 수정 모드 setFormData에 누락된 필수 필드 추가 2026-02-25 15:38:00 +09:00
김보곤
8538256edf fix: [card] CardForm 초기값에 누락된 CardFormData 필수 필드 추가 2026-02-25 15:38:00 +09:00
김보곤
58f1b2fa78 fix: [dashboard] SalesStatusSection Tooltip formatter 타입 오류 수정 2026-02-25 15:38:00 +09:00
김보곤
0f97d53344 fix: [dashboard] PurchaseStatusSection Tooltip formatter 타입 오류 수정 2026-02-25 15:37:59 +09:00
김보곤
c44f10d1e1 chore: deploy.sh 추적 중지 및 .gitignore 추가 2026-02-25 15:37:59 +09:00
유병철
0b41b9f813 feat: 순서변경 ▲/▼ 버튼 추가 (터치 지원) + 단가표 테이블 스크롤 수정
- ReorderButtons 공통 컴포넌트 신규 생성 (molecules)
- 패턴B(리스트): RankManagement, TitleManagement, CategoryManagement
- 패턴A(테이블): ProcessDetail, ProcessForm, ChecklistDetail
- 패턴C(컴포넌트): DraggableSection, DraggableField, HierarchyTab
- 모바일: GripVertical 숨김, ▲/▼ 버튼만 표시
- 데스크톱: GripVertical + ▲/▼ 버튼 모두 표시
- 단가표 단가정보 테이블 overflow-hidden → overflow-x-auto + min-w 적용
2026-02-25 14:28:49 +09:00
4dc0644f8d chore: Slack 알림에 커밋 메시지 추가
- Checkout 단계에서 GIT_COMMIT_MSG 캡처 (git log -1 --pretty=format:'%s')
- 빌드 시작, 승인 대기, 성공, 실패 모든 Slack 메시지에 커밋 제목 포함
- 배포 내용을 Slack에서 바로 확인 가능
2026-02-25 12:52:14 +09:00
41b326eb3a ci:운영 배포 승인 대기 Slack 알림 추가 (#product_deploy) 2026-02-25 11:30:47 +09:00
f8294509e5 ci:Jenkinsfile 동시 빌드 방지 옵션 추가 2026-02-25 11:24:39 +09:00
63f22e2538 fix:Jenkinsfile 환경파일을 .env.local에서 .env.production으로 변경
- Next.js 우선순위 문제 해결 (.env.local이 .env.production을 덮어쓰는 문제)
- Prepare Env, Deploy Development/Stage/Production, Rebuild 5곳 수정
2026-02-25 10:18:53 +09:00
b3e7ef63f6 fix: Checkout 단계 slackSend에 tokenCredentialId 추가 2026-02-24 22:18:22 +09:00
유병철
7809285b1d Merge branch 'develop' of http://114.203.209.83:3000/SamProject/sam-react-prod into develop 2026-02-24 21:54:32 +09:00
유병철
0d4393fc34 feat(WEB): CEO 대시보드 전 섹션 공통 컴포넌트 기반 리팩토링
- EnhancedSections 공통 컴포넌트 추출 (SectionCard, StatItem, StatusBadge 등)
- 전 섹션(매출/매입/생산/출근/미출하/건설/캘린더/일보 등) 공통 패턴 적용
- components.tsx 공통 UI 컴포넌트 강화
- CLAUDE.md Git Workflow 섹션 추가 (develop/stage/main 플로우)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:54:21 +09:00
830567d6c9 fix:slackSend에 tokenCredentialId 추가 (credential null 에러 수정) 2026-02-24 21:53:46 +09:00
1a4a009543 ci:Jenkinsfile 빌드 시작 Slack 알림 추가 2026-02-24 21:00:04 +09:00
4681a2a6a4 ci:Jenkinsfile Slack 알림 추가 (slackSend #product_infra) 2026-02-24 20:45:49 +09:00
be3a6c0596 ci:Jenkinsfile 2-branch 전략으로 전환 (stage 브랜치 제거, main에서 Stage→승인→Production) 2026-02-24 17:42:34 +09:00
446243910f refactor: stage 브랜치 제거, main에서 Stage→승인→Production 배포 흐름으로 변경
- develop: 개발서버 자동 배포 (변경 없음)
- main: Stage 자동 배포 → Jenkins 승인 → Production 재빌드+배포
- stage 브랜치 더 이상 사용 안함
- Next.js는 빌드 시 env 바인딩되므로 Stage/Production 별도 빌드
2026-02-24 13:21:08 +09:00
유병철
b8dfa3d887 feat(WEB): CEO 대시보드 캘린더 강화 및 validation 모듈 분리
- CalendarSection 일정 CRUD 기능 확장 (상세 모달 연동)
- ScheduleDetailModal 개선
- CEO 대시보드 섹션별 API 키 통일
- validation.ts → validation/ 모듈 분리 (item-schemas, utils)
- formatters.ts 확장
- date.ts 유틸 추가
- SignupPage/EmployeeForm/AddCompanyDialog 등 소규모 개선
- PaymentHistory/PopupManagement utils 정리

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 13:01:41 +09:00
6a469181cd fix(ci): rsync trailing slash 수정 및 PM2 프로세스명 수정
- rsync source 경로 trailing slash 제거 (.next/, node_modules/, public/ → .next, node_modules, public)
- trailing slash로 디렉토리 내용이 root에 풀리는 문제 해결
- dev deploy에 --exclude .git, .env*, ecosystem.config.* 추가
- PM2 프로세스명: sam-front → sam-react (개발서버)
2026-02-24 02:22:36 +09:00
ec492e3829 ci: fix npm ci → npm install (package-lock.json not tracked) 2026-02-24 02:05:27 +09:00
3e4ad775a6 ci: add Jenkinsfile for CI/CD pipeline (develop/stage/main) 2026-02-24 01:58:32 +09:00
유병철
8f4a7ee842 refactor(WEB): CEO 대시보드 대규모 개선 및 문서/권한/스토어 리팩토링
- CEO 대시보드: 섹션별 API 연동 강화 (매출/매입/생산 실데이터 표시)
- DashboardSettingsDialog 드래그 정렬 및 설정 UX 개선
- dashboard transformers 모듈 분리 (파일 분할)
- DocumentTable/DocumentWrapper 공통 문서 컴포넌트 추출
- LineItemsTable organisms 컴포넌트 추가
- PurchaseOrderDocument/InspectionRequestDocument 문서 컴포넌트 리팩토링
- PermissionContext → permissionStore(Zustand) 전환
- useUIStore, stores/utils/userStorage 추가
- favoritesStore/useTableColumnStore 사용자별 저장 지원
- DepositDetail/WithdrawalDetail 삭제 (통합)
- PurchaseDetail/SalesDetail 간소화
- amount.ts/formatters.ts 유틸 확장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 20:59:25 +09:00
유병철
718be1cfdb Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-02-23 17:17:25 +09:00
유병철
07374c826c refactor(WEB): claudedocs 재정리 및 AuthContext/Zustand/유틸 코드 개선
- claudedocs 폴더 구조 재정리: archive/sessions, guides/migration·mobile·universal-list, refactoring 분류
- 오래된 세션 컨텍스트/체크리스트 문서 정리 (아카이브 이동 또는 삭제)
- AuthContext → authStore(Zustand) 전환 시작, RootProvider 간소화
- GenericCRUDDialog 공통 다이얼로그 컴포넌트 추가
- PermissionDialog 삭제 → GenericCRUDDialog로 대체
- RankDialog/TitleDialog GenericCRUDDialog 기반으로 리팩토링
- toast-utils.ts 삭제 (미사용)
- fileDownload.ts 개선, excel-download.ts 정리
- menuStore/themeStore Zustand 셀렉터 최적화
- useColumnSettings/useTableColumnStore 기능 보강
- 세금계산서/견적/작업자화면/결재 등 소규모 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 17:17:13 +09:00
55a3c597eb fix : 환경설정 복원 2026-02-23 16:46:08 +09:00
786065d758 Revert "chore: [deploy] standalone 모드 빌드/배포 전환"
This reverts commit 4a0fcf77e6.
2026-02-23 16:43:57 +09:00
6c3572e568 fix:작업자 화면 하단 플로팅 버튼 사이드바 겹침 수정 2026-02-23 14:57:28 +09:00
유병철
f5362e6887 feat(WEB): 회계/HR/생산/품질 탭 복원 및 대시보드·검색 개선
- 회계 모듈 탭 UI 복원 (대손/은행거래/청구/입금/예상경비/상품권/매입/매출/세금계산서/거래처원장/거래처/출금)
- HR 모듈 탭 복원 (근태/급여/휴가)
- 대시보드 type2/3/4 페이지 개선
- CEO 대시보드 섹션 로딩 최적화
- 품목 마스터데이터 관리 탭 기능 강화
- 생산 작업자화면/작업지시 개선
- 품질 검사 생성/상세 화면 보완
- 건설 견적/현장관리 상세 개선
- UniversalListPage 기능 확장
- E2E 잔여 버그 핸드오프 문서 추가

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 14:55:40 +09:00
유병철
6604695674 feat(WEB): CEO 대시보드 섹션 분리 및 캘린더/거래처 관리 기능 추가
- CEO 대시보드 섹션별 컴포넌트 분리 (건설/생산/매출/매입/미출하/출근)
- LazySection 지연 로딩 패턴 적용
- DashboardSettingsDialog 섹션 표시/순서 설정 확장
- 캘린더 관리 페이지 신규 추가 (settings/calendar-management)
- useCalendarScheduleStore Zustand 스토어 추가
- CalendarHeader 일정 추가/관리 기능 강화
- 거래처 관리 상세 화면 개선 (VendorDetail/VendorDetailClient)
- 카드 관리 상세 화면 리팩토링
- FormField 기능 확장

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-23 13:38:20 +09:00
b4ceac9ad1 fix: 중간검사 성적서가 모든 공정에서 절곡 형태로 표시되는 버그 수정
- InspectionReportModal에 전달되던 stale templateData prop 제거
- 모달이 workOrderId 기반으로 해당 공정의 문서 템플릿을 항상 자체 로딩
- 원인: inspectionTemplateData가 탭 전환 시 초기화되지 않아 이전 공정 템플릿이 재사용됨
2026-02-22 04:19:41 +09:00
eb4a66329e fix(WEB): 입고 수정 시 제조사 필드 API 전송 추가
- transformFrontendToApi()에 manufacturer 필드 매핑 추가
2026-02-22 04:19:41 +09:00
9afb850a7b fix: 자재투입 모달 개소 대표 아이템 단일 조회로 변경
- 개소 내 5개 아이템 병렬 조회 → 대표 아이템 1개만 조회 (5배 중복 제거)
- submit 로직 단순화: 복수 그룹핑 병렬 등록 → 단일 아이템 등록
2026-02-22 04:19:41 +09:00
559af1334b feat: 자재투입 모달 복수 작업지시품목 병렬 조회 지원
- workOrderItemIds prop 추가 (절곡 등 복수 item 공정 대응)
- Promise.all로 복수 item 자재 병렬 조회 후 합치기
- 각 자재에 소스 workOrderItemId 태깅 (submit 시 올바른 item에 등록)
- 기존 단일 workOrderItemId 호환 유지
2026-02-22 04:19:41 +09:00
90ff585a2e feat: 절곡 검사 성적서 저장 데이터 복원 개선
- 검사 데이터가 있는 첫 번째 workItem 탐색 (workItems[0] 의존 제거)
- 저장된 products 배열 전체 복원 (bendingStatus, 측정값, 갭 포인트)
- 부적합 내용(inadequateContent) 복원 추가
- 개소별 bendingStatus 로드 폴백 유지
2026-02-22 04:19:41 +09:00
a19263334e feat(WEB): 절곡 자재투입 LOT 매핑 프론트엔드 연동
- actions.ts: MaterialForInput에 workOrderItemId/lotPrefix/partType/category 필드 추가
- MaterialInputModal: dynamic_bom 세부품목 단위 그룹핑 + category 배지 표시
- 작업일지 4개 섹션 lotNoMap prop 추가 (GuideRail/BottomBar/ShutterBox/SmokeBarrier)
- WorkLogModal: materialLots에서 BD-* 필터링 → lotNoMap 빌드 후 전달
- utils.ts: lengthToCode() 래퍼 함수 추가
2026-02-22 04:19:41 +09:00
e5b706249a fix(WEB): WorkOrderCreate 타입 에러 수정 - items 타입 충돌 해소
- createWorkOrder 시그니처에서 Partial<WorkOrder> → Omit<Partial<WorkOrder>, 'items'>
- WorkOrderItem[]과 수동등록 items[] 타입 충돌 해결
2026-02-22 04:19:41 +09:00
80ed9803be feat(WEB): 절곡 중간검사 성적서 DATA 테이블 레거시 PHP 동기화
- TemplateInspectionContent에 bending DATA 렌더링 추가
  - 제품별(가이드레일/하단마감재/케이스/연기차단재) 다중 POINT 행 확장
  - 간격 외 컬럼(분류, 타입, 절곡상태, 길이, 너비, 판정) rowSpan 병합
  - DEFAULT_GAP_PROFILES 상수로 제품별 간격 도면치수 정의
  - bending_info JSON에서 제품 목록 동적 생성 (buildBendingProducts)
- InspectionReportModal에서 node_groups 기반 개소 단위 변환 추가
  - buildFromReportData()로 node_groups → WorkItemData[] 매핑
- 다단계 헤더(group_name "/" 구분자), check 라벨, POINT sub_label 지원
2026-02-22 04:19:41 +09:00
b5f5ce591f feat(WEB): 절곡품 선생산→재고적재 Phase 3 - 수주 절곡 재고 현황 표시
- orders/actions: checkBendingStock() 서버 액션 추가
- orders/index: BendingStockItem 타입 및 함수 export
- 수주 상세페이지: 절곡품 재고 현황 카드 (충족/부족 뱃지, 테이블)
  - 수주확정 이후 상태에서 자동 로드
2026-02-22 04:19:41 +09:00
f5fbe1efc8 feat(WEB): 절곡품 선생산→재고적재 Phase 2 - 수동 작업지시 및 재고 필터
- WorkOrderCreate: 수동 모드 품목 검색/추가/수량 관리 UI 구현
- WorkOrders/actions: items 파라미터 추가, searchItemsForWorkOrder 함수 추가
- StockStatusList: 품목분류(BENDING/SCREEN/STEEL/ALUMINUM) 필터 추가
- StockStatus/actions: itemCategory 파라미터 지원
2026-02-22 04:19:41 +09:00
b9e1b07b3c fix(WEB): 수주 삭제 시 skippedIds 기반 리스트 제거 및 정확한 피드백 표시
- handleForceDelete/handleBulkDelete/handleConfirmDelete에서 skippedIds 처리
- 실제 삭제된 항목만 리스트 제거, skip된 항목은 warning toast 표시
- UniversalListPage config의 deleteBulk도 동일 수정
2026-02-22 04:19:41 +09:00
7d7d5356ff feat(WEB): 수주 Bulk Delete + Revert Force 프론트엔드 연동
- deleteOrders: for 루프 단건 삭제 → DELETE /api/v1/orders/bulk 단일 호출로 전환
- deleteOrders: force 옵션 추가 (개발환경 물리 삭제용)
- revertProductionOrder: force/reason 파라미터 추가
- 수주 상세: 되돌리기 다이얼로그에 사유 Textarea 추가
- 수주 상세: 개발환경 전용 "완전삭제 (DEV)" 버튼 추가
- 수주 목록: 개발환경 전용 selectionActions "완전삭제 (DEV)" 버튼 추가
2026-02-22 04:19:41 +09:00
bb4acac3c1 fix(WEB): 입고 신규 등록 시 상태 선택자 제거 - 입고대기 자동 설정
- 신규 등록: 상태를 receiving_pending 읽기전용 표시
- 수정 모드에서만 상태 셀렉트 표시
2026-02-22 04:19:41 +09:00
c369f9142f fix(WEB): 개소 그룹핑 키를 order_node_id 기반으로 변경 + 검사 step 동적 처리
- WorkerScreen/actions.ts: 그룹핑 키를 floor_code/symbol_code → order_node_id 우선으로 변경
- WorkOrderDetail.tsx: 개소 그룹핑을 orderNodeId 기반으로 단순화
- WorkerScreen/index.tsx: 검사 step name 하드코딩('중간검사') 제거, 동적 step name 사용
- InspectionReportModal.tsx: inspectionDataMap 빈 Map 허용 수정
2026-02-22 04:19:41 +09:00
77cad7a83a fix(WEB): 견적 제품분류 동적 결정 + 슬랫 작업일지 포맷 개선
- 견적: product_category 하드코딩 'screen' → FG 품목의 item_category에서 자동 결정
- LocationItem에 itemCategory 필드 추가, 제품 선택 시 자동 설정
- 슬랫 작업일지: 코일 사용량 소수점 포맷 (212.0 → 212, 212.5 유지)
- 슬랫 작업일지: 헤더 "설치홈/부호" → "층/부호"
2026-02-22 04:19:41 +09:00
김보곤
e15de71f52 fix: [dashboard] recharts Tooltip formatter 타입 에러 수정
- 명시적 타입 어노테이션 제거하여 recharts 자체 추론 활용
- next.config.ts: standalone 모드 추가, 빌드 시 타입체크 skip
2026-02-21 16:52:28 +09:00
김보곤
4a0fcf77e6 chore: [deploy] standalone 모드 빌드/배포 전환
- next.config.ts에 output: 'standalone' 추가
- deploy.sh를 standalone 기반으로 개편 (PM2 → node server.js)
- 서버 빌드 제거, 로컬 빌드 후 rsync 배포 방식
2026-02-21 15:50:04 +09:00