Commit Graph

3460 Commits

Author SHA1 Message Date
SeongHyun Kim 599b5a4426 feat(pop): pop-card-list-v2 슬롯 기반 카드 컴포넌트 신규 + 타임라인 범용화 + 액션 인라인 설정
CSS Grid 기반 슬롯 구조의 pop-card-list-v2 컴포넌트를 추가한다.
기존 pop-card-list의 데이터 로딩/필터링/장바구니 로직을 재활용하되,
카드 내부는 12종 셀 타입(text/field/image/badge/button/number-input/
cart-button/package-summary/status-badge/timeline/action-buttons/
footer-status)의 조합으로 자유롭게 구성할 수 있다.
[신규 컴포넌트: pop-card-list-v2]
- PopCardListV2Component: 런타임 렌더링 (데이터 조회 + CSS Grid 카드)
- PopCardListV2Config: 3탭 설정 패널 (데이터/카드 디자인/동작)
- PopCardListV2Preview: 디자이너 미리보기
- cell-renderers: 셀 타입별 독립 렌더러 12종
- migrate: v1 -> v2 설정 마이그레이션 함수
- index: PopComponentRegistry 자동 등록
[타임라인 데이터 소스 범용화]
- TimelineDataSource 인터페이스로 공정 테이블/FK/컬럼/상태값 매핑 설정
- 하드코딩(work_orders+work_order_process) 제거 -> 설정 기반 동적 조회
- injectProcessFlow: 설정 기반 공정 데이터 조회 + __processFlow__ 가상 컬럼 주입
- 상태값 정규화(DB값 -> waiting/accepted/in_progress/completed)
[액션 버튼 인라인 설정]
- actionRules 내 updates 배열로 동작 정의 (별도 DB 테이블 불필요)
- execute-action API 재활용 (targetTable/column/valueType)
- 백엔드 __CURRENT_USER__/__CURRENT_TIME__ 특수값 치환
[디자이너 통합]
- PopComponentType에 "pop-card-list-v2" 추가
- ComponentEditorPanel/ComponentPalette/PopRenderer 등록
- PopDesigner loadLayout: components 존재 확인 null 체크 추가
[기타]
- .gitignore: .gradle/ 추가
2026-03-10 16:56:14 +09:00
kjs 8c0489e954 Merge pull request 'jskim-node' (#410) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/410
2026-03-10 16:34:13 +09:00
kjs 8827cf3af1 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 16:27:05 +09:00
kjs 2139364a3c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 16:26:55 +09:00
kmh ee94de4709 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into mhkim-node 2026-03-10 16:20:57 +09:00
kmh 6d2cdc1782 :Qrge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 16:16:52 +09:00
kjs 3982aabc24 refactor: Enhance unique constraint validation across data operations
- Integrated `TableManagementService` to validate unique constraints before insert, update, and upsert actions in various controllers, including `dataflowExecutionController`, `dynamicFormController`, and `tableManagementController`.
- Improved error handling in `errorHandler` to provide detailed messages indicating which field has a unique constraint violation.
- Updated the `formatPgError` utility to extract and display specific column labels for unique constraint violations, enhancing user feedback.
- Adjusted the table schema retrieval to include company-specific nullable and unique constraints, ensuring accurate representation of database rules.

These changes improve data integrity by preventing duplicate entries and enhance user experience through clearer error messages related to unique constraints.
2026-03-10 16:15:20 +09:00
DDD1542 fa6f76bff1 feat: add next-themes package and update styles
- Added `next-themes` package for theme management.
- Updated various components to use `hsl(var(--foreground))` for color consistency.
- Changed background colors from `bg-white` to `bg-card` in multiple components for better theming support.

Made-with: Cursor
2026-03-10 15:24:05 +09:00
kjs d56e46b17c refactor: Update TabBar and EditModal components for improved styling and validation
- Removed unnecessary box shadow from active tab in TabBar for a cleaner look.
- Updated TabBar background to use the main background color for better consistency.
- Enhanced SaveModal to include validation for required fields, providing user feedback for missing inputs.
- Removed unused master data loading function in EditModal to streamline the component.

These changes improve the overall user interface and ensure that required fields are validated before submission, enhancing user experience.
2026-03-10 15:19:50 +09:00
kjs 7ff76741af Merge branch 'ycshin-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 14:52:33 +09:00
kmh 5abce62d89 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 14:49:21 +09:00
kjs d8067f1d94 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 14:47:07 +09:00
kjs 28ef7e1226 fix: Enhance error handling and validation messages in form data operations
- Integrated `formatPgError` utility to provide user-friendly error messages based on PostgreSQL error codes during form data operations.
- Updated error responses in `saveFormData`, `saveFormDataEnhanced`, `updateFormData`, and `updateFormDataPartial` to include specific messages based on the company context.
- Improved error handling in the frontend components to display relevant error messages from the server response, ensuring users receive clear feedback on save operations.
- Enhanced the required field validation by incorporating NOT NULL metadata checks across various components, improving the accuracy of form submissions.

These changes improve the overall user experience by providing clearer error messages and ensuring that required fields are properly validated based on both manual settings and database constraints.
2026-03-10 14:47:05 +09:00
kjs 43523a0bba feat: Implement NOT NULL validation for form fields based on table metadata
- Added a new function `isColumnRequired` to determine if a column is required based on its NOT NULL status from the table schema.
- Updated the `SaveModal` and `InteractiveScreenViewer` components to incorporate this validation, ensuring that required fields are accurately assessed during form submission.
- Enhanced the `DynamicComponentRenderer` to reflect the NOT NULL requirement in the component's required state.
- Improved user feedback by marking required fields with an asterisk based on both manual settings and database constraints.

These changes enhance the form validation process, ensuring that users are prompted for all necessary information based on the underlying data structure.
2026-03-10 14:16:02 +09:00
kjs c0eab878a1 refactor: Update table schema retrieval to prioritize company-specific labels
- Modified the `getTableSchema` function in `adminController.ts` to use company-specific column labels when available, falling back to common labels if not.
- Adjusted the SQL query to join `table_type_columns` for both company-specific and common labels, ensuring the correct display order is maintained.
- Removed unnecessary component count display in the `TabsDesignEditor` to streamline the UI.

These changes enhance the accuracy of the table schema representation based on company context and improve the overall user interface by simplifying tab displays.
2026-03-10 11:49:02 +09:00
DDD1542 42673f57a0 [agent-pipeline] pipe-20260310020928-52l9 round-3 2026-03-10 11:27:48 +09:00
DDD1542 d692a3b22f [agent-pipeline] pipe-20260310020928-52l9 round-2 2026-03-10 11:22:37 +09:00
DDD1542 515d5da8cd [agent-pipeline] pipe-20260310020928-52l9 round-1 2026-03-10 11:17:23 +09:00
kjs 6d1f8edc6c Merge pull request 'jskim-node' (#409) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/409
2026-03-10 11:03:46 +09:00
kjs 9db69a83cd Merge branch 'main' into jskim-node 2026-03-10 11:03:36 +09:00
kjs 4f8c31c893 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-10 10:53:27 +09:00
kjs f565b2d119 fix: Merge form data with group data in EditModal
- Updated the logic in EditModal to merge the existing form data with the first item in groupData if available. This change ensures that relevant data from groupData is incorporated into the form, improving data accuracy and user experience during editing.
2026-03-10 10:53:25 +09:00
DDD1542 b6ec4a4904 feat: 배치 관리 페이지 및 API 개선
- 배치 작업 타입 조회 API 추가 및 오류 처리 개선
- 배치 관리 페이지에서 작업 타입을 객체 형태로 변환하여 설정
- 성공률 계산 로직에서 null 체크 추가
- 누적 실행 횟수, 총 성공 횟수, 총 실패 횟수 계산 시 null 체크 추가

Made-with: Cursor
2026-03-10 03:09:28 +09:00
kjs ef7a6e73fb Merge pull request 'jskim-node' (#408) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/408
2026-03-09 23:25:37 +09:00
kjs 5ea40ddb01 Merge branch 'main' into jskim-node 2026-03-09 23:25:31 +09:00
kjs 43707cb9a3 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-09 23:25:19 +09:00
kjs 52f25030a4 feat: Implement automatic master data loading for detail rows in EditModal
- Added a new function `loadMasterDataForDetailRow` to automatically fetch master table data based on foreign key relationships when editing detail rows.
- Integrated this functionality to merge master data into the form data after it is set, enhancing the user experience by ensuring relevant data is pre-filled.
- Included error handling and logging for the data loading process to improve debugging and user feedback.

These changes significantly enhance the EditModal by streamlining the data entry process and reducing manual input errors.
2026-03-09 23:25:17 +09:00
kjs 202d678e8b Merge pull request 'jskim-node' (#407) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/407
2026-03-09 22:21:46 +09:00
kjs 3841611af5 Merge branch 'main' into jskim-node 2026-03-09 22:21:39 +09:00
kjs 109b22a99c Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-09 22:20:55 +09:00
kjs 316ce30663 feat: Enhance Excel upload modals with category validation and error handling
- Added category validation functionality to both ExcelUploadModal and MultiTableExcelUploadModal components, allowing for the detection of invalid category values in uploaded Excel data.
- Implemented state management for category validation, including tracking mismatches and user interactions for replacements.
- Updated the handleNext function to incorporate category validation checks before proceeding to the next step in the upload process.
- Enhanced user feedback with toast notifications for category replacements and validation errors.

These changes significantly improve the robustness of the Excel upload process by ensuring data integrity and providing users with clear guidance on category-related issues.
2026-03-09 22:20:54 +09:00
DDD1542 c120492378 [agent-pipeline] pipe-20260309122600-xzeg round-1 2026-03-09 22:07:11 +09:00
DDD1542 159e7768bb [agent-pipeline] pipe-20260309112447-f5iu round-3 2026-03-09 21:04:33 +09:00
DDD1542 e41df3b922 [agent-pipeline] pipe-20260309112447-f5iu round-2 2026-03-09 20:56:39 +09:00
DDD1542 074abfcdb0 [agent-pipeline] pipe-20260309112447-f5iu round-1 2026-03-09 20:28:59 +09:00
kjs 7821bf47ef Merge pull request 'jskim-node' (#406) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/406
2026-03-09 18:05:30 +09:00
kjs 123da4b0d5 Merge branch 'main' into jskim-node 2026-03-09 18:05:22 +09:00
kjs c98b2ccb43 feat: Add progress bar functionality to SplitPanelLayoutComponent and configuration options
- Implemented a new progress bar rendering function in the SplitPanelLayoutComponent to visually represent the ratio of child to parent values.
- Enhanced the SortableColumnRow component to support progress column configuration, allowing users to set current and maximum values through a popover interface.
- Updated the AdditionalTabConfigPanel to include options for adding progress columns, improving user experience in managing data visualization.

These changes significantly enhance the functionality and usability of the split panel layout by providing visual progress indicators and configuration options for users.
2026-03-09 18:05:00 +09:00
DDD1542 e4de414dfb [agent-pipeline] pipe-20260309055714-23ry round-3 2026-03-09 17:18:45 +09:00
DDD1542 790592ec76 [agent-pipeline] pipe-20260309055714-23ry round-2 2026-03-09 16:34:53 +09:00
DDD1542 197ddf47cf [agent-pipeline] pipe-20260309055714-23ry round-1 2026-03-09 15:51:42 +09:00
SeongHyun Kim 712f81f6cb Merge branch 'ksh-function-stabilization' into ksh-v2-work
ksh-function-stabilization의 9개 커밋을 ksh-v2-work에 병합한다.
[병합 내용]
- BLOCK O: pop-search 연결 탭 일관성 통합
- BLOCK P: 날짜 입력 타입 구현 + 셀 반응형 레이아웃
- pop-button 설정 패널 UX/UI 전면 개선
- 일괄 채번 + 모달 distinct + 선택 해제
- pop-scanner 바코드/QR 스캐너 컴포넌트
- pop-button 제어 실행 + 연결 데이터 UX
- BLOCK R: PC <-> POP 네비게이션 + Landing
- pop-profile 컴포넌트 (10번째 POP 컴포넌트)
- BLOCK S: 로그인 POP 모드 토글
[충돌 해결 3건 - 모두 양쪽 통합]
- UserDropdown.tsx: HEAD 결재함 + source POP 모드 메뉴 통합
- AppLayout.tsx: HEAD 결재함 + source POP 모드 메뉴 (모바일+사이드바 2곳)
- MenuFormModal.tsx: HEAD menuIcon 필드 + source 주석 제거 통합
2026-03-09 15:36:53 +09:00
kjs 4d6783e508 feat: Implement automatic serial number generation and reference handling in mold management
- Enhanced the `createMoldSerial` function to automatically generate serial numbers based on defined numbering rules when the serial number is not provided.
- Integrated error handling for the automatic numbering process, ensuring robust logging for success and failure cases.
- Updated the `NumberingRuleService` to support reference column handling, allowing for dynamic prefix generation based on related data.
- Modified the frontend components to accommodate new reference configurations, improving user experience in managing numbering rules.

These changes significantly enhance the mold management functionality by automating serial number generation and improving the flexibility of numbering rules.
2026-03-09 15:34:31 +09:00
SeongHyun Kim 48e9ece4f7 feat(login): POP 모드 토글 추가 - 로그인 시 POP/PC 진입 선택
로그인 폼에 POP 모드 Switch 토글을 추가하여 현장 작업자가
로그인 시점에서 POP 화면으로 직접 진입할 수 있도록 한다.
토글 상태는 localStorage에 저장되어 다음 로그인 시 유지된다.
[백엔드]
- 로그인 응답에 popLandingPath 추가 (getPopMenuList 재사용)
- AdminService/paramMap 변수 스코프 버그 수정
  (try 블록 내부 선언 -> 외부로 이동)
[프론트엔드]
- useLogin: isPopMode 상태 + localStorage 연동 + POP 분기 라우팅
- LoginForm: POP 모드 Switch 토글 UI (Monitor 아이콘)
- POP 미설정 시 에러 메시지 표시 후 로그인 중단
- LoginResponse 타입에 popLandingPath 필드 추가
2026-03-09 15:15:15 +09:00
DDD1542 4f10b5e42d refactor: 전체 프론트엔드 하드코딩 색상 → CSS 변수 일괄 치환
447+ 파일, 4500+ 줄 변경:
- gray-* → border/bg-muted/text-foreground/text-muted-foreground
- blue-* → primary/ring
- red-* → destructive
- green-* → emerald (일관성)
- indigo-* → primary
- yellow/orange → amber (통일)
- dark mode 변형도 시맨틱 토큰으로 변환

Made-with: Cursor
2026-03-09 14:31:59 +09:00
kjs 2b4b7819c5 feat: Add Numbering Rule APIs and Frontend Integration
- Implemented a new API endpoint to retrieve numbering rules based on table and column names, enhancing the flexibility of numbering rule management.
- Added a new service method to handle the retrieval of numbering columns specific to a company, ensuring proper company code filtering.
- Updated the frontend to load and display numbering columns, allowing users to select and manage numbering rules effectively.
- Refactored existing logic to improve the handling of numbering rules, including fallback mechanisms for legacy data.

These changes enhance the functionality and user experience in managing numbering rules within the application.
2026-03-09 14:10:08 +09:00
DDD1542 d967cf0a0d chore: 검증용 임시 스크립트 정리
Made-with: Cursor
2026-03-09 13:59:24 +09:00
DDD1542 707d0c6f43 fix: main/page.tsx도 동일한 리디자인 적용 (로그인 후 리다이렉트 대상)
Made-with: Cursor
2026-03-09 13:51:32 +09:00
kjs f6a02b5182 refactor: Update references from table_column_category_values to category_values
- Changed all occurrences of `table_column_category_values` to `category_values` in the backend services and controllers to standardize the terminology.
- Updated SQL queries to reflect the new table name, ensuring proper data retrieval and management.
- Adjusted comments and documentation to clarify the purpose of the `category_values` table in the context of category management.

These changes enhance code clarity and maintain consistency across the application.
2026-03-09 13:46:38 +09:00
DDD1542 dde073720a UI 전면 리디자인: Vivid Blue 모던 SaaS 스타일 전환
- globals.css: primary를 dark navy(11.2%)에서 vivid blue(#3B82F6)로 전환
- button.tsx: default variant를 진짜 CTA(bg-primary)로 변경
- login: AI 패턴 제거 (장식원, backdrop-blur, 무의미한 그라데이션)
- dashboard: 그라데이션 배너 → 간결한 헤더, 카드별 고유 색상
- sidebar: 활성메뉴 좌측 인디케이터바, bg-primary/10 남용 제거

Made-with: Cursor
2026-03-09 13:43:27 +09:00