Commit Graph

39 Commits

Author SHA1 Message Date
kjs
c8994b49fc Refactor Outbound and Work Instruction Controllers for Source Table Updates
- Updated the outbound and outsourcing outbound controllers to replace `source_type` with `source_table` for improved clarity and consistency in data handling.
- Enhanced the work instruction controller to include automatic migration for the `work_instruction_info` table, allowing for better management of work instruction notes.
- Implemented new logic to handle material input types in the work instruction detail modal, supporting both automatic and manual input methods.
- Added new routes for retrieving work instruction information, facilitating better data retrieval for editing purposes.

(TASK: ERP-node-095, ERP-node-096)
2026-05-21 15:03:09 +09:00
kjs
6731ca4183 대진 오류사항 일부 수정 2026-05-19 11:57:05 +09:00
kjs
fa9f5451f6 Add Customer Contact Routes and Enhance User Management
- Introduced new routes for customer contact management, allowing for the retrieval of customer contact information.
- Updated the user management functionality to include validation for the hire date, ensuring proper date format and handling of null values.
- Enhanced the save user functionality to accommodate the new hire date field, maintaining existing values when not provided.

(TASK: ERP-XXX)
2026-05-18 16:13:29 +09:00
kmh
f2b3762f8c Filter POP defect-types to 공정검사 master only
- Drop item_inspection_info branch in getDefectTypes
- Always source from defect_standard_mng with inspection_type containing 공정검사 (CAT_MMEBA4LJ_UFJ9)
- Fix is_active filter to category code CAT_DA_01 ('사용') — old 'Y' literal returned zero rows

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-30 12:31:19 +09:00
kmh
854366453c Bundle pending POP work: production / inventory inout / inbound
진행 중이던 POP 관련 변경사항을 한 번에 묶어 커밋.

- backend
  - popProductionController: 생산공정 처리/접수 로직 대폭 갱신 (+663)
  - receivingController, popInventoryRoutes, adminService 보강
  - popInOutDetailController / popInOutHistoryController 신규
- frontend (POP)
  - 생산 화면 (DefectTypeModal / ProcessWork / WorkOrderList / main page)
    COMPANY_7/8/9/10/16/29/30 동기화
  - 입출고 이력·디테일 화면 신규 (inventory/page, inventory/inout-manage,
    InOutDetailModal) 7개사
  - COMPANY_7 입고 화면 (InboundCartPage / ProductionInbound /
    inbound/production/page) 보강
  - COMPANY_7 재고조정 화면 (inventory/adjust) UI 골격 신규
- frontend lib
  - popInOutDetail / popInOutHistory API 클라이언트 신규

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-29 18:54:54 +09:00
kmh
9ed9915c98 refactor(pop): keep mhkim WIP popProductionController over gbpark merge
gbpark-node(ee8f274f) 머지 시 popProductionController.ts 충돌. 작업 중이던
mhkim 워킹트리 변경분(앞공정 양품 헬퍼/work_instruction 헤더 헬퍼/wi_*
커스텀 템플릿 우선 처리/CTE 기반 getProcessList 등)을 통째로 채택.
2026-04-27 16:49:56 +09:00
DDD1542
ee8f274feb 매미킴 2026-04-27 16:15:42 +09:00
kjs
5f4838cb19 feat(pop): implement process list and result retrieval endpoints
- Added `getProcessList` to retrieve the list of work order processes along with their results, grouped by process ID.
- Implemented `getProcessResult` to fetch details of a specific work order process result by its ID.
- Updated `popProductionRoutes` to enable the new endpoints for accessing process data.

These additions enhance the functionality of the POP production module, allowing for better tracking and management of work order processes and their results.
2026-04-24 18:48:43 +09:00
kjs
5518288f18 refactor(pop): update popProductionController and routes
- Changed the `copyChecklistToSplit` function to be exported for better accessibility.
- Temporarily commented out the `getProcessList` and `getProcessResult` routes in `popProductionRoutes` due to missing implementations, with a note for future restoration.
- Updated the loop in `salesOrderBulkService` to use `Array.from()` for better clarity in iterating over entries.

These changes aim to improve code organization and maintainability while addressing current implementation gaps.
2026-04-24 18:23: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
kjs
b0cc0fce9f refactor: Update work instruction queries to use work_instruction_id for consistency
- Changed references from work_instruction_no to work_instruction_id in the popProductionController and workInstructionController for improved consistency and clarity.
- Updated SQL queries to ensure proper data handling and integrity by aligning with the new identifier.
- These changes aim to streamline the data retrieval process and enhance overall code maintainability across multiple company implementations.
2026-04-14 12:09:06 +09:00
SeongHyun Kim
8c23f48996 feat: POP 재고관리 전면 구현 — 재고조정/재고이동/다중품목 공정
재고조정:
- fullBleed 좌우 분할, 숫자키패드 모달, 위치불일치 QR스캔+모달
- 임시저장 cart_items 상태관리 (saved/cancelled/confirmed)
- 조정이력 별도 페이지, DateRangePicker 통일
- popInventoryController 11개 API (adjust-batch, stock-detail, locations 등)

재고이동:
- 창고 탭: 탭 버튼 패턴 + flat 리스트 (아코디언 제거)
- 공정 탭: 공정명/설비 필터 모달 (작업지시번호 탭 제거)
- move-batch API: 창고→창고 + 공정→창고 (source_type 확장)
- 품목 이력 바텀시트 (transaction_type별 색상)

다중품목 공정실행:
- syncWorkInstructions LIMIT 1 제거 → detail 전체 순회
- batch_id 기반 품목별 공정 분리
- WorkOrderList/ProcessWork 품목 구분 표시

기타:
- PopShell fullBleed 모드 추가
- alert() → 토스트 메시지 교체
- MonitoringSettings import 수정
2026-04-10 17:17:23 +09:00
SeongHyun Kim
cdea504d90 fix: POP sync detail fallback + 사이드바 카드 UI
- sync: header에 routing 없으면 detail에서 자동 가져오기 (PC→POP 연동 수정)
- sync: header routing/qty/item_id 자동 보정 (detail → header 동기화)
- 사이드바: 체크리스트/자재투입 카드 형태 UI로 변경
2026-04-09 18:09:30 +09:00
SeongHyun Kim
327b4d01c2 feat: POP 시연 준비 — 5개 화면 + 버그 수정 + 자동 창고 매칭
Some checks failed
Build and Push Images / build-and-push (push) Failing after 49s
- 구매입고: 검사기준 API 수정, 검사결과 DB 저장, 검사 미완료 확정 차단
- 판매출고: 재고 부족 사전 검증, 수주상세 ship_qty 반영, 에러 메시지 개선
- 공정실행: seq_no 비순차 대응(3곳), 자재투입 자동 창고 매칭 재고차감, 불필요 버튼 제거
- 검사관리+입출고관리: 신규 화면 (quality, inventory)
- 공통: ConfirmModal 커스텀 모달 (native confirm 대체)
2026-04-09 14:38:28 +09:00
SeongHyun Kim
bfac350ed4 feat: POP 시연 준비 — 5개 화면 + 버그 수정 + 재고검증 2026-04-09 14:28:57 +09:00
SeongHyun Kim
630b135254 fix: BOM 자재 input_qty 합산 매핑 키 수정 (item_code 기준)
process_work_result.detail_content에는 item_code(R_PLAST_024)가 저장되는데
기존 코드는 child_item_id(UUID)로 매칭하려 해서 항상 0 반환되던 버그.

매칭 키를 child_item_code로 변경 → 정상 합산 확인 (5+30=35)
2026-04-07 12:45:39 +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
SeongHyun Kim
3929ec17f2 fix: BOM 자재 조회 시 기존 투입량 합산 반영
- getBomMaterials에서 input_qty: 0 하드코딩 → process_work_result에서 실제 투입량 SUM
- child_item_id별 투입 합산으로 정확한 잔여량 표시
2026-04-07 11:07:19 +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
SeongHyun Kim
6bdcdec9c3 feat: 리워크 원점 복귀 추적 — 원본 공정 도달 시 마크 해제
- accept-process: rework_source_id 전달 시 원본 seq_no와 비교
  - 현재 seq < 원본 seq → is_rework='Y' 유지 (마크 표시)
  - 현재 seq >= 원본 seq → is_rework 해제 (합류, 마크 없음)
- save-result 응답에 rework_source_id 포함 (프론트 추적용)
- accept-process 응답에 rework_source_id 포함
2026-04-06 16:09:21 +09:00
SeongHyun Kim
d0238d26c6 fix: 리워크 마스터 전량접수 시 completed로 변경 (in_progress → completed) 2026-04-06 15:50:48 +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
fb3ecff02d fix: newTotalInput 변수 스코프 오류 수정 2026-04-06 15:29:41 +09:00
SeongHyun Kim
e21c672f09 fix: 리워크 접수 버그 2건 수정
- 리워크 전량 접수 시 status→in_progress (재접수 방지)
- 리워크 접수 시 master input_qty 덮어쓰기 방지
- 재고 중복: location_code 차이 (NULL vs "01") — 정상 동작이지만 주의 필요
2026-04-06 15:11:30 +09:00
SeongHyun Kim
d1d823d5ca fix: 재작업 카드 접수 — 자체 input_qty 기반 접수 가능 (앞공정 무관) 2026-04-06 14:07:11 +09:00
SeongHyun Kim
507264a718 fix: completed master 재활성화 — 새 양품 들어오면 acceptable로 복귀 2026-04-06 13:54:29 +09:00
SeongHyun Kim
b8c9d94a73 feat: 재작업 카드를 지정 공정에 생성
- target_process_code가 있으면 해당 공정의 마스터를 찾아서 재작업 카드 생성
- 없으면 기존처럼 같은 공정에 생성
- 지정 공정의 seq_no, process_code, routing_detail_id 사용
2026-04-06 13:47:51 +09:00
SeongHyun Kim
c8f24d60f3 fix: batch_id 컬럼 없을 때 fallback + 트랜잭션 안전 처리
- batch_id 컬럼 존재 여부를 사전 확인 후 INSERT 쿼리 분기
- 트랜잭션 내 try-catch fallback 대신 조건부 컬럼 방식으로 변경
- 배포 DB에 ALTER TABLE 권한 없어도 정상 동작
2026-04-06 12:20:09 +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
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
a04ddd15ec feat: POP 기능 병합 (pop-screen → main, PC 무변경 46건)
- POP 생산: 재고 관리, 재작업 이력, BOM 자재투입 기능 추가
- POP 설정: 설정 시스템 + 관리 페이지 (/pop/admin)
- POP 화면: 버그 수정 + 설정 연동 + 다음공정 활성화 수정
- PC 코드 무변경 (보류 6건: app.ts, 출고/입고/작업지시 컨트롤러, 레이아웃)
2026-04-05 17:45:33 +09:00
SeongHyun Kim
9b7b88ff7c feat: POP 하드코딩 화면 추가 (PC 코드 무변경 재병합)
Some checks failed
Build and Push Images / build-and-push (push) Failing after 1m30s
- POP 전용 39개 파일 추가 (홈/입고/출고/생산)
- 백엔드 INSERT에 id gen_random_uuid 추가 (5개 파일)
- POP 전용 API 7개 추가 (창고/위치/입고/동기화)
- PC 코드 구조/순서/로직 변경 없음 (AppLayout, UserDropdown 미수정)
2026-04-02 17:39:42 +09:00
SeongHyun Kim
d001f82565 feat: pop-card-list-v2 설정 패널 MES 간소화 + Core Binding + 내 작업 표시 모드
MES 고정 구조에 맞게 설정 패널을 간소화하고, 작업상세 내장 모달과
작업자 기반 카드 필터링 기능을 추가한다.
[설정 패널 간소화]
- 3탭(데이터/디자인/동작) -> 2탭(정보/동작)으로 축소
- "정보" 탭: 데이터 소스, 카드 구성, 클릭 동작을 읽기 전용 요약으로 표시
- "동작" 탭: cardClickAction 선택(none/modal-open/built-in-work-detail)
  + 내 작업 표시 + 고급 설정(필터 전 숨김, 기본 표시 수) 유지
- PopWorkDetailConfigPanel을 카드 설정에서 분리
  (작업상세 컴포넌트 자체 설정 패널에서 관리)
[Core Binding 내장 모달]
- cardClickAction="built-in-work-detail" 시 내부 Dialog로
  PopWorkDetail 직접 렌더링, parentRow를 prop으로 전달
- LazyPopWorkDetail dynamic import로 성능 최적화
- in_progress 상태 카드만 상세 모달 열림
[카드 열 수 선택]
- 정보 탭 상단에 1열/2열/3열/4열 버튼 UI 추가
- gridColumns 설정 즉시 반영
[내 작업 표시 3모드]
- 전체 보기: 모든 카드 동등 표시
- 우선 표시: 내 카드 상단 + 다른 카드 비활성화(기존 동작)
- 내 작업만: worker 컬럼 기준 내 카드만 표시, 나머지 숨김
- ownerFilterMode("priority"|"only") 타입 추가, 컬럼 선택 드롭다운
  제거하고 worker 고정 토글로 단순화
2026-03-19 16:09:11 +09:00
SeongHyun Kim
5d12bef5e5 fix: MES 체크리스트 자동 복사 + 구조적 버그 3건 수정
분할 접수/재작업 카드 생성 시 체크리스트가 복사되지 않던 문제를 해결하고,
공정 흐름 모달과 카드 클릭 이벤트 격리 버그를 수정한다.
[체크리스트 자동 복사]
- copyChecklistToSplit 공통 헬퍼 함수 추출
  (createWorkProcesses/acceptProcess/saveResult 3곳에서 통합 사용)
- routing_detail_id 존재 시: process_work_item 템플릿에서 복사
- routing_detail_id 부재 시: 마스터 process_work_result에서 구조만 복사
[ChecklistItem 렌더링 수정]
- 레거시 detail_type(inspect_numeric/inspect_ox 등)을 정규화하여
  detail_type=inspect + input_type 자동 파싱으로 InspectRouter 라우팅
- info 타입 렌더러 추가
[공정 흐름 모달 이벤트 격리]
- Dialog 래퍼에 onClick/onPointerDown stopPropagation 추가
  (모달 닫기 시 부모 카드 onClick 전파 차단)
[카드 클릭 진행 탭 제한]
- handleCardSelect에 VIRTUAL_SUB_STATUS 코드 가드 추가
  (in_progress가 아닌 카드는 작업상세 모달 열림 차단)
- 재작업 카드 포함 접수가능 탭에서 상세 진입 방지
2026-03-18 18:26:54 +09:00
SeongHyun Kim
9d164d08af feat: BLOCK MES-HARDEN Phase 0~3 + 공정 흐름 스트립 필/칩 UI 개편
MES 불량 처분 체계(disposition 3종)를 구현하고, 공정 카드의 흐름
스트립을 현재 공정 중심 필/칩 윈도우로 전면 재설계한다.
[Phase 0: 기반 안정화]
- confirmResult: SUM 버그 수정 + 마스터 캐스케이드 완료 판정
- checkAndCompleteWorkInstruction: 헬퍼 함수 추출
  (saveResult/confirmResult 양쪽에서 work_instruction 상태 갱신)
- saveResult: 초과 생산 에러 -> 경고 로그로 변경
[Phase 1: UI 정리]
- DISPOSITION_OPTIONS: 5종 -> 3종(폐기/재작업/특채)
- 카드 수동 완료 버튼: in_progress + 생산 있음 + 미완료 시 표시
  (__manualComplete -> confirmResult 호출)
[Phase 2: 양품 계산 서버화]
- concession_qty/is_rework/rework_source_id DB 컬럼 추가
- saveResult: defect_detail disposition별 서버 양품 계산
  (addGood = addProduction - addDefect, addConcession 분리)
- prevGoodQty 5곳: SUM(good_qty) + SUM(concession_qty) 통일
- 프론트 특채 표시: MesInProgressMetrics/MesCompletedMetrics
[Phase 3: 재작업 카드]
- saveResult: disposition=rework 시 동일 공정에 분할행 자동 INSERT
  (is_rework='Y', rework_source_id 연결, status='acceptable')
- 프론트: amber "재작업" 배지 + MesAcceptableMetrics 재작업 전용 UI
- 재작업 카드 접수가능 수량 버그 수정 (마스터 qty -> input_qty)
[공정 흐름 스트립 UI 개편]
- ProcessFlowStrip: 바 형태 -> 필/칩 5슬롯 윈도우
  (+N/이전/현재/다음/+N, 현재 공정 항상 중앙)
- 색상: 지나온=emerald(완료)/slate, 현재=primary,
  완료=emerald, 대기=muted, 남은=amber
2026-03-18 16:38:22 +09:00
SeongHyun Kim
fba5390f5a fix: MES 다중작업자 분할접수 4대 연쇄 버그 근본 해결
분할 카드 접수량 오표시(800), 모달 접수량 0, 실적등록 미반영,
접수취소 실패의 근본 원인을 분석하고 4건의 수정을 적용한다.
근본 원인: acceptProcess에서 마스터를 in_progress로 변경 ->
프론트 isCurrent가 코팅(acceptable)을 잡음 -> 분할 카드 미생성
-> 마스터ID로 API 호출하여 모든 후속 동작이 실패하는 연쇄 구조.
[Fix A] acceptProcess: 마스터 상태를 in_progress로 변경하는 로직 제거
  - 마스터는 항상 acceptable 유지, completed로만 전환
[Fix B] buildProcessSteps: isCurrent 결정 시 활성 분할 행 우선
  - in_progress 등 비완료 분할이 있는 공정을 최우선 선택
  - 분할 카드(__splitProcessId)가 정상 생성되도록 보장
[Fix C] applySubFilterAndDuplicate: 분할 카드 데이터 보호
  - __splitProcessId가 있는 카드의 __process_* 필드를
    마스터 SUM 집계값으로 덮어쓰지 않음
[Fix D] saveResult: 마스터 행 직접 실적등록 차단
  - 분할 행이 존재하는 마스터에 실적 등록 시 400 에러 반환
2026-03-18 13:57:14 +09:00
SeongHyun Kim
20fbe85c74 feat: BLOCK MES-REWORK - mes-process-card 전용 카드 + batch_done 워크플로우 + 실적 관리 강화
MES 카드를 CSS Grid 다중 셀 방식에서 Flexbox 기반 단일 전용 카드(mes-process-card)로
전환하고, batch_done 상태를 도입하여 부분 확정 후 추가접수 워크플로우를 구현한다.
[mes-process-card 전용 카드]
- CardCellType "mes-process-card" 신규: 상태별 좌측 보더+배경, 공정 흐름 스트립, 클릭 모달
- MesAcceptableMetrics / MesInProgressMetrics / MesCompletedMetrics 서브 컴포넌트
- 워크플로우 기반 activeBtn 결정 로직 (상태+잔여량 조합으로 버튼 1개만 표시)
- 하드코딩 취소 버튼 제거, DB 설정 "접수취소" 라벨 인터셉트로 통합
[batch_done 워크플로우]
- confirmResult API: 부분 확정 시 status = 'batch_done' (진행 탭 숨김 + 접수가능 탭 유지)
- acceptProcess API: batch_done -> in_progress 복귀 (추가접수)
- 카드 복제 로직에 batch_done 포함 (잔여량 있으면 접수가능 탭에 클론 카드)
- status 매핑에 batch_done 추가 (semantic: active)
[실적 관리 강화]
- PopWorkDetailComponent: 실적 입력 UI 전면 구현 (차수별 등록, 누적 실적, 이력 표시)
- 모든 실적 저장 시 process_completed 이벤트 발행 (카드 리스트 즉시 갱신)
- 전량접수+전량생산 시 자동 완료 (status=completed, result_status=confirmed)
[버그 수정]
- 서브 필터 변경 시 __process_* 필드 미갱신 -> processFields 재주입
- cancelAccept SQL inconsistent types -> boolean 파라미터 분리
- 접수취소 라벨 매핑 누락 -> taskPreset 조건 확장
2026-03-17 21:36:43 +09:00
SeongHyun Kim
06c52b422f feat: BLOCK DETAIL Phase 4 + 안정화 - 그룹별 타이머, 터치 최적화 UI, DB 저장 버그 수정
pop-work-detail 컴포넌트에 그룹별 타이머 시스템과 터치 최적화 UI를 추가하고,
체크리스트 결과가 DB에 저장되지 않던 버그를 수정하여 안정화를 완료한다.
[그룹별 타이머]
- group-timer API 신규: start/pause/resume/complete 액션 (popProductionController)
- process_work_result에 group_started_at/paused_at/total_paused_time/completed_at 활용
- GroupTimerHeader UI: 순수 작업시간 + 경과시간 이중 표시
- 첫 그룹 "시작" 시 work_order_process.started_at 자동 기록 (공정 시작 자동 감지)
- 공정 완료 시 actual_work_time을 그룹 타이머 합산으로 백엔드 자동 계산
[터치 최적화 UI]
- 12개 영역 전면 스케일업: 버튼 h-11~h-12, 입력 h-11, 체크박스 h-6 w-6
- 사이드바 w-[180px], InfoBar text-sm, 최소 터치 영역 40~44px 확보
- 산업 현장 태블릿 터치 사용 최적화
[DB 저장 버그 수정]
- saveResultValue/handleQuantityRegister: execute-action task 형식 수정
  (fixedValue + lookupMode:"manual" + manualItemField/manualPkColumn:"id")
- 원인: 백엔드가 __cart_row_key를 찾는데 프론트에서 id만 전송하여 lookup 실패
[디자이너 설정 확장]
- displayMode: list/step 전환 설정 추가
- PopWorkDetailConfig: 표시 모드 Select 드롭다운
- types.ts: PopWorkDetailConfig 인터페이스 displayMode 추가
- PopCardListV2Component: parentRow.__processFlow__ 전달 보강
2026-03-17 09:32:59 +09:00
SeongHyun Kim
c067c37390 feat: BLOCK DETAIL Phase 2 - 생산 공정 관리 백엔드 API 파이프라인
작업지시 생성 시 공정+체크리스트 일괄 생성과 공정별 타이머 제어를
위한 백엔드 API 파이프라인을 구축한다.
[신규] popProductionController.ts
- createWorkProcesses: POST /api/pop/production/create-work-processes
  - item_routing_detail + process_mng JOIN으로 공정 목록 조회
  - work_order_process INSERT (공정별)
  - process_work_result INSERT SELECT (마스터 스냅샷 복사)
  - 중복 호출 방지 (409 Conflict)
  - 1 트랜잭션 처리
- controlTimer: POST /api/pop/production/timer
  - start: started_at 설정 + status waiting->in_progress (멱등)
  - pause: paused_at 설정
  - resume: total_paused_time 누적 + paused_at 초기화
[신규] popProductionRoutes.ts
- authenticateToken 미들웨어 전역 적용
- 2개 POST 엔드포인트 등록
[수정] app.ts
- popProductionRoutes import + /api/pop/production 라우트 등록
2026-03-13 14:19:54 +09:00