Commit Graph

327 Commits

Author SHA1 Message Date
kjs 0743786f9b feat: 노드 기반 데이터 플로우 시스템 구현
- 노드 에디터 UI 구현 (React Flow 기반)
  - TableSource, DataTransform, INSERT, UPDATE, DELETE, UPSERT 노드
  - 드래그앤드롭 노드 추가 및 연결
  - 속성 패널을 통한 노드 설정
  - 실시간 필드 라벨 표시 (column_labels 테이블 연동)

- 데이터 변환 노드 (DataTransform) 기능
  - EXPLODE: 구분자로 1개 행 → 여러 행 확장
  - UPPERCASE, LOWERCASE, TRIM, CONCAT, SPLIT, REPLACE 등 12가지 변환 타입
  - In-place 변환 지원 (타겟 필드 생략 시 소스 필드 덮어쓰기)
  - 변환된 필드가 하위 액션 노드에 자동 전달

- 노드 플로우 실행 엔진
  - 위상 정렬을 통한 노드 실행 순서 결정
  - 레벨별 병렬 실행 (Promise.allSettled)
  - 부분 실패 허용 (한 노드 실패 시 연결된 하위 노드만 스킵)
  - 트랜잭션 기반 안전한 데이터 처리

- UPSERT 액션 로직 구현
  - DB 제약 조건 없이 SELECT → UPDATE or INSERT 방식
  - 복합 충돌 키 지원 (예: sales_no + product_name)
  - 파라미터 인덱스 정확한 매핑

- 데이터 소스 자동 감지
  - 테이블 선택 데이터 (selectedRowsData) 자동 주입
  - 폼 입력 데이터 (formData) 자동 주입
  - TableSource 노드가 외부 데이터 우선 사용

- 버튼 컴포넌트 통합
  - 기존 관계 실행 + 새 노드 플로우 실행 하이브리드 지원
  - 노드 플로우 선택 UI 추가
  - API 클라이언트 통합 (Axios)

- 개발 문서 작성
  - 노드 기반 제어 시스템 개선 계획
  - 노드 연결 규칙 설계
  - 노드 실행 엔진 설계
  - 노드 구조 개선안
  - 버튼 통합 분석
2025-10-02 16:22:29 +09:00
kjs db25b0435f 제어관리 수정 2025-10-02 11:12:45 +09:00
kjs 3f76d16afe feat: 버튼 컴포넌트 수정 액션에서 모달 제목/설명 전달
변경 사항:
1. InteractiveScreenViewer - handleEditAction 수정 
   - config에서 editModalTitle, editModalDescription 읽기
   - openEditModal 이벤트로 제목/설명 전달

2. ButtonTypeConfig 타입 추가 
   - editModalTitle 필드 추가
   - editModalDescription 필드 추가

3. ButtonConfigPanel 수정 
   - webTypeConfig에도 제목/설명 저장
   - 이중 저장 (action + webTypeConfig)

결과:
-  버튼의 수정 액션 실행 시 설정한 제목이 모달에 표시됨
-  버튼의 수정 액션 실행 시 설정한 설명이 모달에 표시됨
-  EditModal이 openEditModal 이벤트에서 제목/설명 받음
-  전체 데이터 흐름 완성
2025-10-01 17:45:29 +09:00
kjs 114928ca4f feat: 수정 버튼 액션에 제목과 설명 설정 기능 추가
추가된 기능:
1. ButtonConfigPanel - 수정 모달 제목/설명 입력 필드 추가 
2. EditModal - 제목/설명 props 추가 및 조건부 헤더 렌더링 
3. DataTableConfigPanel - 수정 모달 설정 섹션 추가 
4. InteractiveDataTable - editModalConfig에서 제목/설명 읽기 
5. screen/[screenId]/page - 제목/설명 전달 추가 
6. 타입 정의 - editModalConfig 추가 

변경된 파일:
- frontend/components/screen/config-panels/ButtonConfigPanel.tsx
- frontend/components/screen/EditModal.tsx
- frontend/components/screen/InteractiveDataTable.tsx
- frontend/components/screen/panels/DataTableConfigPanel.tsx
- frontend/app/(main)/screens/[screenId]/page.tsx
- frontend/types/screen-legacy-backup.ts

결과:
-  수정 버튼에서 모달 제목과 설명을 설정할 수 있음
-  데이터테이블에서도 수정 모달 설정 가능
-  제목과 설명이 모달 헤더에 표시됨
-  설정하지 않으면 기본 동작 유지
2025-10-01 17:41:30 +09:00
kjs b452f148a9 오라클 제어 수정 2025-10-01 17:36:17 +09:00
kjs 8615a358c0 fix: EditModal 라벨 표시 및 중복 박스 제거
문제:
1. 라벨이 보이지 않음 (hideLabel=true, labelDisplay=false)
2. 인풋이 중복으로 보임 (불필요한 패딩/테두리)

수정:
1. hideLabel={false} 
2. labelDisplay: true 
3. 컴포넌트 감싸는 div에서 스타일 제거 (패딩, 테두리) 

결과:
-  라벨 정상 표시
-  깔끔한 인풋 렌더링
-  원본 레이아웃 유지
2025-10-01 17:27:24 +09:00
kjs 7bb70bdd3b fix: ActionConditionBuilder 모든 Select 중복 키 수정
수정된 위치:
- line 271: fromColumns (소스 필드)
- line 289: toColumns (소스 필드)
- line 623: fromColumns (필드 매핑)
- line 638: toColumns (필드 매핑)
- line 737: getAvailableFieldsForMapping (대상 필드)

모든 .map() 앞에 .filter() 추가:
- 빈 columnName 제외
- 중복 키 방지
- React 경고 해결
2025-10-01 17:23:18 +09:00
kjs c3e6eff0fe fix: ActionConditionBuilder 중복 키 에러 수정
문제:
- toColumns에 빈 문자열 columnName 중복
- 중복된 키 to_ 생성
- React 키 중복 경고

수정:
- fromColumns filter 추가
- toColumns filter 추가
- 빈 문자열 컬럼 제외

에러:
Encountered two children with the same key
2025-10-01 17:21:08 +09:00
kjs b84f35d514 테이블 리스트 오류수정 2025-10-01 17:18:48 +09:00
kjs 767c031629 fix: Select Item 빈 문자열 value 에러 수정
문제:
- SelectItem에 빈 문자열 value 전달 시 에러
- col.columnName이 빈 문자열일 수 있음

수정:
- filter에 col.columnName 체크 추가
- 빈 문자열 컬럼 제외

에러 메시지:
A <Select.Item /> must have a value prop
that is not an empty string
2025-10-01 17:18:06 +09:00
kjs d22e83d234 fix: UPDATE 액션 formData 기본 포함 및 로깅 추가
UPDATE 액션 실행 시:
- formData를 기본으로 복사하여 기본키 포함
- 상세 로깅으로 디버깅 지원
- 백엔드 동적 기본키 조회 구현
2025-10-01 15:51:13 +09:00
kjs cb1a6ad672 feat: 버튼 저장 후 제어 자동 실행 기능 추가
문제:
- 버튼에 제어를 연결했지만 실행되지 않음
- ButtonActionExecutor가 제어 실행 로직이 없었음

수정:
1. buttonActions.ts:
   - executeAfterSaveControl() 메서드 추가
   - handleSave()에서 저장 성공 후 제어 실행
   - dataflowTiming='after'일 때만 실행
   - ImprovedButtonActionExecutor 통해 관계 기반 제어 실행

2. ButtonActionConfig 타입 확장:
   - dataflowTiming 필드 추가

3. ButtonActionContext 타입 확장:
   - buttonId, userId, companyCode 필드 추가

4. Import 추가:
   - ExtendedControlContext 타입 import

동작 흐름:
save 버튼 클릭
→ handleSave() 실행
→ 데이터 저장 (INSERT/UPDATE)
→  저장 성공
→ executeAfterSaveControl() 자동 호출
→ ImprovedButtonActionExecutor로 관계 실행
→ 연결된 제어 액션들 순차 실행

결과:
-  저장 후 연결된 제어 자동 실행
-  제어 실패 시 에러 처리
-  기존 기능 영향 없음
2025-10-01 15:31:31 +09:00
hjjeong 841e8d656d Merge branch 'feature/dashboard-management' 2025-10-01 13:39:33 +09:00
hjjeong c58dd9ff7e console.log를 주석처리 문법오류 해결 2025-10-01 13:36:04 +09:00
hjjeong 716a9a3b31 Merge branch 'feature/dashboard-management' into main
대시보드 관리 시스템 통합
- 충돌 해결 완료
- 백엔드/프론트엔드 대시보드 기능 추가
2025-10-01 12:10:42 +09:00
hjjeong 5f63c24c42 feat: 대시보드 관리 시스템 구현
## 백엔드
- DashboardController: 대시보드 CRUD 및 쿼리 실행 API
- DashboardService: 비즈니스 로직 처리
- PostgreSQL 연동 및 데이터 관리

## 프론트엔드
- DashboardDesigner: 캔버스 기반 대시보드 디자이너
- QueryEditor: SQL 쿼리 편집 및 미리보기
- ChartRenderer: 다양한 차트 타입 지원 (Bar, Line, Area, Donut, Stacked, Combo)
- DashboardViewer: 실시간 데이터 반영 뷰어

## 개선사항
- 콘솔 로그 프로덕션 준비 (주석 처리)
- 차트 컴포넌트 확장 (6가지 타입)
- 실시간 쿼리 실행 및 데이터 바인딩
2025-10-01 12:06:24 +09:00
kjs c973cb674d Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/prisma-to-raw-query-phase1-complete 2025-10-01 11:28:00 +09:00
kjs 3c06d35374 phase 2.3 테이블 및 컬럼 동적생성기능 변경 2025-09-30 18:28:54 +09:00
dohyeons 51d9c45d9e 공통코드관리 수정 시 에러 해결 2025-09-30 16:48:07 +09:00
dohyeons 6da8d14845 프로필 이미지 삭제 직후 렌더링이 안되는 문제 해결 2025-09-30 15:45:21 +09:00
hjjeong cf747b5fb3 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/dashboard-management 2025-09-30 14:44:46 +09:00
dohyeons 142f6a1a90 코드 활성/비활성화 해결 2025-09-30 14:28:40 +09:00
hjjeong d8f73c1136 feat: 대시보드 관리 시스템 구현
 새로운 기능:
- 드래그 앤 드롭 대시보드 설계 도구
- SQL 쿼리 에디터 및 실시간 실행
- Recharts 기반 차트 컴포넌트 (Bar, Pie, Line)
- 차트 데이터 매핑 및 설정 UI
- 요소 이동, 크기 조절, 삭제 기능
- 레이아웃 저장 기능

📦 추가된 컴포넌트:
- DashboardDesigner: 메인 설계 도구
- QueryEditor: SQL 쿼리 작성 및 실행
- ChartConfigPanel: 차트 설정 패널
- ChartRenderer: 실제 차트 렌더링
- CanvasElement: 드래그 가능한 캔버스 요소

🔧 기술 스택:
- Recharts 라이브러리 추가
- TypeScript 타입 정의 완비
- 독립적 컴포넌트 구조로 설계

🎯 접속 경로: /admin/dashboard
2025-09-30 13:23:22 +09:00
leeheejin 0b787b4c4c Fix modal label display issues and DOM node removal errors
- Hide rounded background labels in modal (계약구분, 국내/해외, 기본 버튼)
- Add try-catch blocks for DOM operations to prevent removeChild errors
- Fix event listener registration/removal in RealtimePreview, FileUpload, FileComponentConfigPanel
- Improve error handling for CustomEvent dispatching
2025-09-29 19:33:38 +09:00
dohyeons 6e3d5b40d2 에러 해결 2025-09-29 18:44:16 +09:00
leeheejin da429e7f24 image 2025-09-29 18:14:03 +09:00
kjs 78d49ee936 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node 2025-09-29 18:04:57 +09:00
kjs 126b3e1175 에러수정 2025-09-29 18:04:56 +09:00
dohyeons e74deb7c34 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into fix/429error 2025-09-29 17:30:44 +09:00
dohyeons 6e8f529cd3 추가 감소 2025-09-29 17:29:58 +09:00
hjlee 467c5598ab Merge pull request 'dev' (#74) from dev into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/74
2025-09-29 17:24:24 +09:00
dohyeons 808a317ed0 38개로 감소 2025-09-29 17:24:06 +09:00
leeheejin a5bf6601a0 ui, 파일업로드 관련 손보기 2025-09-29 17:21:47 +09:00
hjjeong c2a4a4a61e Merge remote-tracking branch 'origin/main' into feature/batch-testing-updates 2025-09-29 17:04:52 +09:00
dohyeons 6ce5fc84a8 Revert React Query changes 2025-09-29 16:55:39 +09:00
kjs 3c26f24179 버튼에 제어 달기 2025-09-29 15:21:14 +09:00
hjjeong 9dfd0cb40f Merge branch 'main' into feature/batch-testing-updates 2025-09-29 14:17:22 +09:00
hjjeong 9680991962 feat: 배치 관리 시스템 테스트 및 업데이트 기능 개선
- 배치 스케줄러 서비스 안정성 향상
- 외부 DB 연결 서비스 개선
- 배치 컨트롤러 및 관리 컨트롤러 업데이트
- 프론트엔드 배치 관리 페이지 개선
- Prisma 스키마 업데이트
2025-09-29 13:48:59 +09:00
kjs e057c4d960 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/screen-management 2025-09-29 13:37:35 +09:00
leeheejin bff7416cd1 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj 2025-09-29 13:33:24 +09:00
kjs 0fca8cd90b get요청 db 저장기능 2025-09-29 13:32:59 +09:00
leeheejin e0143e9cba 문서뷰어기능구현 2025-09-29 13:29:03 +09:00
kjs c9afdec09f restapi 버튼 동작 2025-09-29 12:17:10 +09:00
hjjeong 2448f26bc3 Merge branch 'feature/rest-api-integration' of http://39.117.244.52:3000/kjs/ERP-node 2025-09-26 20:04:07 +09:00
kjs e0777d0fc3 데이터 매핑 설정 중간커밋 2025-09-26 17:52:11 +09:00
hjjeong 3333429928 배치관리시스템 (DB, RestAPI) 2025-09-26 17:29:20 +09:00
kjs 9de0b4158c Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node 2025-09-26 17:17:53 +09:00
kjs f59fcb56b0 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node 2025-09-26 17:17:03 +09:00
leeheejin 3600621554 화면관리 쪽 파일첨부 수정 2025-09-26 17:12:03 +09:00
kjs 11b71b788a 외부호출 기능(rest API) 2025-09-26 17:11:18 +09:00