2826 Commits

Author SHA1 Message Date
SeongHyun Kim
71abfebb51 fix: POP 입고 확정 시 inbound_status를 '입고완료'로 전달
기존: inbound_status 미전달 → 백엔드 기본값 '대기'
수정: '입고완료' 명시적 전달
2026-04-08 10:04:44 +09:00
SeongHyun Kim
126f11354e fix: POP 출고 확정 시 outbound_status를 '출고완료'로 변경
기존: '대기' 하드코딩 → 출고 확정해도 상태 미갱신
수정: '출고완료'로 → 출고 확정 시 정상 상태 반영
2026-04-08 09:57:57 +09:00
SeongHyun Kim
a7b914407c feat: 채번규칙 필드를 입고/출고 장바구니 화면에서만 표시
- SettingField에 showOnlyForScreens 옵션 추가
- 입고번호 채번: inbound-cart에서만 표시
- 출고번호 채번: outbound-cart에서만 표시
- 구매입고/판매출고/유형선택 등 다른 화면에서는 채번 필드 숨김

이로써 채번 설정의 컨텍스트가 명확해짐
2026-04-07 18:46:18 +09:00
SeongHyun Kim
dad8df7b10 fix: POP 화면설정 iframe 매칭 — 정확/길이 긴 url 우선
문제: /pop/outbound/cart 진입 시 startsWith 매칭으로
      /pop/outbound(출고유형선택)가 먼저 잡혀 selectedScreen이 잘못 설정됨

해결: 정확 일치 1순위 + url 길이 긴 항목 startsWith 우선
2026-04-07 18:23:36 +09:00
SeongHyun Kim
444f0f95f3 feat: POP 화면설정에 출고 장바구니 항목 추가
- screen_definitions에 7010 (POP_OUTBOUND_CART) 신규 등록
- popSettingsMng SCREEN_GROUPS의 outbound에 outbound-cart 추가
- OutboundCartPage 채번규칙 조회 screen_id를 5 → 7010으로 변경

이로써 POP 설정 페이지에서 출고 장바구니 화면도 미리보기 + 채번규칙 설정 가능
2026-04-07 17:55:40 +09:00
SeongHyun Kim
d795c74dbd feat: POP 입고/출고 채번규칙을 화면설정과 연동
백엔드:
- receiving/generate-number: ?ruleId 쿼리 받아 numberingRuleService.allocateCode 사용
- outbound/generate-number: 동일
- ruleId 없거나 실패 시 기존 하드코딩 채번으로 폴백

프론트:
- InboundCartPage: 확정 시 화면설정의 popConfig.inbound.numberingRuleId 읽어 ruleId 전달
- OutboundCartPage: 확정 시 화면설정의 popConfig.outbound.numberingRuleId 읽어 ruleId 전달

POP 화면설정에서 채번규칙 선택 → 입고/출고 확정 시 자동 적용
2026-04-07 17:11:39 +09:00
SeongHyun Kim
1abc6645fb fix: 채번규칙 셀렉트 — camelCase 응답 구조 반영 2026-04-07 17:01:11 +09:00
SeongHyun Kim
31e225f6d3 feat: POP 화면설정 채번규칙 셀렉트 박스 구현
- 새 type "numbering-rule" 추가
- NumberingRuleSelect 컴포넌트: 회사별 채번규칙 목록 자동 로드
- 입고/출고 설정에서 inbound/outbound 키워드로 필터링
- 등록된 채번규칙이 없으면 안내 메시지 표시
2026-04-07 16:59:25 +09:00
SeongHyun Kim
2f675660b4 feat: POP 화면설정 — 채번규칙 필드 추가 + 미구현 항목 표기
- 입고/출고 설정에 채번규칙(numberingRuleId) 텍스트 필드 추가
- 하드코딩 POP에 미연동된 설정 항목에 (미구현) 라벨 추가
- 구현 완료: 배너(ON/OFF+텍스트), 자재투입, 그룹별사진
- 미구현: 바코드, 검사필수, 사진첨부, 포장, PLC, 날짜필터 등
2026-04-07 16:50:17 +09:00
SeongHyun Kim
73199876fd feat: POP 배너를 화면설정에서 관리 가능하도록 연동
PopShell에서 하드코딩 배너 → popConfig.bannerEnabled/bannerText 읽기
- 설정에서 배너 OFF → 배너 숨김
- 설정에서 텍스트 입력 → 해당 텍스트 표시
- 설정 없으면 기존 기본 문구 유지 (폴백)
2026-04-07 16:30:53 +09:00
kjs
57b64653c0 merge: resolve conflicts accepting incoming changes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-07 14:44:17 +09:00
kjs
e8bd4e8136 feat: Add quote management pages for multiple companies
- Introduced new quote management pages for COMPANY_7, COMPANY_8, COMPANY_10, COMPANY_16.
- Implemented functionality for creating, editing, deleting, and viewing quotes.
- Integrated dynamic search filters and data grid for displaying quotes.
- Enhanced user experience with modals for item and customer searches, as well as report generation.

These changes aim to provide comprehensive quote management capabilities tailored for different companies, improving operational efficiency and user interaction.
2026-04-07 14:42:12 +09:00
kjs
69544e16e2 Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-07 14:28:06 +09:00
kjs
8e63c9b481 Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-07 14:21:45 +09:00
DDD1542
b54a23d18f Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-07 14:21:30 +09:00
kjs
c3e973bb1a feat: Implement smart factory schedule management functionality
- Added new API endpoints for managing smart factory schedules, including retrieval, creation, updating, and deletion of schedules.
- Integrated schedule management into the smart factory log controller, enhancing the overall functionality.
- Implemented a scheduler initialization process to automate daily plan generation and scheduled sends.
- Developed a frontend page for monitoring equipment, production, and quality, with real-time data fetching and auto-refresh capabilities.

These changes aim to provide comprehensive scheduling capabilities for smart factory operations, improving efficiency and operational visibility for users.
2026-04-07 14:16:26 +09:00
SeongHyun Kim
2fee120007 feat: 하드코딩 POP - 체크리스트 토글 + 자재투입 키패드 모달
ChecklistRow:
- detail_type='checklist'/'procedure'/'equip_inspection' → 토글 (확인/미확인)
- detail_type='inspection'/'equip_condition'/'production_result' → 숫자 입력
- judgment_criteria(CAT_JC_01/03) 우선 매핑

MaterialInputSection:
- input → MaterialQtyInputRow (큰 터치 버튼) + MaterialQtyKeypad 모달
- 소수점 지원, 기준값 ±20% 범위 표시
- 범위 외 입력 시 주황색 경고 (차단 아님)
- 기준값 빠른 입력 버튼
2026-04-07 12:39:55 +09:00
SeongHyun Kim
4b62817bf5 revert: inspection 관리 페이지 제거 (의존성 부족)
jskim-node에서 가져온 inspection page.tsx가 EDataTable 등 main에 없는
컴포넌트에 의존하여 화면 크래시 발생. 일단 제거하여 안정화.

POP UI judgment_criteria 매핑은 detail_type 폴백으로 동작하므로
판단기준 마스터 등록 화면 없이도 정상 작동함.

inspection 마스터 관리는 추후 EDataTable 등 의존성 함께 가져온 후 재도입.
2026-04-07 12:18:17 +09:00
SeongHyun Kim
b497db9987 chore: Playwright 의존성 제거 + jskim-node에서 inspection 관리 페이지 cherry-pick
- playwright, @playwright/test 제거 (cmux browser만 사용)
- inspection page.tsx: 판단기준(judgment_criteria) Select UI 포함 버전으로 업데이트
2026-04-07 12:10:56 +09:00
SeongHyun Kim
450247026c feat: POP 작업상세 체크리스트 UI를 judgment_criteria 기반으로 매핑
- 백엔드: /api/pop/production/checklist-items/:processId 신규 추가
  process_work_result ⟕ inspection_standard(judgment_criteria) LEFT JOIN으로
  한 번에 반환 (inspection_code 미설정 시 null로 안전)

- 프론트: resolveInputType + normalizeByJudgmentCriteria + normalizeByDetailType
  1순위: judgment_criteria (CAT_JC_01~04) → inspect/numeric_range/ox/select/text
  2순위: detail_type 폴백
    - checklist/equip_inspection → check(토글)
    - inspection/equip_condition/production_result → inspect(숫자 키패드)
    - lookup → input(텍스트)
    - material_input → material(BOM 자재)
  기존 canonical 값은 건드리지 않아 회귀 없음

- fetchData는 전용 API 사용 + 실패 시 기존 dataApi.getTableData로 폴백
2026-04-07 12:06:01 +09:00
kjs
9aa8ca136b feat: Add monitoring pages for equipment, production, and quality
- Introduced three new pages for monitoring: Equipment Monitoring, Production Monitoring, and Quality Monitoring.
- Implemented real-time data fetching and auto-refresh functionality for each monitoring page.
- Enhanced user experience with summary statistics and filtering options for work instructions and inspection data.
- Integrated various UI components for displaying equipment status, production progress, and quality inspection results.

These changes aim to provide comprehensive monitoring capabilities for equipment, production processes, and quality inspections, enhancing operational visibility for users.
2026-04-07 12:02:10 +09:00
DDD1542
77d5b52265 11 2026-04-07 11:52:13 +09:00
SeongHyun Kim
9361b2484a feat: POP 작업상세 체크리스트 터치 UX 개선
- 숫자 키패드 모달 추가 (NumericKeypadModal) — 64x64px 버튼
- input_type별 분기 렌더링:
  * checkbox: 큰 터치 토글 버튼 (확인/미확인) 56px+
  * number: 터치 시 숫자 키패드 모달 (기준치 ±범위 표시)
  * select: 큰 선택 버튼 56px+
  * text: 입력칸 높이 56px로 키움
- MaterialQtyInput 컴포넌트: 자재 투입 수량도 키패드 모달 사용
- 모든 터치 영역 ISA-101 기준 (56px+) 적용
2026-04-07 11:25:01 +09:00
SeongHyun Kim
495a5f034b feat: POP 작업상세 자재투입(material-input) 섹션 UI 구현
- BOM 기반 자재 목록 표시 + 소요량 자동 계산
- 작업자 실제 투입량 입력 (참고 모드 — 유연 입력)
- 기준량 ±20% 범위 검증 + 경고 표시 (차단 아님)
- 투입 이력 테이블 표시
- ISA-101 터치 기준 (입력 56px+, 버튼 56px+)
2026-04-07 10:57:56 +09:00
SeongHyun Kim
21e89922eb feat: POP 회사별 자동 세팅 — 메뉴 활성화 시 레이아웃 자동 생성
- 로그인 시 POP 메뉴 발견 → 해당 회사용 POP 레이아웃 8개 자동 복제
- 템플릿: 공통(*) 우선, COMPANY_7 폴백
- 회사명 자동 치환 (탑씰 → 해당 회사명)
- screen_definitions 공통(*) 화면은 모든 회사 접근 허용
- 프로필 POP 모드 메뉴: POP 메뉴 있는 회사만 표시
- getLayoutPop 개별 자동 복제 (2중 안전망)
2026-04-07 10:46:54 +09:00
kjs
822f9ac35a feat: Implement smart factory log functionality
- Added a new controller for managing smart factory logs, including retrieval and statistics endpoints.
- Integrated smart factory log migration to set up the necessary database structure.
- Enhanced the authentication controller to include user name in log submissions.
- Developed a frontend page for displaying and filtering smart factory logs, accessible only to super admins.
- Implemented API calls for fetching logs and statistics, improving data visibility and management.

These changes aim to provide comprehensive logging capabilities for smart factory activities, enhancing monitoring and analysis for administrators.
2026-04-07 10:35:16 +09:00
kjs
c48dd95045 feat: Enhance EDataTable with group collapsing functionality
- Added support for collapsing and expanding grouped rows in the EDataTable component.
- Implemented a toggle mechanism for group headers, allowing users to hide or show group details.
- Updated the data processing logic to filter out collapsed group rows, improving data visibility and organization.

These changes aim to enhance the user experience by providing a more structured view of grouped data within the table.
2026-04-07 10:16:25 +09:00
kjs
2494a96bad feat: Add image upload functionality to item info page
- Integrated ImageUpload component for handling item images in the item info form.
- Updated the data table to include an image column, allowing for image display.
- Enhanced form fields to support image uploads, improving the user experience for managing item images.

These changes aim to provide a more comprehensive item management experience by allowing users to upload and view images directly within the item info page.
2026-04-07 09:53:30 +09:00
SeongHyun Kim
15029dc58d feat: 리워크 추적 시스템 + 합류 판정 + 버그 12건 수정
리워크 추적:
- 다음 공정 접수 시 리워크 자동 감지 (rework_source_id별 개별 추적)
- 합류 판정: 일반 물량 있으면 마크 해제(합류), 없으면 마크 유지
- 창고 입고 시 마크 자동 해제 (is_rework=NULL, 이력 보존)
- 접수가능 카드: 합류 불가 시 리워크 배지 표시

버그 수정:
- 접수가능 이중 집계 (master+SPLIT 합산 → SPLIT만)
- completed master 재활성화
- 리워크 접수 불가 (자체 input 기반으로 변경)
- master input_qty 덮어쓰기 방지
- 리워크 카드A 접수 시 카드B 사라짐 (개별 전량 판정)
- 진행중/완료 탭 마스터 행 제외
- 리워크 진행중 카드 중복 (마스터 숨김, SPLIT만 표시)
- 리워크 SPLIT에 is_rework 전달
- 재작업 회차 이중 카운트 (마스터만 카운트)
- reworkAvailable이 available 초과 (clamp 처리)
- 불량 수량 키패드 기본값 빈값
- 불량 처리 공정선택 UI 연결

테스트 검증: 전체 시나리오 PASS (집계  흐름  재고  마크 )
2026-04-06 22:27:23 +09:00
kjs
f2ebd6ae1b feat: Implement searchable category combobox in item info page
- Added a new CategoryCombobox component for improved category selection.
- Integrated the combobox into the item info form, replacing the previous select component.
- Enhanced data handling to support multiple category selections with comma separation.
- Updated selling and standard price fields to format numbers correctly.

These changes aim to enhance user experience by providing a more intuitive and flexible category selection method.
2026-04-06 18:24:21 +09:00
kjs
5e9544f31d Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-06 18:09:00 +09:00
DDD1542
00b388c3ab Merge branch 'jskim-node' of https://g.wace.me/jskim/vexplor_dev into jskim-node 2026-04-06 17:23:21 +09:00
DDD1542
19e3f7adc2 feat: 공급업체 및 거래처 관리 페이지에서 거래유형 라벨 수정 및 메인 설정 로직 개선 2026-04-06 17:23:19 +09:00
DDD1542
cd22c5aca2 123 2026-04-06 17:23:09 +09:00
kjs
7daa394aec feat: Enhance BOM management with tree editing and process integration
- Added new state management for tree editing, allowing users to modify BOM structures dynamically.
- Integrated process options fetching from the API to enhance BOM detail management.
- Implemented functionality for handling where-used queries to track BOM item usage across processes.
- Expanded BOM detail structure to include additional fields such as spec, writer, and updated date for better data representation.

These changes aim to improve the user experience in managing BOM data and facilitate better tracking of item usage within processes.
2026-04-06 17:22:26 +09:00
DDD1542
b30066e7e3 짹짹 2026-04-06 17:12:30 +09:00
DDD1542
3d95eb8caa 짹.짹짹 거리면 두들겨 팸다 2026-04-06 17:12:12 +09:00
SeongHyun Kim
e94d298997 feat: 프론트 리워크 추적 — 접수 시 rework_source_id 자동 전달 2026-04-06 16:14:26 +09:00
kjs
cf9f53e4c5 feat: Enhance process and work standard management functionalities
- Updated the processInfoController to allow for flexible use_yn filtering, supporting both "Y" and "N" values along with their corresponding "USE_Y" and "USE_N" mappings.
- Modified the processWorkStandardController to include selected_bom_items in work item details, enabling better management of BOM data.
- Improved the productionPlanService to handle order summaries more effectively, incorporating legacy and detail data through a unified query structure.
- Enhanced the receiving and outbound pages with new filtering and grouping functionalities, improving user experience and data handling.

These changes aim to streamline process management and improve overall functionality across various modules.
2026-04-06 15:50:33 +09:00
SeongHyun Kim
2ff9f04d86 feat: 리워크 SPLIT에 is_rework 전달 + 진행중 리워크 배지 표시
- 리워크 카드 접수 시 SPLIT에 is_rework='Y', rework_source_id 복사
- 진행중/완료 탭에서 리워크 SPLIT에 리워크 배지 표시
- 리워크 마스터만 숨기고 리워크 SPLIT은 표시
2026-04-06 15:44:53 +09:00
SeongHyun Kim
2aa90f9351 fix: 리워크 접수 후 진행중 탭에 카드 중복 — 리워크 마스터 숨김 2026-04-06 15:37:09 +09:00
SeongHyun Kim
684d23cc38 feat: 불량 수량 입력에 숫자 키패드 모달 추가 2026-04-06 15:35:55 +09:00
SeongHyun Kim
fab29b720d fix: 불량 처리 시 공정 선택 UI 연결 — processList를 DefectTypeModal에 전달 2026-04-06 15:00:34 +09:00
SeongHyun Kim
cff733e568 fix: 완료/진행중 탭에서 마스터 행 제외 — SPLIT만 표시 2026-04-06 14:45:43 +09:00
SeongHyun Kim
5c9447a321 fix: 공정실행 카드 표시 3건 수정
- 분할접수 카드 구분: 같은 공정 복수 SPLIT 시 "접수 #1", "접수 #2" 표시
- 재작업 카드 전공정 표시: is_rework='Y' 카드는 공정 필터 무시, 모든 공정에서 표시
- 대기/완료 탭: 선택한 공정 기준으로만 카드 표시 (기존 동작 확인)
- DefectTypeModal: 전공정/지정공정 UI 이미 구현 확인 (수정 불필요)
2026-04-06 14:27:49 +09:00
kjs
b974139abe feat: Enhance item management and inspection functionalities
- Implemented automatic numbering preview for item registration and copying, improving user experience during data entry.
- Updated subcontractor management to filter items based on outsourcing codes, ensuring relevant items are displayed.
- Enhanced BOM management to support keyword-based searching and improved data handling for item inspections, including grouping by item code.

These changes aim to streamline item management processes and improve overall functionality across various modules.
2026-04-06 12:19:42 +09:00
SeongHyun Kim
32f99fba63 feat: 배치(로트) 추적 — batch_id 컬럼 + 카드 진행률 표시
- work_order_process에 batch_id 컬럼 자동 추가 (ALTER TABLE IF NOT EXISTS)
- 접수 시 batch_id 자동 생성 (BATCH-timestamp-random)
- 다음 공정 접수 시 batch_id 전달 가능 (이어받기)
- 완료 카드: 같은 batch_id의 SPLIT 추적으로 정확한 진행률 표시
- 예: seq1만 완료 → ✓○○ (1/3), 전체 완료 → ✓✓✓ (전체 완료)
2026-04-06 12:08:35 +09:00
SeongHyun Kim
32a372a9b3 fix: 완료 카드 공정 표시를 해당 카드의 seq 기준으로 변경
- 이전: 완료 카드는 모든 공정을 ✓로 표시 (전체 완료)
- 이후: 카드의 seq_no 이하만 ✓, 이후는 ○ 표시
- 예: seq1 완료 → ✓○○ (1/3 완료), seq3 완료 → ✓✓✓ (전체 완료)
2026-04-06 11:53:55 +09:00
SeongHyun Kim
78f959c091 fix: 접수가능 이중 집계 버그 수정 + 바텀바 삭제
- available-qty: master+SPLIT 이중 합산 → SPLIT만 합산 (5곳)
- 원인: master에 합산된 good_qty와 SPLIT의 good_qty가 중복 카운트
- PopShell: 하단 footer(copyright/version/긴급연락) 삭제
2026-04-06 11:47:13 +09:00
SeongHyun Kim
ac913990a3 feat: POP 설정 저장소를 screen_layouts_pop으로 전환
- usePopSettings: pop_settings 테이블 대신 screen_layouts_pop.popConfig에서 읽기
- 화면별 독립 설정 (URL→screen_id 자동 매핑)
- PC 설정 페이지: layout-pop API로 저장/조회
- "같은 유형의 모든 화면에 적용" 동기화 체크박스
- pop_settings 400 에러 완전 제거
- 신규 화면 등록: 판매출고(5), 출고유형(6), 공정실행(7), 생산관리(8)
2026-04-06 10:46:37 +09:00