Commit Graph

2872 Commits

Author SHA1 Message Date
kjs db25b0435f 제어관리 수정 2025-10-02 11:12:45 +09:00
dohyeons ae616ae611 pdf 저장 수정 2025-10-02 10:52:13 +09:00
dohyeons c52937c22d 직접 서명 기능 추가 2025-10-02 10:04:02 +09:00
dohyeons e697acb2c9 서명란, 도장란 테두리 두께 0으로 설정 2025-10-02 09:58:46 +09:00
dohyeons b32b05a76c 쿼리 에서 cud 명령어 막기 구현 2025-10-02 09:56:44 +09:00
dohyeons ae23cfdc2b 하드코딩된 부분 삭제 2025-10-02 09:49:21 +09:00
dohyeons f19db38973 캔버스 위치 이동 밑 영역 제한 2025-10-01 18:29:47 +09:00
hjlee c4b92f0710 Merge pull request 'lhj' (#84) from lhj into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/84
2025-10-01 18:23:34 +09:00
leeheejin 2c0dca08b4 console.log 주석 처리 - 개발환경 정리
- menu, company, screenMng, i18n, tableMng 모듈 console 주석 처리
- 총 55개 파일 수정
- 빌드 에러 수정 완료
- 백엔드 서버 정상 작동 확인

관련 파일:
- frontend/components/admin/MenuManagement.tsx
- frontend/components/admin/MenuFormModal.tsx
- frontend/components/admin/ScreenAssignmentTab.tsx
- frontend/components/admin/CompanyTable.tsx
- frontend/components/admin/MultiLang.tsx
- frontend/app/(main)/admin/tableMng/page.tsx
- 기타 screen 관련 컴포넌트 49개 파일
2025-10-01 18:17:30 +09:00
dohyeons ed908b2330 레이어 수정 2025-10-01 18:10:29 +09:00
dohyeons 7d801c0a2b 테이블 데이터 바인딩 2025-10-01 18:04:38 +09:00
leeheejin 4202a5b310 Merge branch 'main' into lhj - 충돌 해결 2025-10-01 18:01:20 +09:00
kjs 63ee0fbb5a Merge pull request 'feature/screen-management' (#83) from feature/screen-management into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/83
2025-10-01 17:59:06 +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 852075c799 fix: Oracle INSERT 자동 커밋 추가
문제:
- Oracle DB에 INSERT 해도 데이터가 실제로 저장되지 않음
- executeQuery에서 autoCommit 옵션이 없었음

수정:
1. 쿼리 타입 확인 (INSERT/UPDATE/DELETE/MERGE)
2. DML 쿼리는 autoCommit: true 설정 
3. SELECT 쿼리는 autoCommit: false (기본값)

로깅 추가:
- isDML 확인
- autoCommit 상태
- rowsAffected 추가

결과:
-  INSERT 실행 후 자동 COMMIT
-  UPDATE/DELETE도 자동 COMMIT
-  SELECT는 영향 없음
-  오라클 데이터 정상 저장
2025-10-01 17:34:56 +09:00
dohyeons dfa642798e 도장, 서명 컴포넌트 구현 2025-10-01 17:31:15 +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
leeheejin 6d1fe625e4 메일관리 시스템 구현 완료 2025-10-01 17:01:31 +09:00
dohyeons d83264181c 이미지 & 구분선 구현 2025-10-01 16:53:35 +09:00
dohyeons f8be19c49f 컴포넌트 그룹화(Grouping) 기능 구현 2025-10-01 16:33:25 +09:00
dohyeons d01ade4e4f 눈금자(Ruler) 표시 기능 구현 2025-10-01 16:27:05 +09:00
dohyeons a1ddf4678d 컴포넌트 잠금기능 구현 2025-10-01 16:23:20 +09:00
dohyeons 172ecf34b3 레이어 관리 구현 2025-10-01 16:17:41 +09:00
leeheejin 0209be8fd6 메일 관리 작업 저장용 커밋 2025-10-01 16:15:53 +09:00
dohyeons 722a413916 키보드 화살표 이동 구현 2025-10-01 16:09:34 +09:00
dohyeons 43cdacb194 정렬 및 배치 기능 구현 2025-10-01 16:06:47 +09:00
dohyeons 46aa81ce6f 컴포넌트 다중 선택 및 복붙, Re/undo 구현 2025-10-01 15:53:37 +09:00
kjs d22e83d234 fix: UPDATE 액션 formData 기본 포함 및 로깅 추가
UPDATE 액션 실행 시:
- formData를 기본으로 복사하여 기본키 포함
- 상세 로깅으로 디버깅 지원
- 백엔드 동적 기본키 조회 구현
2025-10-01 15:51:13 +09:00
kjs 151de4148c fix: UPDATE 액션 동적 기본키 조회 기능 추가
문제:
- UPDATE 액션 실행 시 ID 필요 에러
- executeUpdate가 하드코딩된 id 필드만 찾음
- 실제 테이블 기본키는 다를 수 있음

해결:
1. 테이블 기본키 동적 조회
2. 기본키 값 동적 추출
3. 동적 UPDATE 쿼리 생성
4. 상세 로깅 추가

결과:
- 모든 테이블의 UPDATE 동작
- 동적 기본키 처리
2025-10-01 15:48:29 +09:00
dohyeons 771dc8cf56 Merge branch 'main' of http://39.117.244.52:3000/kjs/ERP-node into feature/report 2025-10-01 15:36:56 +09:00
dohyeons c5c6d9239c 정렬 가이드라인 구현 2025-10-01 15:35:16 +09:00
dohyeons ae23a4408e 캔버스에 그리드 시스템 적용 2025-10-01 15:32:35 +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 352d4c3126 fix: query 함수 파라미터 배열 전달 오류 수정
문제:
- query() 함수에 스프레드 연산자로 파라미터 전달
- pg 라이브러리는 배열을 요구함
- 'Query values must be an array' 에러 발생

수정:
tableManagementService.ts (2곳):
- line 1501: query(...searchValues) → query(searchValues)
- line 1512: query(...searchValues, size, offset)
            → query([...searchValues, size, offset])

결과:
-  쿼리 파라미터 배열로 정확히 전달
-  테이블 데이터 조회 정상 동작
2025-10-01 15:21:08 +09:00
dohyeons 1c00ee28e8 pdf/word 저장기능 임시 2025-10-01 15:20:25 +09:00
kjs 6fc140b423 fix: Docker 파일에서 Prisma 명령 제거
문제:
- docker/dev/backend.Dockerfile에 Prisma 명령 남아있음
- docker/prod/backend.Dockerfile에 Prisma 명령 남아있음
- Docker 빌드 시 '/prisma' not found 에러 발생

해결:

1. docker/dev/backend.Dockerfile:
   - COPY prisma ./prisma 제거
   - RUN npx prisma generate 제거

2. docker/prod/backend.Dockerfile:
   - Dependencies stage: Prisma 관련 코드 제거
   - Build stage: COPY prisma 제거, npx prisma generate 제거
   - Runtime stage: 주석 업데이트

결과:
-  Docker 빌드 에러 해결
-  Prisma 의존성 완전 제거
-  개발/운영 환경 모두 Raw Query 기반
2025-10-01 15:11:07 +09:00
kjs 808a0244d5 fix: @types/uuid 패키지 추가
문제:
- uuid 모듈의 타입 정의 파일 없음
- TypeScript 컴파일 에러 발생

해결:
- npm install --save-dev @types/uuid
- @types/uuid@10.0.0 설치

결과:
-  TypeScript 컴파일 에러 해결
-  uuid 모듈 타입 안전성 확보
2025-10-01 15:08:37 +09:00
kjs a93fb0f684 Merge pull request 'feature/prisma-to-raw-query-phase1-complete' (#82) from feature/prisma-to-raw-query-phase1-complete into main
Reviewed-on: http://39.117.244.52:3000/kjs/ERP-node/pulls/82
2025-10-01 15:07:15 +09:00
kjs 401bbf85dc Merge branch 'main' into feature/prisma-to-raw-query-phase1-complete 2025-10-01 15:07:07 +09:00
dohyeons 62d36abb65 리포트 템플릿 저장 구현 2025-10-01 15:03:52 +09:00
kjs 9154c9c0ca docs: 모든 문서에서 Prisma 참조 제거 및 Raw Query로 업데이트
변경된 파일:

1. DOCKER.md:
   - 기술 스택: Prisma → PostgreSQL (Raw Query)
   - Prisma 관련 섹션 제거
   - 데이터베이스 관련 섹션으로 교체
   - 프로젝트 구조: prisma/ → database/

2. backend-node/Dockerfile.win:
   - npx prisma generate 명령 제거
   - Prisma 클라이언트 생성 단계 삭제

3. backend-node/README.md:
   - ORM: Prisma → Database: PostgreSQL (Raw Query with pg)
   - 프로젝트 구조: prisma/ → database/
   - Prisma 클라이언트 생성 단계 제거
   - npx prisma studio 스크립트 제거
   - 데이터베이스 스키마 변경 가이드 업데이트
   - Phase 1 체크리스트: Prisma → Raw Query

문서 정리 완료:
-  Docker 가이드 업데이트
-  Dockerfile Prisma 명령 제거
-  README 기술 스택 업데이트
-  개발 가이드 Raw Query로 변경
2025-10-01 15:03:08 +09:00
kjs 920cfbb3fd chore: Prisma 패키지 및 의존성 완전 제거
npm uninstall로 완전 제거:
-  @prisma/client 제거
-  prisma (devDependency) 제거
-  관련 32개 패키지 제거

node_modules 정리:
-  node_modules/@prisma 디렉토리 제거
-  node_modules/.prisma 디렉토리 제거
-  package-lock.json 업데이트

최종 검증 완료:
1. package.json prisma: 0개 
2. package-lock.json prisma: 0개 
3. node_modules Prisma 디렉토리: 0개 
4. prisma. 코드 호출: 0개 
5. PrismaClient import: 0개 
6. Prisma 타입 사용: 0개 
7. Prisma 에러 코드: 0개 
8. PostgreSQL 에러 코드: 9개 
9. TypeScript 컴파일: 에러 없음 

100% 완전 제거 완료! 🎉
2025-10-01 14:59:51 +09:00
kjs ec5fae1a4d fix: Prisma 에러 처리 코드를 PostgreSQL 에러 코드로 변경
변경사항:

1. errorHandler.ts:
   - Prisma 에러 처리 제거
   - PostgreSQL 에러 코드 기반 처리 추가:
     * 23505: unique_violation (중복 데이터)
     * 23503: foreign_key_violation (참조 무결성)
     * 23502: not_null_violation (필수값 누락)

2. dataflowDiagramController.ts:
   - P2002 (Prisma) → 23505 (PostgreSQL)
   - unique constraint 에러 처리 개선

3. commonCodeController.ts:
   - Prisma 에러 처리 주석 수정
   - PostgreSQL 23505 에러 코드 추가

최종 확인:
-  prisma. 호출: 0개
-  PrismaClient import: 0개
-  Prisma 파일: 0개
-  package.json Prisma 의존성: 0개
-  TypeScript 컴파일 에러: 0개
-  모든 Prisma 관련 코드 제거 완료
2025-10-01 14:57:25 +09:00
kjs 643f6e0d7d chore: Prisma 관련 파일 완전 제거 🧹
제거된 파일들:

1. 컴파일된 파일:
   - backend-node/dist/config/database.js

2. 테스트 파일 (3개):
   - backend-node/src/tests/database.test.ts
   - backend-node/src/tests/authService.test.ts
   - backend-node/src/tests/integration/auth.integration.test.ts

3. Prisma 관련 스크립트 (10개):
   - test-db.js, check-password.js, check-actual-password.js
   - update-password.js, create-test-user.js, simple-test-user.js
   - clean-screen-tables.js, test-jwt.js, test-token.js
   - test-token.txt

4. Prisma 디렉토리:
   - backend-node/prisma/schema.prisma
   - backend-node/prisma/migrations/

수정된 파일들:

1. backend-node/package.json:
    Prisma 스크립트 제거 (prisma:generate, migrate, studio, seed)
    @prisma/client 의존성 제거
    prisma 개발 의존성 제거
    keywords: prisma → postgresql

2. .gitignore:
    Prisma 관련 항목 제거

3. src/services/dataflowDiagramService.ts:
    포맷팅 수정

최종 상태:
-  Prisma 호출: 0개
-  Prisma 관련 파일: 0개
-  Raw Query 기반 시스템으로 완전 전환
2025-10-01 14:54:44 +09:00