Commit Graph

492 Commits

Author SHA1 Message Date
유병철
23135ff01a feat: [설정] 설정 관리 전반 UI 개선
- 계정관리 상세/폼 개선 (AccountDetail, AccountDetailForm)
- 근태설정, 휴가정책 관리 개선
- 바로빌 연동 회원가입 모달 개선
- 알림설정, 결제이력, 권한관리 UI 개선
- 직급/직책 관리 UI 개선 (RankManagement, TitleManagement)
- 구독관리, 근무스케줄 관리 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:33:28 +09:00
유병철
e094c5ae49 feat: [HR] 인사관리 전반 UI 개선
- 근태관리 다이얼로그 개선 (AttendanceInfoDialog, ReasonInfoDialog)
- 카드관리 상세 페이지 개선 (CardDetail)
- 부서관리 트리 컴포넌트 개선 (DepartmentToolbar, DepartmentTreeItem)
- 직원관리 폼 개선 (EmployeeForm)
- 급여/휴가 관리 UI 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:33:17 +09:00
유병철
dc7e152311 feat: [게시판] 게시판 관리 UI 개선
- BoardDetail, BoardForm, DynamicBoard 폼 개선
- CommentItem, BoardDetailClientV2 UI 개선
- 게시판 페이지 라우팅 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:33:06 +09:00
유병철
81a016ada9 feat: [공통] UI 컴포넌트 개선 (TabChip, FormField, Select 등)
- TabChip, FormField, MobileCard, Select 컴포넌트 개선
- IntegratedListTemplateV2, UniversalListPage 타입 보강
- LoginPage UI 개선

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 22:32:52 +09:00
김보곤
27a7773d95 merge: develop를 main에 머지 (CLAUDE.md 충돌 해결) 2026-02-25 15:41:35 +09:00
김보곤
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
유병철
86dcd23df7 refactor: 로그인 테스트 계정을 환경변수로 분리
- 하드코딩 → process.env.NEXT_PUBLIC_DEV_USER_ID/PWD
- 개발 환경: .env.local에 설정 → 자동 입력
- 배포 환경: 환경변수 없음 → 빈 값
- develop/main 코드 동일, 환경변수로만 동작 구분

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 15:27:20 +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
유병철
1e5c341966 fix: 로그인 페이지 하드코딩된 테스트 계정 제거
- userId/password 초기값을 빈 문자열로 변경
- 개발용 TestUser5/password123! 제거

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-25 10:57:21 +09:00
유병철
49d07914fd feat(WEB): CEO 대시보드 리팩토링, 캘린더 강화, validation 모듈 분리, Git Workflow 정립
- CEO 대시보드 전 섹션 공통 컴포넌트 기반 리팩토링 (SectionCard, StatItem 등)
- CalendarSection 일정 CRUD 기능 확장
- validation.ts → validation/ 모듈 분리 (item-schemas, form-schemas, common, utils)
- CLAUDE.md Git Workflow 섹션 추가 (develop/main 플로우 정의)
- Jenkinsfile CI/CD 파이프라인 정비 (Slack 알림 추가)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 21:55:15 +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
유병철
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
유병철
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
유병철
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
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
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
김보곤
293272ef83 Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-02-21 14:45:04 +09:00
김보곤
021d31b6b4 feat: [barobill] 로그인 정보 등록/수정 조건부 표시
- 바로빌 ID 등록 시 아이디 표시 + 수정 버튼
- 미등록 시 기존 등록 버튼 유지
- IntegrationStatus에 member 정보 추가
2026-02-21 14:44:55 +09:00
김보곤
b28988f15f feat: [tax-invoice] Mock→실제 API 연동 전환
- getTaxInvoices: executePaginatedAction으로 목록 조회
- createTaxInvoice: issue-direct API로 생성+즉시발행
- getSupplierSettings/saveSupplierSettings: 공급자 설정 API 연동
- getTaxInvoiceById: 상세 조회 API 연동
- API↔Frontend 간 데이터 변환 함수 추가
2026-02-21 08:31:43 +09:00
김보곤
6971336477 fix: [card] 품의서 작성 버튼을 실제 품의서 작성 페이지로 이동
- API 호출 방식에서 router.push('/approval/draft/new')로 변경
- 불필요한 isLoadingApproval 상태 및 getApprovalFormUrl import 제거
2026-02-21 07:46:51 +09:00
6d66f8deee fix(WEB): 작업지시 개소 균등 분배 + 작업일지/작업자 화면 글자 크기 통일
- WorkOrderDetail 동일 그룹 시 인덱스 기반 균등 분배 로직 추가
- ScreenWorkLogContent LOT/품명 text-[10px] 제거
- WorkOrderListPanel 품목명 text-xs → text-sm
2026-02-21 01:07:02 +09:00
f35df29264 fix(WEB): 수주 개소 그룹핑 개선 및 제품명 표시 수정
- floor+code 동일 시 인덱스 기반 균등 분배 로직 추가
- 제품명을 root_nodes[0].options.product_name에서 가져오도록 변경
2026-02-21 01:06:55 +09:00
0784b2a40e fix(WEB): 견적 개소 입력 개선 및 BOM 변환 안정화
- 층/부호 필수 검증 제거, 빈값 시 "-" 대체
- DevFill 제품 1개 고정 + 수량 1 고정 (모델별 인증 반영)
- note에서 "-" 값 필터링, formula_source 필드 추가
- FG 조회 시 has_bom 필터 제거
2026-02-21 01:06:48 +09:00
김보곤
352171c019 fix: [card] 카드번호 입력란에서 마스킹된 번호 정상 표시
- 마스킹 값(****-****-****-1234) 포함 시 formatCardNumber 우회
- 사용자 입력 시 마스킹 자동 제거 후 새 번호 입력 가능
2026-02-21 00:56:53 +09:00
김보곤
1b8a2d8127 fix: [card] 수정 모드 진입 시 폼 데이터 초기화 문제 해결
- card prop 변경 시 formData를 동기화하는 useEffect 추가
- buildFormData 헬퍼 함수로 중복 코드 제거
- useState 초기값은 최초 1회만 적용되는 React 특성 대응
2026-02-21 00:52:01 +09:00
김보곤
f4c0df3579 fix: [card] 카드 수정 시 데이터 유실 문제 해결
- || undefined → || null 변환으로 nullable 필드 정상 전송
- 숫자 필드(total_limit, used_amount, remaining_limit) 0 값 전송 보장
- assigned_user_id 항상 전송 (사용자 할당 해제 가능)
- paymentDay 타입 변환 수정 (number → string, Select 매칭)
2026-02-21 00:47:05 +09:00
김보곤
aa9404a146 feat: [card] 카드 등록/수정 폼에 필드별 인라인 에러 표시 추가
- executeServerAction: ActionResult에 fieldErrors 추가, API 422 응답의 error.details 파싱
- CardDetail: 각 인풋 아래에 에러 메시지 표시 + 에러 필드 border 강조
- handleChange: 해당 필드 입력 시 에러 자동 클리어
2026-02-21 00:27:28 +09:00
4c4f0678d2 fix(WEB): 절곡 작업일지 레거시 일치 수정
- 셔터박스 테이블 구성요소 기준 정렬 (파트→길이 순서)
- 마구리 무게: 원본 box 크기로 계산 (레거시 일치)
- LOT 접두사 제거: 4개 섹션 모두 "-" 표시
- 가이드레일 하부BASE 치수 표시 수정
2026-02-20 23:52:12 +09:00
유병철
ceeeeb1ef4 feat(WEB): 테이블 컬럼 표시/숨김 설정 기능 추가
- useColumnSettings 훅: 컬럼 가시성 토글 로직
- useTableColumnStore: Zustand 기반 컬럼 설정 영속화 (localStorage)
- ColumnSettingsPopover: 컬럼 설정 UI 컴포넌트
- UniversalListPage/IntegratedListTemplateV2에 컬럼 설정 통합

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 18:09:17 +09:00