Commit Graph

2984 Commits

Author SHA1 Message Date
chpark 97b333dd2e Amaranth(Wehago) ERP REST API 연계 + 배치 시스템 강화
부팅 시 자동 시드:
- 외부 REST API 연결 6종 (부서/사원/거래처/창고/계정과목/Wehago 사용자)
- 매칭 배치 6개 + Wehago HMAC-SHA256 서명 자동 부착 (erpApiClient/erpPresetSeedService/erpBatchSeedService)
- 동기화 대상 테이블/컬럼 보장 idempotent 마이그레이션 (erpTableMigration)

배치 기능 확장:
- 조건부 매핑 (mapping_type='conditional') — when/then/default 규칙으로 값 변환 (예: enrlFg=J01→active)
- 행 단위 제외 필터 (row_filter_config) — 특정 API 필드 값 가진 행 동기화 제외 (예: loginId=wace 통합 ERP 계정 제외)
- save_mode/conflict_key 기반 UPSERT, data_array_path 응답 배열 추출

UI 정비:
- 배치/플로우/메일/REST API 목록에 페이징 + FullHD 컴팩트 레이아웃
- 배치 편집 화면 한 화면 풀 활용 — TO 패널 가로 그리드, FROM 패널 등록 연결 한 줄 요약, 응답/JSON/파라미터 details 접힘
- ResponsiveDataView/AdminPageRenderer 쿼리 파라미터(?edit=N) 파싱

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-07 09:48:28 +09:00
chpark 36e232ba00 사이드바 메뉴 펼침/접힘 무한 루프 수정 + 사용자 메뉴 데이터/아이콘 정비
- AppLayout.tsx: 활성 탭 부모 자동 펼치기 useEffect의 의존성에서 expandedMenus를 제거.
  collapse 직후 effect가 재실행되며 강제 expand가 일어나 펼침/접힘이 토글되지 않던 문제 해결.
  이제 activeTab 변경 시에만 부모 메뉴 자동 펼침, 사용자 토글은 안정적으로 유지됨.
- 사용자 메뉴 데이터(DB) 재구성: waceplm 9개 화면 캡처와 1:1 매칭되는 46개 메뉴(루트 사용자 + 10 카테고리 + 35 리프) 재삽입,
  URL을 `.do` 레거시 → `/COMPANY_16/<카테고리>/<리프>` React 라우트로 통일.
- 메뉴 아이콘 매핑: 영업/프로젝트/개발/구매/구매요청/자재/생산/품질/CS/ECR 카테고리 + 35개 리프 각각에
  업무 성격에 맞는 lucide-react 아이콘(TrendingUp/FolderKanban/Wrench/ShoppingCart/Send/Boxes/Factory/ShieldCheck 등) 부여.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 14:34:36 +09:00
chpark 9a8196a395 RPS 브랜딩 · COMPANY_16 단독 운영 · Pipeline 디자인 채용
주요 변경:
- 회사 라우트 정리: COMPANY_7/8/9/10/29/30 6개 폴더 삭제, COMPANY_16(하이큐마그)만 유지
  - 모듈 수 17,470 → 16,121, /main 컴파일 시간 110s → 53s
- 브랜딩: VEXPLOR → RPS (로고/파비콘/타이틀/메타데이터/푸터 회사정보 전부 교체)
- 로그인 페이지 fito 스타일 리디자인 (다크 그라디언트 + 글래스 카드 + 격자 배경 + 하단 푸터)
- AppLayout/TabBar/ThemeToggle/ThemeProvider/Logo Pipeline 디자인 채용
  - 6색 컬러 테마 시스템 (blue/teal/green/purple/red/dark) + 좌→우 커튼 전환 애니메이션
  - 우상단 모드 전환 알약 버튼 (관리자만 노출)
  - 시안톤 탭 + Teal 활성 탭, 130px 컴팩트 너비
- 도커 포트 충돌 회피: 백엔드 8080→8090, 프론트 9771→9781, 컨테이너명 rps_backend/rps-front
- DB: vexplor_rps 신규 생성 후 vexplor_dev 데이터 이관, DATABASE_URL 변경
- useAuth: SUPER_ADMIN userType도 isAdmin으로 인정

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 10:36:21 +09:00
kjs 5dfae5e6b6 Refactor analytics report data retrieval and enhance equipment report logic
- Updated the `getQualityReportData` function to improve item name retrieval logic by using `NULLIF` for better handling of empty values.
- Refactored the `getEquipmentReportData` function to include company and date filters for equipment statistics, ensuring accurate data aggregation.
- Enhanced the SQL queries for both quality and equipment reports to utilize lateral joins and improve performance.
- Improved loading states in frontend components for inspection records and inspection results across multiple companies.

This refactor enhances data accuracy and user experience in the analytics module.
2026-04-28 20:20:10 +09:00
kjs 310f644508 Implement item inspection information feature with server-side pagination
- Added a new controller for item inspection information to handle grouped data retrieval with pagination.
- Created routes for accessing item inspection data, specifically for grouped item codes.
- Updated frontend components to support server-side pagination, including total count display and page navigation.
- Enhanced the item inspection info page to utilize the new API for fetching data, ensuring a smooth user experience.

This implementation improves the management of item inspection data and enhances usability in the quality module.
2026-04-28 18:42:25 +09:00
kjs 0b7c967f56 Refactor analytics report data retrieval and improve logistics info page loading logic
- Updated the analytics report controller to correctly join work_order_process and work_order_process_result for accurate production data retrieval.
- Enhanced the logistics info page to load all tabs on mount for immediate count accuracy, while ensuring only the active tab is reloaded on subsequent changes to prevent race conditions.

This refactor improves data accuracy and user experience in the logistics module.
2026-04-28 18:15:22 +09:00
kjs bf8d99ccf5 Implement KPI daily production feature
- Added a new KPI controller to handle daily production data retrieval.
- Created routes for accessing KPI data, specifically for daily production.
- Developed frontend components for displaying daily production metrics, including charts and summary cards.
- Implemented data fetching logic with date range filtering for production data.
- Ensured proper loading states and error handling in the UI.

This feature is part of TASK:ERP-022.
2026-04-28 16:14:27 +09:00
kjs 4afb0f5ca4 Implement server-side pagination for order summaries, plans, and shipping orders
- Added pagination parameters (page and size) to the getOrderSummary and getPlans functions in the productionController.
- Updated the getList function in shippingOrderController and shippingPlanController to support server-side pagination.
- Modified frontend components to handle pagination state and display total counts for orders and plans.
- Ensured compatibility with existing functionality by maintaining behavior when pagination is not used.
2026-04-28 13:59:34 +09:00
DDD1542 ee8f274feb 매미킴 2026-04-27 16:15:42 +09:00
DDD1542 34a44e0d9c Merge branch 'mhkim-node' of https://g.wace.me/jskim/vexplor_dev into gbpark-node 2026-04-27 14:46:26 +09:00
kmh e18a62f56f refactor(pop): trim main page widgets, drop layout auto-clone
- Remove KpiCarousel/RecentActivity from pop main pages (7 companies)
- Empty banner default; rename settings key home -> main
- Strip API fetch/cache from usePopSettings, return hardcoded defaults
- Drop screen_layouts_pop auto-clone/fallback for regular users
- Add SUPER_ADMIN direct-entry branch in AppLayout pop handler

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-27 14:45:00 +09:00
kjs 346a1314a2 Merge branch 'mhkim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-26 18:33:52 +09:00
kmh dcbcdb2f52 refactor(pop): isolate new shell, add super-admin entry, drop /pop fallback
- per-company PopShell copies under (main)/COMPANY_*/pop/_components/common/
  (no longer imports @/components/pop/hardcoded/PopShell)
- new components/pop/shell/CompanySwitchModal for new POP entry
- AppLayout: SUPER_ADMIN POP-mode toggle + company-select modal flow
- usePopSettings: handle /COMPANY_X/pop/<tail> URLs (extractScreenKey)
- authController + AppLayout: drop legacy /pop fallback;
  use /\${companyCode}/pop/main when childMenus>1 lacks [POP_LANDING]

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-26 15:07:44 +09:00
kjs 3d339f4846 Merge branch 'mhkim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-24 17:59:56 +09:00
kjs f922841d8d Merge branch 'mhkim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-24 17:59:00 +09:00
kjs 7e3a503adc feat: Add sales order bulk upload functionality
- Introduced a new controller for handling bulk uploads of sales orders via Excel, allowing users to efficiently manage large volumes of sales data.
- Implemented validation to ensure required fields are present and provided appropriate error messages for missing data.
- Enhanced the service layer to support item creation and master data management during the upload process.
- Updated routes to include a new endpoint for the bulk upload feature, ensuring secure access through token authentication.

These changes aim to streamline the sales order management process and improve user experience when handling bulk data uploads.
2026-04-24 17:58:11 +09:00
kmh 5ba8901a33 feat(pop): replicate COMPANY_7 pop to COMPANY_8/9/10/16/29/30
Copy the POP terminal screens from COMPANY_7/pop to the other six
company folders (POP.md excluded). URLs are already companyCode-aware
via usePopCompanyPath, so the replicated code works per-company with
no further edits.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 16:25:55 +09:00
kmh 28bdaedac6 refactor(pop): extract company path via usePopCompanyPath hook
Replace hardcoded /COMPANY_7/ URL prefixes across POP pages and
components with usePopCompanyPath() so navigation derives the company
code from the authenticated user.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-24 15:29:57 +09:00
kmh d8209f85c2 feat(pop): unify theme with COLOR_MAP and introduce accepted_results multi-accept flow 2026-04-24 15:00:47 +09:00
kmh de660679ca feat(frontend/logistics): render remark via category label map 2026-04-24 15:00:42 +09:00
kjs 37ca354af9 feat: Implement cutting plan management and work instruction modal
- Introduced a new cutting plan management page for COMPANY_9, allowing users to manage cutting plans effectively.
- Added a Work Instruction Apply Modal to facilitate the application of work instructions linked to cutting plans.
- Enhanced data handling by incorporating additional fields such as condition_unit, condition_base_value, condition_tolerance, condition_auto_collect, and condition_plc_data in relevant controllers and database interactions.
- Updated UI components to support new features, including displaying batch numbers and item sizes in the work instruction page.

These changes aim to improve the efficiency and usability of cutting plan and work instruction management processes.
2026-04-24 11:12:32 +09:00
kjs c01166263b feat: Implement sorting functionality in inspection management page
- Added sorting capabilities for equipment listings, allowing users to sort by various columns such as equipment code, name, type, and more.
- Introduced visual indicators for sort direction using icons (ArrowUp, ArrowDown, ArrowUpDown).
- Enhanced filtering logic to accommodate sorting, improving data retrieval and user experience.

These changes aim to provide users with better control over equipment data presentation and enhance overall usability in the inspection management workflow.
2026-04-24 09:29:41 +09:00
kjs 4a9e3768a9 feat: Optimize batch management and improve performance
- Reduced timeout for RestApiConnector to 20 seconds to ensure timely feedback for previews.
- Implemented caching for external DB metadata to minimize connection overhead and improve response times.
- Enhanced internal DB table and column retrieval with TTL caching to prevent database pool exhaustion.
- Introduced error handling for external DB timeouts, providing clearer feedback to users.
- Updated batch management UI to improve user experience with better error messages and streamlined data handling.

These changes aim to enhance the efficiency and reliability of batch management processes.
2026-04-23 18:24:32 +09:00
kjs c618283306 feat: Refactor work process and item inspection logic
- Updated SQL queries in `popProductionController` to separate work order process and result handling, ensuring batch_id is now managed in the work_order_process_result table.
- Enhanced `workInstructionController` to include id generation for work items and details, preventing NULL values during insertion.
- Implemented case-insensitive search functionality across various services, improving data retrieval accuracy.
- Added sorting functionality in the item inspection page, allowing users to sort by different columns with visual indicators for sort direction.

This refactor aims to improve data integrity and user experience across the production and inspection workflows.
2026-04-23 17:36:04 +09:00
DDD1542 2efe30e282 2026-04-23 14:32:52 +09:00
DDD1542 b3de4fc6d8 Merge remote-tracking branch 'origin/jskim-node' into gbpark-node 2026-04-23 14:03:57 +09:00
DDD1542 28c1c8c029 feat: Add cutting plan management for COMPANY_30
- Cutting optimization (Guillotine FFDH) with mixed/homogeneous modes
- Remnant management with persistence (cutting_plan_sheet.remnants JSONB)
- Work instruction creation linked via batch_no/cutting_plan_id

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-23 14:03:45 +09:00
kmh ed07595d97 Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into mhkim-node 2026-04-23 12:03:31 +09:00
kjs 1282955d15 feat: Enhance warehouse management page with drag-and-drop functionality
- Added GripVertical icon for visual representation of draggable segments.
- Introduced state management for rack segment order, allowing users to customize the order of segments (zone, row, level) via drag-and-drop.
- Updated location code generation logic to reflect the new segment order, improving the flexibility of location naming.
- Simplified modal handling by resetting segment order and labels upon opening the rack modal.
- Adjusted validation messages to focus on required fields, enhancing user experience during rack structure registration.
2026-04-23 09:44:50 +09:00
kjs ad1180daa5 feat: Allow duplicate items at the same level in BOM management
- Updated the logic in the BomManagementPage to permit the registration of duplicate items at the same level, enabling separate rows for items with different requirements or processes.
- Removed the previous check for duplicate items at the same level, enhancing flexibility in item management within the BOM structure.
2026-04-22 18:09:57 +09:00
kjs bf58ce3c07 feat: Implement multi-select functionality for work instruction items
- Added new fields to the SelectedItem interface for managing item schedules, equipment, work teams, and workers.
- Created a reusable MultiSelectPopover component to facilitate multi-selection of equipment, work teams, and workers.
- Enhanced the applyRegistration function to include start and end dates, as well as equipment and team assignments for work instruction items.
- Updated item handling logic to support production planning with optional scheduling details, improving the overall functionality of the work instruction page.
2026-04-22 15:44:42 +09:00
kmh b493ac930a Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into mhkim-node 2026-04-22 14:55:32 +09:00
kmh 4ed4d5f66e WIP: POP + packaging 작업 중
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-22 14:55:28 +09:00
kjs d9ced89a95 feat: Enhance packaging and work instruction functionality
- Updated SQL queries in the packaging and work instruction controllers to include additional fields such as `inventory_unit` and `material`, improving data retrieval for packaging items.
- Implemented new columns in the `work_instruction_detail` table for better tracking of item schedules, equipment, and personnel involved in work instructions.
- Enhanced frontend components to utilize the new data structure, including category options for inventory units and materials, improving user experience in the packaging and subcontractor item pages.
- Refactored item inspection display logic to format pass criteria more clearly, enhancing readability for inspection data.
2026-04-22 14:49:40 +09:00
kjs 84a3b12346 Merge branch 'main' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-22 12:27:36 +09:00
kjs 3b796ca9e3 feat: Add outsourcing outbound functionality
- Introduced a new controller for managing outsourcing outbound processes, including automatic candidate retrieval and outbound list management.
- Implemented API routes for fetching candidates, listing outsourcing outbounds, and creating new outbound records.
- Enhanced the SQL queries to ensure proper filtering by company code and to utilize existing outbound management tables effectively.
- Added new routes for handling outsourcing outbound operations in the Express application, improving the overall functionality of the logistics module.
2026-04-22 09:27:45 +09:00
kmh f117534d6c Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into mhkim-node 2026-04-21 18:30:48 +09:00
kjs a863427c4f feat: Update equipment handling in process management
- Enhanced the `getProcessEquipments` function to support matching both legacy equipment codes and new IDs, improving data retrieval accuracy.
- Updated the `availableEquipments` logic in the `ProcessMasterTab` component to handle both equipment codes and IDs, ensuring a seamless user experience when adding equipment.
- Improved error handling for equipment selection, providing user feedback when a selected equipment cannot be found.
- Refactored the display of equipment names to ensure accurate representation, even when equipment codes are not available.
2026-04-21 13:54:14 +09:00
kjs e0b89036d0 feat: Enhance copy functionality for item inspection information
- Introduced state management for copy form and inspection rows to facilitate editing and copying of inspection data.
- Implemented logic to duplicate selected inspection data into a copy modal, allowing users to edit and manage copied information.
- Enhanced the copy process to include validation and user feedback, ensuring a smooth experience when copying inspection details to multiple target items.
- Updated the modal handling to support dynamic row management for copied inspection items, improving usability and flexibility.
2026-04-21 10:31:40 +09:00
kjs 51c4fddde0 feat: Add report cell value management functionality
- Introduced a new controller for managing custom input values in report cells, allowing users to retrieve and upsert values associated with specific reports and targets.
- Implemented API routes for fetching and saving report cell values, ensuring proper authentication and data handling.
- Enhanced the frontend components to support the new report cell input functionality, including the ability to edit and save input values in a modal.
- Updated inventory and equipment management pages to include new features for handling missing items and managing warehouse locations effectively.
2026-04-20 17:59:28 +09:00
kmh f01dde1132 feat(pop): add COMPANY_7 POP foundation (shell, layout, inbound, outbound, main)
이전 세션 작업물 일괄 커밋. POP.md 2~6차 로그 기록 내용.
3cd3eed7(공정실행 이식) 커밋의 선행 의존성.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 16:55:35 +09:00
kmh 3cd3eed71d feat(pop): port production/process screen from legacy POP (Phase A + B-1)
Phase A — Legacy POP 이식:
- Copy WorkOrderList, ProcessWork, AcceptProcessModal, ProcessDetailModal,
  DefectTypeModal, ProcessTimer to app/(main)/COMPANY_7/pop/_components/production/
- New useProcessData hook: single sync call on mount + 3s throttle + toast errors
- Add /COMPANY_7/pop/production/process to usePopSettings URL mapping
- Update POP.md work log (legacy POP copy exception for this task)

Phase B-1 — ProcessWork 1st section split:
- Extract MaterialInputSection (ProcessWork 2993→2637, -356 lines)
- Plan revision: TimerPanel removed (dead code confirmed in original)

Plan: .claude/plans/pop-process-execution.md

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-20 16:50:51 +09:00
kjs 68bc857eae feat: Implement pagination and enhanced keyword search in work instruction retrieval
- Added pagination support to the `getList` function in the work instruction controller, allowing for efficient data retrieval with `page` and `pageSize` parameters.
- Enhanced the keyword search functionality to include checks for item numbers in the work instruction details, improving search accuracy.
- Updated the frontend components to utilize the new `SmartSelect` component for supplier and partner selection, enhancing user experience.
- Adjusted the `EDataTable` component to support server-side pagination, ensuring better performance with large datasets.
2026-04-20 14:51:32 +09:00
kjs 9737805bf9 feat: Enhance outbound and receiving update functionalities with inventory adjustments
- Updated the `update` function in the outbound controller to include detailed inventory adjustments when modifying outbound records, ensuring accurate stock management.
- Implemented rollback mechanisms for both outbound and receiving updates to maintain data integrity in case of errors.
- Enhanced the `deleteOutbound` function to include inventory recovery and historical logging for deleted outbound records.
- Introduced a new utility function `adjustInventory` to handle inventory changes consistently across different controllers.
- Improved error handling and logging for better traceability during outbound and receiving operations.
2026-04-20 14:14:24 +09:00
kjs 48b9ba3d2a feat: Enhance routing details and subcontractor mapping functionality
- Updated the `getRoutingDetails` function to enrich routing details with subcontractor codes, improving data retrieval for routing information.
- Implemented a mapping mechanism to associate subcontractor codes with routing details, ensuring accurate representation of outsourcing suppliers.
- Enhanced the `saveRoutingDetails` function to handle subcontractor mappings during the save operation, ensuring data integrity and consistency.
- Updated the BOM service to improve unit handling and added inventory unit information for better clarity in item representation.
- Refactored production plan management to streamline modal handling and improve error messaging for better user feedback.
2026-04-17 18:25:35 +09:00
kjs 173b85b476 feat: Implement copy functionality for item inspection information
- Added a modal for copying inspection information from a selected item to multiple target items.
- Implemented search and selection logic for target items to facilitate the copying process.
- Included validation to ensure a source item is selected and that target items are valid before proceeding with the copy operation.
- Enhanced user feedback with toast notifications for successful and error states during the copy process.
- Updated BOM management to include unit label handling for better clarity in item representation.
2026-04-17 13:11:01 +09:00
kjs b158b0aa77 feat: Enhance mold serial summary retrieval and improve category handling
- Updated the `getMoldSerialSummary` function to dynamically retrieve category values for mold statuses and operations, allowing for more flexible data aggregation.
- Implemented a mapping mechanism to categorize status codes based on their labels, improving the clarity of the summary results.
- Adjusted SQL queries to utilize the new category mappings for more accurate counts of mold statuses.
- Refactored the packaging and loading unit deletion logic to handle company code checks more efficiently, ensuring proper data access control.
2026-04-16 18:23:20 +09:00
kjs c503e2c59c Merge branch 'gbpark-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-16 13:41:41 +09:00
kjs dc7dd2776b feat: Enhance receiving update functionality and clean up imports
- Updated the receiving controller to allow for the update of inbound records, including both header and item fields (inbound_qty, unit_price, total_amount).
- Cleaned up the import statements in the receiving page by removing a duplicate toast import, improving code clarity and maintainability.
2026-04-16 13:41:35 +09:00
DDD1542 e6496c56f9 123123 2026-04-16 13:41:02 +09:00