Commit Graph

363 Commits

Author SHA1 Message Date
유병철
9f7f55aeff feat(WEB): CEO 대시보드 오늘의 이슈 탭 및 이전 이슈 날짜 조회 기능 추가
- 오늘의 이슈 섹션에 "오늘" / "이전 이슈" 탭 추가
- 이전 이슈 탭에서 날짜 네비게이션(< >, date input) 지원
- usePastIssue 훅 추가 (date 파라미터로 과거 이슈 API 호출)
- 탭/날짜 전환 시 필터 및 상태 자동 리셋
- 로딩 중 그리드 높이 유지로 UI 들썩임 방지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 15:23:35 +09:00
유병철
103a2b9f03 Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-01-30 14:17:21 +09:00
유병철
3ef9570f3b feat(WEB): API 인프라 리팩토링, CEO 대시보드 현황판 개선 및 문서 시스템 강화
- API: fetch-wrapper/proxy/refresh-token 리팩토링, authenticated-fetch 신규 추가
- CEO 대시보드: EnhancedSections 현황판 기능 개선, dashboard transformers/types 확장
- 문서 시스템: ApprovalLine/DocumentHeader/DocumentToolbar/DocumentViewer 개선
- 작업지시서: 검사보고서/작업일지 문서 컴포넌트 개선 (벤딩/스크린/슬랫)
- 레이아웃: Sidebar/AuthenticatedLayout 수정
- 작업자화면: WorkerScreen 수정

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 14:16:17 +09:00
dc2afc4260 fix(WEB): 품목 목록 품목명 텍스트 잘림(truncate) 제거 2026-01-30 12:00:13 +09:00
a486977b80 feat(WEB): 발주처 검색 모달 추가 및 견적 할인 기능 개선
- SupplierSearchModal: 매입 가능 거래처 검색 모달 신규 생성
- QuoteRegistrationV2: 할인율/할인금액을 formData로 통합하여 저장/로드 연동
- QuoteFooterBar: view 모드에서 할인 버튼 비활성화
- types.ts: discountRate/discountAmount 필드 추가, 할인 반영 총액 계산 수정
- quote-management page: 저장 실패 시 에러 메시지 정확히 표시하도록 throw 방식 변경
2026-01-30 11:23:35 +09:00
5c8fe8e04c fix(WEB): 입고 수정 API에 receiving_qty/receiving_date/lot_no/remark 필드 전달 추가
- transformFrontendToApi()에 누락된 필드 매핑 추가
- 입고완료 상태 변경 시 백엔드에서 재고 연동이 정상 동작하도록 수정
2026-01-30 11:22:34 +09:00
유병철
a1f4c82cec fix: 프로젝트 전체 TypeScript 타입에러 408개 수정 (tsc --noEmit 0 errors)
- 공통 템플릿 타입 수정 (IntegratedDetailTemplate, UniversalListPage)
- 페이지(app/[locale]) 타입 호환성 수정 (80개)
- 재고/자재 모듈 타입 수정 (StockStatus, ReceivingManagement)
- 생산 모듈 타입 수정 (WorkOrders, WorkerScreen, WorkResults)
- 주문/출고 모듈 타입 수정 (ShipmentManagement, Orders)
- 견적/단가 모듈 타입 수정 (Quotes, Pricing)
- 건설 모듈 타입 수정 (49개, 17개 하위 모듈)
- HR 모듈 타입 수정 (CardManagement, VacationManagement 등)
- 설정 모듈 타입 수정 (PermissionManagement, AccountManagement 등)
- 게시판 모듈 타입 수정 (BoardManagement, BoardList 등)
- 회계 모듈 타입 수정 (VendorManagement, BadDebtCollection 등)
- 기타 모듈 타입 수정 (CEODashboard, clients, vehicle 등)
- 유틸/훅/API 타입 수정 (hooks, contexts, lib)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 10:07:58 +09:00
유병철
8a5cbde5ef feat(WEB): 중간검사 성적서 편집 모드 및 저장 기능 추가
- 3개 검사 콘텐츠 컴포넌트에 forwardRef + useImperativeHandle 추가 (getInspectionData 노출)
- InspectionReportModal에 readOnly prop, 저장 버튼, ref 연결 추가
- saveInspectionData 서버 액션 추가 (POST /api/v1/work-orders/{id}/inspection)
- 작업자 화면에서 readOnly={false} 전달 (편집+저장 가능)
- 작업지시 관리에서는 readOnly 기본값(true)으로 읽기 전용 유지

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-30 09:32:04 +09:00
유병철
3fc63d0b3e feat(WEB): 공정관리/작업지시/작업자화면 기능 강화 및 템플릿 개선
- 공정관리: ProcessDetail/ProcessForm/ProcessList 개선, StepDetail/StepForm 신규 추가
- 작업지시: WorkOrderDetail/Edit/List UI 개선, 작업지시서 문서 추가
- 작업자화면: WorkerScreen 대폭 개선, MaterialInputModal/WorkLogModal 수정, WorkItemCard 신규
- 영업주문: 주문 상세 페이지 개선
- 입고관리: 상세/actions 수정
- 템플릿: IntegratedDetailTemplate/IntegratedListTemplateV2/UniversalListPage 기능 확장
- UI: confirm-dialog 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 22:56:01 +09:00
유병철
106ce09482 fix(WEB): 마스터데이터 캐시 테넌트 격리 및 상세 템플릿 개선
- masterDataStore: 테넌트별 캐시 격리 로직 강화
- AuthContext: 인증 컨텍스트 안정성 개선
- IntegratedDetailTemplate: 상세 템플릿 동작 수정
- VendorDetail: 거래처 상세 수정
- AttendanceManagement: 타입 정의 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 16:57:49 +09:00
유병철
4014b3fb84 feat: 엑셀 다운로드 전체 데이터 페이지별 순차 조회 방식으로 개선
- UniversalListPage: size=10000 단건 호출을 1000건씩 페이지 순회 방식으로 변경
- fetchAllUrl 우선순위를 clientSideFiltering보다 상위로 조정
- 첫 페이지에서 total 확인 후 나머지 페이지 병렬(Promise.all) 호출
- 10000건 초과 데이터도 누락 없이 다운로드 가능
- 근태현황: fetchAllUrl, fetchAllParams, mapResponse 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 16:48:35 +09:00
유병철
a5578bf669 feat: UniversalListPage 검색 기능 개선 및 리렌더링 버그 수정
- UniversalListPage 템플릿에 searchFilter, useClientSearch 지원 추가
- 검색 입력 시 리렌더링(포커스 유실) 버그 수정
- 29개 리스트 페이지에 searchFilter 함수 추가
- SiteBriefingListClient 누락된 searchFilter 추가
- IntegratedListTemplateV2 검색 로직 정리
- 검색 기능 수정내역 가이드 문서 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:51:07 +09:00
099700758c Merge remote-tracking branch 'origin/master' 2026-01-29 14:46:01 +09:00
유병철
58fb9fce44 feat: 거래처관리 등록 버튼 추가 및 dead code 정리
- 거래처관리 리스트 페이지에 createButton(거래처 등록) 추가
- 미사용 index.ts 배럴 파일 삭제 (index.tsx가 우선 resolve되어 dead code)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:45:41 +09:00
75ee110cfb fix: 입고 목록 기본 날짜 범위를 최근 30일로 변경
- 이번 달 1일 기준 → 오늘 기준 30일 전으로 변경
- 연말/연초 월 경계에서 데이터 누락 방지
2026-01-29 14:44:28 +09:00
c4bc5efbc2 fix: 입고 목록 API 응답 필드 매핑 누락 수정
- transformApiToListItem에 specification, receivingDate, createdBy 필드 추가
- 리스트에서 규격, 입고일, 작성자가 정상 표시되도록 수정
2026-01-29 14:28:32 +09:00
dbe5f3c004 Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/components/material/ReceivingManagement/ReceivingDetail.tsx
2026-01-29 14:03:21 +09:00
유병철
e64d22e2f6 feat: 입고 상세 업체 제공 성적서 파일 업로드 기능 적용
- 기존 정적 플레이스홀더를 FileDropzone 공통 컴포넌트로 교체
- 드래그앤드롭 및 클릭 파일 선택 지원
- 파일 선택 후 파일명/크기 표시 및 삭제 기능

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-29 14:00:24 +09:00
13f6bce2bc feat: 입고관리 목업 제거 및 실제 API 연동
- USE_MOCK_DATA를 false로 변경하여 실제 API 엔드포인트 사용
2026-01-29 13:55:11 +09:00
0e52e78134 fix: 입고 채우기 작성자를 실제 로그인 사용자로 변경
- useAuth (mock 시스템) 대신 localStorage 'user' 키에서 실제 로그인 사용자명 조회
- 채우기 실행 시점마다 localStorage를 읽어 항상 최신 사용자 반영
2026-01-29 13:54:22 +09:00
260167c6a8 feat: 입고 등록 DevMode 채우기 및 AuthContext 초기값 수정
- DevToolbar에 입고(자재) 버튼 추가, 2행 레이아웃 정리
  (회계 | 기준 | 자재를 구분선으로 한 줄 배치)
- receivingData 생성기 추가 (품목, 공급업체, 수량 랜덤)
- ReceivingDetail에 useDevFill 연동 (로트번호, 작성자 포함)
- transformFrontendToApi에서 orderQty 미입력 시 receivingQty 사용
- AuthContext 초기값 null로 변경 (SSR 시 드미트리 하드코딩 제거)
2026-01-29 13:48:12 +09:00
3dab72701e fix(입고등록): 품목코드/발주처 검색 API 연동 및 최소 입력 조건 추가
- SearchableSelect에 서버 검색 모드 구현 (onSearch 콜백 + 디바운스 300ms)
- 최소 입력 조건: 한글 완성형 1자 또는 영문/숫자 2자 이상
- 조건 미충족 시 안내 메시지 표시, 옵션 목록 숨김
- ReceivingDetail에서 handleItemSearch/handleSupplierSearch로 API 호출 연동
- 초기 전체 로드 제거, 검색 시에만 API 호출
2026-01-29 11:32:18 +09:00
3e6cdb5ed5 fix(입고관리): mockData.ts 타입 에러 수정
- ReceivingItem 목록 항목에 unit 필드 추가
- ReceivingDetail 상세 목업에 unit 필드 추가
- ReceivingStats 통계에 receivingCompletedCount, inspectionCompletedCount 추가
2026-01-29 11:06:10 +09:00
576da0c9be feat(입고등록): 품목코드/발주처 검색 선택(SearchableSelect) 구현
- SearchableSelect UI 컴포넌트 추가 (Popover + Command 패턴, 선택 전용)
- 품목코드: 검색 후 선택 시 품목명/규격/단위 자동 채움
- 발주처: 검색 후 선택만 가능 (직접 입력 불가)
- searchItems(), searchSuppliers() 서버 액션 추가 (목데이터 포함)
- 기존 TS 타입 에러 수정 (unit 누락, stats 필드 매핑, initialData 타입)
2026-01-29 11:06:04 +09:00
82ae9ab953 fix: 산출내역서 세부항목 표시 및 부호 필드 수정
- 세부산출내역서: 개소별 BOM 품목 상세 표시 (품명/규격/수량/단가/금액)
- 개소별 소계 행 추가 및 전체 합계 표시
- 부호 표시: loc.symbol → loc.code로 수정 (내역/세부산출 양쪽)
- types.ts: 할인율/할인금액 필드 추가 (discountRate, discountAmount)
2026-01-29 10:03:52 +09:00
44353c09a0 fix: 견적 저장 시 status/is_final 처리 개선
- status와 is_final을 API 요청에서 제거 (finalizeQuote가 담당)
- 저장 로직 주석 명확화
2026-01-29 09:30:32 +09:00
e2d32e555b chore: 디버그 로그 정리
- transformV2ToApi, transformApiToV2 함수의 디버그 콘솔 로그 제거
2026-01-29 09:29:25 +09:00
db70147468 feat: 수식보기 모달 추가 (개발환경 전용)
- FormulaViewModal 컴포넌트 신규 생성
- 10단계 계산 과정을 수식 형태로 표시
- 변수 계산: 수식 + 대입값 + 결과 테이블 형식
- 품목별 수량/금액 계산 과정 표시
- QuoteFooterBar에 수식보기 버튼 추가
- NEXT_PUBLIC_APP_ENV가 local/development일 때만 버튼 표시
- BomDebugStep, formulas 타입 추가
- calculateBomBulk에 debug=true 파라미터 추가
2026-01-29 08:17:25 +09:00
32a1ed2de7 feat: 견적 품목 추가 시 단가 자동 조회 기능
- fetchItemPrices 클라이언트 API 함수 추가 (items.ts)
- 품목 선택 시 /api/proxy/quotes/items/prices를 통해 단가 조회
- 조회된 단가로 견적금액요약에 즉시 반영
2026-01-29 08:05:08 +09:00
15b4350051 feat: accordion UI 컴포넌트 추가
- @radix-ui/react-accordion 패키지 설치
- accordion.tsx 컴포넌트 생성 (shadcn/ui 패턴)
- globals.css에 accordion 애니메이션 추가
2026-01-29 07:44:10 +09:00
6bcd298995 feat: 수주/견적 기능 개선 및 PDF 생성 업데이트
- 수주 상세 뷰/수정 컴포넌트 개선
- 견적 위치 패널 업데이트
- PDF 생성 API 수정
- 레이아웃 및 공통코드 API 업데이트
- 패키지 의존성 업데이트
2026-01-29 01:12:58 +09:00
d2a39de576 fix: 입고관리 필터 타입 오류 수정
- filterConfig type: 'select' → 'single'로 변경
- FilterFieldConfig는 'single' | 'multi'만 지원
2026-01-28 23:15:31 +09:00
유병철
1f640622e0 feat(WEB): 자재/영업/품질 모듈 기능 개선 및 문서 컴포넌트 추가
- 입고관리: 상세/목록 UI 개선, actions 로직 강화
- 재고현황: 상세/목록 개선, StockAuditModal 신규 추가
- 영업주문관리: 페이지 구조 개선, OrderSalesDetailEdit 기능 강화
- 주문: OrderRegistration 개선, SalesOrderDocument 신규 추가
- 견적: QuoteTransactionModal 기능 개선
- 품질: InspectionModalV2, ImportInspectionDocument 대폭 개선
- UniversalListPage: 템플릿 기능 확장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 21:15:25 +09:00
유병철
79b39a3ef6 fix(WEB): 오늘의 이슈 신규업체 badge 매핑 추가
- BADGE_TO_NOTIFICATION_TYPE에 '신규업체' 변형 추가
- detailButtonLabel 임시 주석 처리

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 16:02:32 +09:00
유병철
381413a49c fix(WEB): 오늘의 이슈 badge 매핑 백엔드 동기화 및 fallback 추가
transformers.ts:
- NOTIFICATION_TYPE_TO_BADGE 백엔드 TodayIssue.php와 동기화
- BADGE_TO_NOTIFICATION_TYPE 역방향 매핑 추가 (fallback용)
- validateNotificationType에 badge 기반 추론 로직 추가

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:58:27 +09:00
유병철
eb3288dab7 fix(WEB): 오늘의 이슈 notification_type 기반 변환 로직 개선
transformers.ts:
- notification_type 영문 코드 기반 변환 (sales_order, bad_debt 등)
- NOTIFICATION_TYPE_TO_BADGE 매핑 테이블 추가
- validateNotificationType 함수로 타입 안전성 확보

types.ts:
- TodayIssueNotificationType 타입 추가
- TodayIssueListItem에 notificationType 필드 추가

TodayIssueSection:
- notificationType 기반 색상 매핑 적용

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 15:48:17 +09:00
유병철
e5f0f5da61 feat(WEB): 차량 관리 기능 추가 및 CEO 대시보드 Enhanced 섹션 적용
차량 관리 (신규):
- VehicleList/VehicleDetail: 차량 목록/상세
- ForkliftList/ForkliftDetail: 지게차 목록/상세
- VehicleLogList/VehicleLogDetail: 운행일지 목록/상세
- 관련 페이지 라우트 추가 (/vehicle-management/*)

CEO 대시보드:
- Enhanced 섹션 컴포넌트 적용 (아이콘 + 컬러 테마)
- EnhancedStatusBoardSection, EnhancedDailyReportSection, EnhancedMonthlyExpenseSection
- TodayIssueSection 개선

IntegratedDetailTemplate:
- FieldInput, FieldRenderer 기능 확장

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 14:53:20 +09:00
유병철
805063c686 feat(WEB): UniversalListPage 날짜 범위 필터 자동 적용 기능 추가
UniversalListPage:
- dateRangeSelector.dateField 설정 시 클라이언트 사이드 날짜 필터 자동 적용
- 종료일 23:59:59까지 포함하도록 처리

AttendanceManagement:
- 사유 등록 버튼을 extraFilters에서 headerActions로 이동

IntegratedListTemplateV2:
- 날짜 범위 관련 타입 및 처리 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-28 09:57:12 +09:00
3157fb9401 feat: 견적 산출 UI 개선 및 에러 메시지 상세화
- LocationDetailPanel: 제작사이즈(W1xH1), 산출중량(K kg), 산출면적(M m²) 표시
- actions.ts: BOM 계산 실패 시 상세 검증 에러 메시지 표시
- 오타 수정: 제적사이즈 → 제작사이즈
2026-01-27 23:36:16 +09:00
f532f1fb52 fix(WEB): 오늘의 이슈 뱃지 타입 API 모델과 동기화
- TodayIssueListBadgeType 업데이트 (수주등록, 추심이슈, 안전재고 등)
- BADGE_COLORS 및 FILTER_KEYS 새 타입으로 변경
- transformers.ts의 VALID_BADGE_TYPES 배열 동기화
- 입금/출금 뱃지 타입 추가
2026-01-27 22:38:55 +09:00
유병철
599b815829 Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-01-27 21:28:06 +09:00
유병철
bc7ebebef4 fix(WEB): 견적 상세 페이지 타이틀 로직 간소화
- IntegratedDetailTemplate 모드별 자동 suffix 활용
- 중복 타이틀 로직 제거 (견적 수정/상세 → 견적)

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:27:59 +09:00
2bb53024dc Merge remote-tracking branch 'origin/master' 2026-01-27 21:17:53 +09:00
유병철
bcc5e70c20 fix(WEB): ItemListClient 검색 변경 핸들러 연결
- handleSearchChange 핸들러 추가
- onSearchChange prop 연결로 검색 기능 정상화

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 21:16:13 +09:00
a07811e36d Merge remote-tracking branch 'origin/master' 2026-01-27 20:12:22 +09:00
유병철
9964ccbc1f fix(WEB): 견적 개소 목록 테이블 확장 및 견적서 미리보기 개선
LocationListPanel:
- 개소 목록 테이블 컬럼 확장 (층, 부호, 사이즈, 제품, 수량)
- 수정/삭제 버튼 추가
- 테이블 헤더 스타일 변경 (어두운 배경)
- 선택 행 스타일 변경 (blue → orange)

QuotePreviewContent:
- 공급자 정보 테이블 확장 (대표자, FAX, 종목 추가)
- 품종 → 종류 라벨 변경
- 소계/할인율 행 레이아웃 개선

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 20:10:48 +09:00
e2d7fceff6 Merge remote-tracking branch 'origin/master' 2026-01-27 19:51:09 +09:00
유병철
a48937ae52 Merge branch 'master' of http://114.203.209.83:3000/SamProject/sam-react-prod 2026-01-27 19:50:35 +09:00
유병철
afd7bda269 feat(WEB): 견적 시스템 개선, 엑셀 다운로드, PDF 생성 기능 추가
견적 시스템:
- QuoteRegistrationV2: 할인 모달, 거래명세서 모달, vatType 필드 추가
- DiscountModal: 할인율/할인금액 상호 계산 모달
- QuoteTransactionModal: 거래명세서 미리보기 모달
- LocationDetailPanel, LocationListPanel 개선

템플릿 기능:
- UniversalListPage: 엑셀 다운로드 기능 추가 (전체/선택 다운로드)
- DocumentViewer: PDF 생성 기능 개선

신규 API:
- /api/pdf/generate: Puppeteer 기반 PDF 생성 엔드포인트

UI 개선:
- 입력 컴포넌트 placeholder 스타일 개선 (opacity 50%)
- 각종 리스트 컴포넌트 정렬/필터링 개선

패키지 추가:
- html2canvas, jspdf, puppeteer, dom-to-image-more

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-27 19:49:03 +09:00
9aa8983e72 [WEB] fix(ImageUpload): 뷰 모드에서 이미지 정상 표시
- disabled 상태에서 이미지 있으면 투명도 100% 유지
- 뷰 모드에서 테두리 제거하여 깔끔하게 표시
- 이미지 없을 때만 기존 흐림 효과 유지
2026-01-27 19:12:29 +09:00