Commit Graph

3147 Commits

Author SHA1 Message Date
DDD1542 772514c270 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into gbpark-node 2026-03-05 09:59:23 +09:00
DDD1542 b9080d03f6 Merge branch 'feature/v2-renewal' of http://39.117.244.52:3000/kjs/ERP-node into gbpark-node 2026-03-05 01:30:07 +09:00
DDD1542 8d0f2dbb27 fix: 멀티 레이어 화면 복제 버그 수정
- menuCopyService: 모든 레이어 순회 처리, ON CONFLICT 제약조건 수정
- screenManagementService: layer_id 하드코딩 제거, 멀티 레이어 순회
- screen_conditional_zones 복제 로직 추가 (zoneIdMap 생성)
- condition_config의 zone_id 재매핑 로직 추가
- 레이어 수 변경 감지를 위한 변경 비교 로직 보강

Made-with: Cursor
2026-03-05 01:29:56 +09:00
kjs fcb122c58b Merge branch 'main' into feature/v2-renewal 2026-03-04 23:43:18 +09:00
DDD1542 e11a7b1237 Merge branch 'feature/v2-renewal' of http://39.117.244.52:3000/kjs/ERP-node into gbpark-node 2026-03-04 23:42:45 +09:00
DDD1542 366cfcde60 feat: Enhance menu copy and screen sync services with new fields
- Added `menu_icon` and `screen_group_id` fields to the Menu interface in `menuCopyService.ts` to support additional menu attributes.
- Updated the SQL insert statements in both `menuCopyService.ts` and `menuScreenSyncService.ts` to include the new fields, ensuring that menu icons and screen group IDs are properly handled during menu creation and synchronization.
- These enhancements improve the flexibility and functionality of the menu management system.
2026-03-04 23:42:43 +09:00
kjs 5b6b4be73c Merge pull request 'feature/v2-renewal' (#400) from feature/v2-renewal into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/400
2026-03-04 23:03:02 +09:00
kjs b40f6c28dc Merge branch 'main' into feature/v2-renewal 2026-03-04 23:02:27 +09:00
DDD1542 d31568b1bd feat: Enhance menu and screen synchronization services with new fields
- Added `menu_icon` and `screen_group_id` fields to the `Menu` interface in `menuCopyService.ts` to support additional menu attributes.
- Updated the SQL insert statements in both `menuCopyService.ts` and `menuScreenSyncService.ts` to include the new fields, ensuring that menu icons and screen group IDs are properly handled during menu creation and synchronization.
- These enhancements improve the flexibility and functionality of the menu management system, allowing for richer menu configurations.
2026-03-04 22:46:02 +09:00
DDD1542 3a3e4e8926 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into gbpark-node
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.
2026-03-04 22:45:40 +09:00
kjs 818cc80514 Merge pull request 'jskim-node' (#399) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/399
2026-03-04 21:17:11 +09:00
kjs 58a62a6d4e Merge branch 'main' into jskim-node 2026-03-04 21:17:04 +09:00
kjs b950a102f1 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-03-04 21:16:48 +09:00
kjs a6d6b03195 fix: Update resource naming conventions in controllers
- Refactored resource naming in the CommonCodeController to use `category_code` and `category_name` for consistency.
- Adjusted the NumberingRuleController to replace `prefix` with `separator` in the changes log for clarity.
- Modified the ScreenManagementController to utilize `screenId` instead of `id` for resource identification, ensuring uniformity across the application.
- These changes enhance the readability and maintainability of the codebase by standardizing naming conventions.
2026-03-04 21:16:46 +09:00
kjs 359e333370 Merge pull request 'jskim-node' (#398) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/398
2026-03-04 21:10:43 +09:00
kjs 95c42a971c Merge branch 'main' into jskim-node 2026-03-04 21:09:55 +09:00
kjs ac2da7a1d7 feat: Implement entity join functionality in V2Repeater and configuration panel
- Added support for entity joins in the V2Repeater component, allowing for automatic resolution of foreign key references to display data from related tables.
- Introduced a new `resolveEntityJoins` function to handle the fetching and mapping of reference data based on configured entity joins.
- Enhanced the V2RepeaterConfigPanel to manage entity join configurations, including loading available columns and toggling join settings.
- Updated the data handling logic to incorporate mapping rules for incoming data, ensuring that only necessary fields are retained during processing.
- Improved user experience by providing clear logging and feedback during entity join resolution and data mapping operations.
2026-03-04 21:08:45 +09:00
kjs 4da5d10f09 Merge pull request '바코드 기능 커밋밋' (#397) from barcode into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/397
2026-03-04 20:54:52 +09:00
kjs 5f3b144b12 Merge branch 'main' into barcode 2026-03-04 20:54:46 +09:00
chpark b9c0a0f243 바코드 기능 커밋밋 2026-03-04 20:51:00 +09:00
kjs f97edad1ea feat: Enhance screen group deletion functionality with optional numbering rules deletion
- Added a new query parameter `deleteNumberingRules` to the `deleteScreenGroup` function, allowing users to specify if numbering rules should be deleted when a root screen group is removed.
- Updated the `deleteScreenGroup` controller to handle the deletion of numbering rules conditionally based on the new parameter.
- Enhanced the frontend `ScreenGroupTreeView` component to include a checkbox for users to confirm the deletion of numbering rules when deleting a root group, improving user control and clarity during deletion operations.
- Implemented appropriate warnings and messages to inform users about the implications of deleting numbering rules, ensuring better user experience and data integrity awareness.
2026-03-04 18:42:44 +09:00
DDD1542 f6a2668bdc feat: Enhance approval request handling and user management
- Updated the approval request controller to include target_record_id in query parameters for improved filtering.
- Refactored the approval request creation logic to merge approval_mode into target_record_data, allowing for better handling of approval processes.
- Enhanced the user search functionality in the approval request modal to accommodate additional user attributes such as position and department.
- Improved error handling messages for clarity regarding required fields in the approval request modal.
- Added new menu item for accessing the approval box directly from user dropdown and app layout.

Made-with: Cursor
2026-03-04 18:26:16 +09:00
kjs 93d9df3e5a feat: Refactor category mapping logic in TableListComponent
- Introduced a helper function to flatten tree structures for category mappings, improving code readability and maintainability.
- Removed redundant checks for empty category columns, streamlining the data fetching process.
- Enhanced error handling for category value loading, ensuring clearer logging of failures.
- Updated the mapping logic to utilize the new flattening function, ensuring consistent handling of category data across components.
2026-03-04 16:41:51 +09:00
kjs ea8b4ce5dc chore: Remove obsolete .classpath file
- Deleted the .classpath file as it is no longer needed in the project structure.
- This cleanup helps maintain a tidy codebase by removing unnecessary files that may cause confusion or clutter.
2026-03-04 15:31:45 +09:00
kjs 96637a9cb6 feat: Enhance audit logging with client IP tracking
- Integrated client IP address retrieval in the audit logging functionality across multiple controllers, including admin, common code, department, flow, screen, and table management.
- Updated the `auditLogService` to include a new method for obtaining the client's IP address, ensuring accurate logging of user actions.
- This enhancement improves traceability and accountability by capturing the source of requests, thereby strengthening the overall logging mechanism within the application.
2026-03-04 15:02:27 +09:00
SeongHyun Kim cc44f714c6 Merge branch 'ksh-v2-work' into main
POP 화면 관리 기능 일괄 병합:
- POP 컴포넌트 연결/상태변경 규칙/후속 액션
- POP 장바구니(CartList) 모드 + 멀티필드 입력
- POP 화면 복사 기능 (단일 + 카테고리 일괄)
- POP 화면관리 UX 개선 (스크롤/접기)
- PC/POP 화면 데이터 분리 (excludePop 필터)
- .gitignore 미사용 항목 정리
충돌 1건 해결 (screenManagementRoutes.ts import 양쪽 통합)
2026-03-04 14:27:46 +09:00
SeongHyun Kim 9b153d85af chore: .gitignore에서 미사용 오케스트레이션 설정 항목 제거
실제 파일이 존재하지 않는 오케스트레이션 관련 gitignore 항목을 정리한다.
(orchestrator.mdc, agents/, commands/, hooks.json, hooks/, plans/)
2026-03-04 14:19:04 +09:00
SeongHyun Kim 37d93d82b1 feat(screen): PC/POP 화면관리 데이터 분리 (excludePop 필터)
PC 화면관리에서 POP 전용 화면과 그룹이 함께 표시되어 혼동을 주는
문제를 해결하기 위해 excludePop 필터를 도입한다.
[백엔드]
- getScreensByCompany: NOT EXISTS 서브쿼리로 screen_layouts_pop에
  레이아웃이 있는 화면 제외, 테이블 별칭 sd로 통일
- getScreenGroups: hierarchy_path 기반으로 POP 그룹 제외
  (hierarchy_path IS NULL OR NOT LIKE 'POP/%')
- 두 API 모두 excludePop 미전달 시 기존 동작 100% 유지
[프론트엔드]
- screenApi.getScreens, getScreenGroups에 excludePop 파라미터 추가
- PC 화면관리 페이지, ScreenGroupTreeView, ScreenList에서
  excludePop: true 전달
2026-03-04 14:01:19 +09:00
kjs 459777d5f0 feat: Update screen management state handling for immediate updates
- Enhanced the screen management functionality to ensure that updates to selected screens are reflected immediately in the state.
- Implemented a mapping function to update the screens list when a screen's details are modified, improving user experience by providing real-time feedback.
- This change ensures that the UI remains in sync with the underlying data, enhancing the overall responsiveness of the application.
2026-03-04 13:53:10 +09:00
kjs b4d5367e2b feat: Integrate audit logging for various operations
- Added audit logging functionality across multiple controllers, including menu, user, department, flow, screen, and table management.
- Implemented logging for create, update, and delete actions, capturing relevant details such as company code, user information, and changes made.
- Enhanced the category tree service with a new endpoint to check if category values are in use, improving data integrity checks.
- Updated routes to include new functionalities and ensure proper logging for batch operations and individual record changes.
- This integration improves traceability and accountability for data modifications within the application.
2026-03-04 13:49:08 +09:00
SeongHyun Kim 15e22ba401 fix(pop): POP 화면 관리 좌측 패널 UX 개선 (스크롤 + 접기/펼치기)
- 좌측 패널 스크롤 수정: 부모에 overflow-hidden, ScrollArea에 min-h-0
  추가하여 미분류 목록이 많을 때 스크롤바가 정상 작동하도록 개선
- 카테고리 그룹 기본 접힌 상태: loadGroups 자동 확장 로직 제거하여
  페이지 진입 시 깔끔한 트리 뷰 제공
- 미분류 회사코드별 접기/펼치기: 최고관리자/COMPANY_7 등 회사코드
  그룹마다 토글 헤더 추가, 항목 수 Badge 표시
2026-03-04 13:18:49 +09:00
SeongHyun Kim ce5c2426b5 feat(pop): POP 화면 복사 기능 구현 (단일 화면 + 카테고리 일괄 복사)
최고관리자의 POP 화면을 다른 회사로 복사하는 기능 추가.
화면 단위 복사와 카테고리(그룹) 단위 일괄 복사를 모두 지원하며,
화면 간 참조(cartScreenId, sourceScreenId 등)를 자동 치환하고
카테고리 구조까지 대상 회사에 재생성한다.
[백엔드]
- analyzePopScreenLinks: POP 레이아웃 내 다른 화면 참조 스캔
- deployPopScreens: screen_definitions + screen_layouts_pop 복사,
  screenId 참조 치환, numberingRuleId 초기화, 그룹 구조 복사
- POP 그룹 조회 쿼리 개선 (screen_layouts_pop JOIN으로 실제 POP 화면만 카운트)
- ensurePopRootGroup 최고관리자 전용으로 변경
[프론트엔드]
- PopDeployModal: 단일 화면/카테고리 일괄 복사 모달 (대상 회사 선택,
  연결 화면 감지, 카테고리 트리 미리보기)
- PopCategoryTree: 그룹 컨텍스트 메뉴에 '카테고리 복사' 추가,
  하위 그룹 화면까지 재귀 수집
- PopScreenSettingModal: UI 간소화 및 화면명 저장 기능 보완
- screenApi: analyzePopScreenLinks, deployPopScreens 클라이언트 함수 추가
2026-03-04 11:41:31 +09:00
DDD1542 c22b468599 feat: Enhance approval request modal functionality
- Added user search capability with debouncing to improve performance and user experience.
- Updated approver management to utilize user data, including user ID, name, position, and department.
- Refactored local ID generation for approvers to a more concise function.
- Integrated approval request handling in button actions, allowing for modal opening with relevant data.
- Improved UI elements for better clarity and user guidance in the approval process.

Made-with: Cursor
2026-03-04 11:19:57 +09:00
DDD1542 6a30038785 fix: baseline TS 에러 정리 및 런타임 에러 수정
- SelectItem value="" -> "none" 변환 (shadcn Select 런타임 에러 수정)
- TablesPanel 중복 React key 수정
- 하이픈 포함 식별자를 따옴표로 감싸기 (hero-section, card-layout)
- 깨진 레거시 파일 제거 (AutoRegisteringLayoutRenderer.ts)
- 중복 인터페이스 통합 (RestAPISourceNodeData, FlowVisibilityConfig)
- WebType에 누락된 타입 추가 (checkbox-group, radio-horizontal 등)
- 사용하지 않는 namespace 제거 (Migration, TypeValidation)
- tsconfig.json에 깨진 레거시 파일 exclude 추가

Made-with: Cursor
2026-03-04 01:13:33 +09:00
DDD1542 89af350935 [agent-pipeline] pipe-20260303124213-d7zo round-4 2026-03-03 22:00:52 +09:00
DDD1542 d9d18c1922 [agent-pipeline] pipe-20260303124213-d7zo round-3 2026-03-03 21:53:46 +09:00
DDD1542 0d71e79c54 [agent-pipeline] pipe-20260303124213-d7zo round-2 2026-03-03 21:49:56 +09:00
SeongHyun Kim 6c9e35e8b2 fix: POP 뷰어 화면 하단 회색 영역 제거
스크롤 컨테이너(overflow-auto)에 배경색이 없어 부모의 bg-gray-100이
컨텐츠 하단 빈 공간에 노출되는 문제 수정.
스크롤 컨테이너에 직접 bg-white를 적용하여 자식 높이 계산과
무관하게 흰색 배경이 유지되도록 변경.
프리뷰 모드에서는 디바이스 프레임 효과를 위해 기존 회색 배경 유지.
2026-03-03 18:57:59 +09:00
SeongHyun Kim 94a541fc9c fix(pop-cart): cart_type 빈 문자열 저장 버그 수정 ("pop" 복원)
- cartItemToDbRecord에서 cart_type: "" -> "pop"으로 복원
- loadFromDb 필터에 cart_type: "pop" 조건 추가하여 POP 데이터만 로드
- 리팩토링(9aaf0575) 중 누락된 값 복원
2026-03-03 17:46:50 +09:00
DDD1542 d7ef26d679 Merge branch 'jskim-node' of http://39.117.244.52:3000/kjs/ERP-node into gbpark-node
; Please enter a commit message to explain why this merge is necessary,
; especially if it merges an updated upstream into a topic branch.
;
; Lines starting with ';' will be ignored, and an empty message aborts
; the commit.
2026-03-03 17:13:22 +09:00
SeongHyun Kim 2e8300bbf5 feat(pop): 후속 액션 화면 이동 구현 + 입고확정 버튼 선택 상태 피드백
- PopViewerWithModals에 __pop_navigate__ 이벤트 구독 추가
  - targetScreenId가 있으면 해당 POP 화면으로 이동
  - "back"이면 router.back(), params는 쿼리스트링 전달
- 입고확정 버튼에 카드리스트 선택 상태 시각 피드백
  - 미선택: 기본 아이콘/색상
  - 선택됨: emerald-600 배경 + 선택 개수 뱃지
- selected_items connectionMeta category를 "event"로 변경하여 자동 매칭 대상 포함
2026-03-03 17:13:01 +09:00
DDD1542 65d5392c26 . 2026-03-03 16:58:02 +09:00
SeongHyun Kim f12fca46be fix(pop): 연결 역방향 라우팅 + 확정 후속 액션 + API URL 수정
- useConnectionResolver: _auto 모드에서 역방향(타겟→소스) 라우팅 추가
- pop-button: 입고 확정 성공 후 followUpActions 실행 (navigate/refresh/event)
- pop-button: execute-action API URL 경로 수정 (/api/pop/ → /pop/)
2026-03-03 16:19:22 +09:00
kjs f04d224b09 feat: Enhance error handling with showErrorToast utility
- Replaced existing toast error messages with the new `showErrorToast` utility across multiple components, improving consistency in error reporting.
- Updated error messages to provide more specific guidance for users, enhancing the overall user experience during error scenarios.
- Ensured that all relevant error handling in batch management, external call configurations, cascading management, and screen management components now utilizes the new utility for better maintainability.
2026-03-03 16:04:11 +09:00
kjs ce8b4ed688 feat: Add menu icon support in menu management
- Enhanced the menu management functionality by adding a new `menu_icon` field in the database schema, allowing for the storage of menu icons.
- Updated the `saveMenu` and `updateMenu` functions in the admin controller to handle the new `menu_icon` field during menu creation and updates.
- Modified the `AdminService` to include `MENU_ICON` in various queries, ensuring that the icon data is retrieved and processed correctly.
- Integrated the `MenuIconPicker` component in the frontend to allow users to select and display menu icons in the `MenuFormModal`.
- Updated the sidebar and layout components to utilize the new icon data, enhancing the visual representation of menus across the application.
2026-03-03 15:42:30 +09:00
SeongHyun Kim e3ae8d273c feat(pop): 컴포넌트 연결 단순화 + 상태 변경 규칙 UI 개선 + 조회 키 설정
컴포넌트 연결 단순화
- ConnectionEditor: 이벤트 연결 시 "어디로" Select 1개로 단순화
- useConnectionResolver: 호환 이벤트 자동 라우팅 (_auto 모드)
- connectionMeta에 category(event/filter/data) 필드 추가

상태 변경 규칙 UI 개선
- StatusChangeRule 타입 통합, 모든 버튼 프리셋에서 사용 가능
- TableCombobox/ColumnCombobox 공용 컴포넌트 추출 (pop-shared/)
- 테이블/컬럼 드롭다운, 고정값/조건부 값 설정 UI
- 입고확정 API 신규 (popActionRoutes.ts, 동적 상태 변경 처리)

조회 키 자동/수동 설정
- 대상 테이블 기반 자동 판단 (cart_items -> id, 그 외 -> row_key -> PK)
- 수동 모드: 카드 항목 필드와 대상 PK 컬럼을 직접 지정 가능
- PK 컬럼명 동적 표시 (isPrimaryKey 정보 활용)
2026-03-03 15:31:13 +09:00
kjs f697e1e897 feat: Add procedure and function management in flow controller
- Introduced new endpoints in FlowController for listing procedures and retrieving procedure parameters, enhancing the flow management capabilities.
- Updated FlowDataMoveService to support procedure calls during data movement, ensuring seamless integration with external and internal databases.
- Enhanced NodeFlowExecutionService to execute procedure call actions, allowing for dynamic execution of stored procedures within flow nodes.
- Updated frontend components to support procedure selection and parameter management, improving user experience in configuring flow steps.
- Added necessary types and API functions for handling procedure-related data, ensuring type safety and clarity in implementation.
2026-03-03 14:33:17 +09:00
kjs fd5c61b12a feat: Implement company code validation in flow management
- Enhanced the FlowController to include user company code validation for flow definitions, ensuring that users can only access and modify flows belonging to their company.
- Updated the FlowDefinitionService to accept company code as a parameter for create, update, and delete operations, enforcing ownership checks.
- Introduced sanitization methods in FlowConditionParser to prevent SQL injection for column and table names.
- Modified the FlowDataMoveService to validate table names and column names during data movement operations, enhancing security.
- Updated the frontend components to support batch data movement with proper validation and error handling.
2026-03-03 10:38:38 +09:00
kjs 7ad17065f0 Merge pull request 'jskim-node' (#396) from jskim-node into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/396
2026-02-28 14:37:09 +09:00
kjs e2d88f01e3 Merge branch 'feature/v2-renewal' of http://39.117.244.52:3000/kjs/ERP-node into jskim-node 2026-02-28 14:36:12 +09:00