Commit Graph

3273 Commits

Author SHA1 Message Date
SeongHyun Kim
0f6f652bed feat: 생산관리 메인 메뉴 (입고/출고와 동일 패턴)
- /pop/production → ProductionMain (아이콘 메뉴: 공정실행/작업지시/생산현황/불량관리/실적조회)
- /pop/production/process → WorkOrderList (기존 공정 목록 이동)
- KPI 실데이터 연동 (작업지시 목록 API)
- amber gradient 테마, 최근 생산활동
- cmux 검증 완료
2026-04-02 11:28:55 +09:00
SeongHyun Kim
b644961c60 fix: cart_items DELETE → status 변경 (이력 보존)
- 확정: status "in_cart" → "confirmed" (이력 추적 가능)
- 취소: status "in_cart" → "cancelled"
- 조회: status="in_cart"만 표시 (confirmed/cancelled는 안 보임)
- DELETE 제거 → updateRecord로 변경 (3곳)
2026-04-02 11:03:03 +09:00
SeongHyun Kim
8776405a1b fix: 장바구니 확정 후 cart_items DELETE + 품목 이미지 지원
- useCartSync: 삭제 시 deleteRecord 사용 (cancelled 업데이트 대신)
- InboundCartPage: 확정 후 직접 DELETE 호출 (이중 안전장치)
- OutboundCartPage: 동일 수정
- 품목 카드: item_info.image 있으면 표시, 없으면 📦
- cmux 검증: 확정 후 cart_items 0건 확인
2026-04-02 10:59:23 +09:00
SeongHyun Kim
a322f9e596 feat: 장바구니 카드 = 발주/출하 카드 UI 통일
- InboundCartPage: 발주 카드와 동일 레이아웃 (이미지좌+정보중+수량우)
- OutboundCartPage: 출하 카드와 동일 레이아웃 (green 테마)
- 삭제 버튼: 텍스트 포함 빨간 버튼
- 포장/검사 정보 위치 통일
- cmux 검증 완료
2026-04-02 10:13:53 +09:00
SeongHyun Kim
19733df2da fix: outbound_mng id NOT NULL 버그 수정 (gen_random_uuid) 2026-04-02 10:08:47 +09:00
SeongHyun Kim
1747119345 fix: 출고 고객사-출하지시 매칭 (partner_id=customer_name 대응) 2026-04-02 09:47:17 +09:00
SeongHyun Kim
089f1e4b4c feat: MES 공정 화면 (작업지시목록 + 공정작업상세 + 타이머 + 실적 + 입고)
- WorkOrderList: 탭 필터(전체/접수가능/진행중/대기/완료), 공정카드, 접수
- ProcessWork: 타이머(시작/정지/재개/종료), 실적입력(양품/불량), 확정, 생산입고
- ProcessTimer: HH:MM:SS 실시간, 상태별 색상
- DefectTypeModal: 불량유형 선택 + 수량 + 처리방법
- AcceptProcessModal: 접수 수량 키패드
- cmux 검증: 화면 표시 OK, 탭 필터 OK, API 연동 OK
2026-04-02 09:33:53 +09:00
SeongHyun Kim
25d4a211d6 feat: 출고 화면 세트 (유형선택 + 판매출고 + 장바구니)
- OutboundTypeSelect: 외부 5종 + 내부 2종, KPI 실데이터, 최근출고
- SalesOutbound: 고객사 선택 + 출하지시 품목 + useCartSync 연동
- OutboundCartPage: 출고일자/창고/번호 + 확정 + 결과모달
- CustomerModal: customer_mng 실데이터 + 초성검색
- 입고와 동일 UI 통일감, green gradient
- cmux 검증: 화면 표시 OK, 고객사 모달 실데이터 OK
2026-04-02 09:23:32 +09:00
SeongHyun Kim
2a30ab33f6 fix: 미입고 수량 갱신 — 담기 후 remain_qty 차감 표시 2026-04-02 09:11:19 +09:00
SeongHyun Kim
6566b7fd84 feat: 입고 확정 결과 모달 (입고번호 + 처리 품목 표시)
- 확정 후 모달: 입고번호, 창고, 날짜, 처리된 품목 목록
- 확인 클릭 → 입고유형선택으로 이동
- cmux+psql로 전체 흐름 검증 완료:
  RCV-2026-0002 생성, 재고 +100, cart cancelled
2026-04-01 22:49:40 +09:00
SeongHyun Kim
3e268ca637 fix: useCartSync id 자동생성 + cart_items DB 저장 완전 해결
- useCartSync: createRecord 시 crypto.randomUUID()로 id 생성
- cart_items NOT NULL id 제약 해결
- cmux browser로 실제 검증 완료:
  - 담기 → DB 저장 확인 (in_cart status)
  - 장바구니 페이지 이동 + 품목 표시 확인
  - 배지 숫자 표시 + isDirty 애니메이션
  - 하단 큰 확정 버튼 제거 (우상단만)
2026-04-01 22:37:14 +09:00
SeongHyun Kim
4b5bccb86a fix: cart_items DB 저장 + 입고번호 확정시점 채번 + 장바구니 조회
- cart_items: id를 crypto.randomUUID()로 생성 (NOT NULL 대응)
- cart_items: row_data에 품목 정보 JSON 저장
- 입고번호: 장바구니에서 미리 표시 안 함 → 확정 시 생성
- 장바구니 조회: 올바른 API 파라미터로 수정
- 담기 취소 시 dbId로 정확한 cart_items DELETE
2026-04-01 22:03:37 +09:00
SeongHyun Kim
d20b65bd12 feat: 입고 장바구니 독립 페이지 (/pop/inbound/cart)
- InboundCartPage: cart_items DB 영속 저장, 탭 이동해도 유지
- 상단: 입고일자(날짜피커) + 창고(터치선택) + 입고번호(자동채번)
- 품목: 체크박스, 수량수정(키패드), 삭제, 포장정보
- 검사: 필수→완료필수, 비필수→패스버튼, 미완료시 확정차단
- 전량 입고 원칙: 불량 포함 전체 입고 (팀장 규칙)
- PurchaseInbound: 장바구니 아이콘→독립페이지 이동 (모달 제거)
2026-04-01 21:46:22 +09:00
SeongHyun Kim
b6c1b08049 fix: 구매입고 전체 프로세스 완성 (E2E 16/16 통과)
- backend: inventory_stock INSERT 시 id 누락 버그 수정
- frontend: 거래처 API supplier_mng으로 수정
- frontend: cart_items 실제 컬럼 구조 맞춤
- frontend: InboundCart 확정 로직 PC와 동일하게 정렬
- 검증: 발주→장바구니→입고등록→재고증가→발주상태변경 전체 확인
2026-04-01 18:53:32 +09:00
SeongHyun Kim
4b9b26d957 fix: PC 프로필에 POP 모드 추가 (AppLayout.tsx — 실제 렌더링 위치) 2026-04-01 18:25:12 +09:00
SeongHyun Kim
f706556228 feat: PC 프로필에 POP 모드 전환 + PC전환 시 전체화면 해제
- PC UserDropdown에 "POP 모드" 메뉴 추가 (결재함↔로그아웃 사이)
- POP→PC 전환 시 전체화면 자동 해제
2026-04-01 18:17:10 +09:00
SeongHyun Kim
0232b1ed2c feat: 프로필 드롭다운 메뉴 (PC모드/앱모드/홈/로그아웃) 2026-04-01 18:03:03 +09:00
SeongHyun Kim
07db35c2e6 feat: 입고 KPI 실데이터 + 장바구니 헤더 이동 + 거래처 모달 복원
- 입고유형선택: KPI/최근입고 실데이터 연동 (더미 제거)
- 장바구니 아이콘: 본문 → 헤더 프로필 왼쪽으로 이동
- PopShell: headerRight prop 추가
- 거래처: 인라인 드롭다운 제거, 클릭→모달 방식 복원
2026-04-01 17:41:01 +09:00
SeongHyun Kim
f03f35e744 feat: 실데이터 연동 + UI 개선 + 바코드 스캔
- 홈 KPI: 실제 입고/출고 건수 API 연동
- 홈 최근활동: 실제 입고+출고 이벤트 표시
- 구매입고 cart_items DB 연동 (cart-save → data-save)
- 입고 확정: 입고번호 자동생성 + 창고 선택 + cart 정리
- 거래처: 클릭→모달 방식으로 변경
- QR/바코드 스캔: BarcodeScanModal 이식 + glossy v3 버튼
- 수량 입력: 단계별 흐름 (포장→개수→수량→확인)
- 발주품목: 거래처 미선택 시 빈 화면 안내
- 돋보기 아이콘 제거
2026-04-01 17:33:16 +09:00
SeongHyun Kim
ecf79c9e50 feat: POP v2 하드코딩 화면 — 홈 + 입고 프로세스
- 홈 화면: KPI 캐러셀, 메뉴 아이콘, 최근 활동, 공지 배너
- 입고유형선택: 외부 7개 + 내부 3개 아이콘, 금일 입고 KPI
- 구매입고: 거래처 선택, 발주 품목 카드, 담기/취소
- 장바구니: 체크박스, 포장 정보, 검사 상태, 확정
- 숫자 키패드: 터치 입력, MAX, 포장등록
- 포장 선택: 6종 단위 (박스/포대/팩/묶음/롤/통)
- 검사 모달: 마스터 기반 체크리스트, 측정값, 양품/불량
- 공통 PopShell: 헤더(시계+프로필), 배너, 푸터
- 반응형 4모드 (태블릿/핸드폰 가로세로)
2026-04-01 17:19:12 +09:00
SeongHyun Kim
603df15946 feat: ERP-node POP/MES 백엔드 API 이전
ERP-node에서 개발한 POP/MES 관련 백엔드 API를 vexplor_dev로 이전.
컨트롤러 16개, 라우트 16개, 서비스 2개 복사 + app.ts 라우트 등록 + cheerio 의존성 추가.

이전 대상:
- POP 생산관리 (popProduction, inspectionResult)
- 작업지시, 공정정보, 생산계획
- 입고, 출고, 출하지시, 출하계획
- 분석리포트, 영업리포트, 설계모듈
- 자재현황, 포장/적재, 크롤링, 시스템공지

tsc 검증: 기존 에러 1건 외 신규 에러 없음
2026-04-01 14:16:17 +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
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
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
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
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
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