Commit Graph

24 Commits

Author SHA1 Message Date
leeheejin c6b2a30651 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into lhj
; 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.
2025-11-05 13:10:25 +09:00
leeheejin b4cc844675 엑셀 다운로드 문제 해결 2025-11-05 10:23:00 +09:00
hjlee 6c713a11d8 Merge pull request '행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가' (#183) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/183
2025-11-04 18:34:43 +09:00
leeheejin 82ff18e388 행 이동 화면 할당한 상황에서도 가능하게, 코드병합 버튼액션에 추가 2025-11-04 18:31:26 +09:00
kjs 198f678b68 채번 자동생성기능 2025-11-04 17:35:02 +09:00
leeheejin 7425c37094 엑셀 다운로드, 업로드, 사진촬영(바코드 스캔기능) 추가 2025-11-04 09:41:58 +09:00
leeheejin 94e5a5de0b 회사코드 입력, 작성자 입력가능하게 수정완료 2025-11-03 16:26:32 +09:00
kjs 8e9daf5b22 feat: 수정 모달 자동 닫기 및 테이블 새로고침 기능 구현
- EditModal: 저장 완료 후 자동으로 닫히고 부모 테이블 새로고침
- buttonActions.ts: 저장 성공 후 closeEditModal 이벤트 발생
- InteractiveScreenViewerDynamic: onSave prop 추가하여 EditModal 연동
- InteractiveDataTable: EditModal 열 때 onSave 콜백으로 loadData 전달
- 두 가지 시나리오 모두 지원:
  1. InteractiveScreenViewerDynamic 버튼의 onSave 호출
  2. DynamicComponentRenderer 버튼의 buttonActions.ts 처리
2025-11-03 09:58:04 +09:00
kjs 556354219a 스타일 수정중 2025-10-30 12:03:50 +09:00
kjs 244f04a199 등록자랑 회사코드 자동으로 들어가도록 수정 2025-10-29 16:06:01 +09:00
kjs efdef36cda 모달창 올리기 2025-10-29 11:26:00 +09:00
kjs 5fdefffd26 로그시스템 개선 2025-10-27 11:11:08 +09:00
kjs 8d1f0e7098 제어관리 개선판 2025-10-24 14:11:12 +09:00
kjs c228ddb498 삭제버튼 동작 2025-10-23 17:55:04 +09:00
kjs f9c6ef70db 플로우 위젯 컴포넌트와 버튼의 연동 2025-10-23 17:26:14 +09:00
kjs 4996dd5562 버튼 액션 안되는 버그 수정 2025-10-23 13:15:52 +09:00
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 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
kjs 3c26f24179 버튼에 제어 달기 2025-09-29 15:21:14 +09:00
kjs c9afdec09f restapi 버튼 동작 2025-09-29 12:17:10 +09:00
kjs d1e1c7964b 테스트 프로젝트 테이블 생성 및 오류들 수정 2025-09-19 12:19:34 +09:00
kjs f7d884568b 테스트테이블 생성 및 오류 수정 2025-09-19 02:15:21 +09:00
kjs 004bf28d17 버튼 삭제 수정기능 구현 2025-09-18 18:49:30 +09:00
kjs b071d8090b 버튼 기능구현 2025-09-12 14:24:25 +09:00