김보곤
c48ad810b0
fix: [inspection] 절곡 재공품 공정명 매칭 수정
...
- resolveInspectionProcessType: 정확 매칭 → str_contains 변경
- '절곡 (재공품-가이드레일)' 등 자식 공정도 'bending'으로 인식
2026-03-21 21:21:39 +09:00
김보곤
488d592149
fix: [inspection] STOCK 작업지시 검사항목 API에서 해당 부품만 반환
...
- buildBendingInspectionItems: work_order.options.bending_info 참조 추가
- isStockProduction이면 bendingInfo에 있는 섹션만 포함
- 가이드레일만 있으면 하단마감재/케이스/연기차단재 제외
- getInspectionConfig 응답에 is_stock_production 플래그 추가
2026-03-21 21:21:39 +09:00
김보곤
68c0494673
fix: [bending] STOCK 작업지시 단일부품 필터링 지원
...
- buildStockBendingInfoFromLot()에 isStockProduction 플래그 추가
- fillStockBendingInfo()에서 work_order_items 부품명 파싱하여 stockPartFilter 저장
- parseStockPartKey()로 품목명에서 부품키 추출 (본체/C형/D형/마감재 등)
- 기존 작업지시 194~196 stockPartFilter 백필 완료
2026-03-21 21:21:39 +09:00
김보곤
89dd347ff4
fix: [bending] STOCK 작업지시 bending_info DB 영구 저장
...
- show() 동적 생성 후 saveQuietly()로 DB 영구 저장
- index() worker_screen 모드에서도 누락된 bending_info 자동 보충
- fillStockBendingInfo() 공통 메서드로 추출
- 기존 작업지시 194~196 bending_info 백필 완료
2026-03-21 21:21:39 +09:00
김보곤
a24de6c35e
fix: [작업일지] STOCK 작업지시 bending_info API fallback 추가
...
WorkOrderService::show()에서 STOCK 작업지시의 options에
bending_info가 없을 때 수주의 bending_lot에서 동적 생성.
React 작업일지 모달에서도 정상 표시되도록 수정.
2026-03-21 21:21:39 +09:00
김보곤
760efe656f
fix: [재고생산] STOCK 작업지시에 bending_info 누락 수정
...
재고생산(STOCK) 주문은 order_nodes가 없어 BendingInfoBuilder가
null 반환 → work_order.options=NULL → 절곡 작업일지 데이터 미표시.
order.options.bending_lot에서 간이 bending_info를 생성하여 주입.
2026-03-21 21:21:39 +09:00
김보곤
f3bdafc32e
feat: [작업지시] 부모 공정 → 자식 공정 자동 감지
...
- store(): 부모 공정으로 WO 생성 시 아이템의 process_items 매핑으로 자식 공정 자동 설정
- index(): 부모 공정 필터 시 자식 공정 WO도 포함
- 하위 호환: 아이템 매칭 실패 시 원래 process_id 유지
2026-03-21 21:21:39 +09:00
김보곤
a071997b42
feat: [ItemMaster] ItemPage 생성 시 동일 item_type 중복 방지 로직 추가
...
- ItemPageService::store()에서 동일 tenant_id + item_type + is_active 조합 중복 검증
- ItemPageStoreRequest에 Rule::unique 검증 추가 (tenant_id 범위 한정)
- 에러 메시지 키 추가: error.item_page_duplicate_item_type (ko/en)
2026-03-21 21:21:39 +09:00
28e41e6367
merge: develop + kkk 브랜치 병합 (code/lot_no 분리 + origin 신규 기능 통합)
2026-03-21 17:35:26 +09:00
7cd0aab884
refactor: [절곡] bending_items code를 'BD' 단일값으로 통일
...
- bending_items.code: prod+spec(CP,RS 등) → 'BD' (절곡품 공통 접두사)
- bending_models 패턴(GR/SB/BB)과 동일 레벨로 통일
- import 스크립트 3개 + BendingCodeService.resolveItem 수정
- 마이그레이션 SQL 업데이트
- DB 266건 업데이트 완료
2026-03-21 15:29:05 +09:00
김보곤
1577d028dc
feat: [공정관리] parent_id 트리 구조 도입 — 마이그레이션, 모델 관계, 2depth 검증
2026-03-21 15:23:54 +09:00
d6591acdff
refactor: [절곡] code/lot_no 분리 — 코드 체계와 LOT 번호 분리
...
- bending_items.code: LOT번호(CP260319) → 코드체계(CP)만 저장
- bending_items.lot_no: 기존 code 값 이관 (LOT 번호)
- bending_models.code: 전체코드(GR-KSS01-벽면형-SUS) → 접두사(GR)만 저장
- bending_models.lot_no: 기존 code 값 이관
- unique 제약: code → lot_no로 이동
- BendingCodeService.resolveItem: LIKE → 정확 매칭
- 검색: lot_no 필드 추가
- Swagger 문서 업데이트
2026-03-21 15:06:55 +09:00
김보곤
d9a2cad063
feat: [bending] 기초자료 복사 시 R2 이미지 파일도 함께 복사
2026-03-21 11:51:54 +09:00
김보곤
a71dab791a
feat: [bending] 기초자료 복사 API 추가 — 같은 분류의 다음 번호 자동 채번
2026-03-21 11:49:06 +09:00
김보곤
e4f698654b
feat: [bending] 수정 시 code 변경 허용 + 중복 코드 검사 (422 반환)
2026-03-21 11:29:56 +09:00
김보곤
e1d0c2ef44
fix: [bending] 기초자료 코드 항상 .001부터 시작 — .001이 대표(표준) 번호
2026-03-21 11:22:00 +09:00
김보곤
980b00cc5a
fix: [bending] 기초자료 변형코드 3자리(.001~.999) 변경 — 표준형상은 BD-XX, 변형은 BD-XX.nnn
2026-03-21 11:16:37 +09:00
김보곤
d9be03824e
fix: [bending] 기초자료 코드 BD-XX.nn 형식으로 변경 (재공품 BD-XX-길이와 구분)
2026-03-21 11:09:46 +09:00
김보곤
f583e947db
feat: [bending] 품목코드 BD-XX-nn 자동 채번 + code 수정 불가 + prefixes API
2026-03-21 11:01:29 +09:00
김보곤
e402b03452
feat: [공정관리] 공정 복제 API 추가
2026-03-21 08:38:47 +09:00
김보곤
da1ea6d3b4
feat: [작업지시/작업자화면] items.item 관계 로드, 부서 필터 개선, BD 재질 자동 매칭, 전개도 폭 매칭
2026-03-21 07:59:53 +09:00
김보곤
244a1f7a24
feat: [재고] 적정재고 관리 기능 추가 (max_stock + over 상태 + update API)
2026-03-21 07:59:53 +09:00
김보곤
5860262d87
feat: [입고/수입검사] 검사완료 상태 추가, 관리자 삭제 권한, 재고 연동 개선
2026-03-21 07:59:53 +09:00
6c67d80e25
feat: [workorder] 절곡 작업일지 bending_images R2 presigned URL 반환
...
- getWorkLog()에 bending_images 맵 추가 (22개 정적 이미지)
- buildBendingImageUrls() 메서드 추가
- Storage import 추가
- document->data null 체크 추가
- stats에 draft 상태를 reception_count에 포함
2026-03-20 23:04:28 +09:00
78ff01d6b1
fix: [생산지시] 보조공정 품목 미배정 문제 수정
...
- 부자재(감기샤프트, 각파이프 등)가 "재고생산"(보조공정) 매핑으로 미배정 생성되던 문제
- 보조공정(is_auxiliary) 및 미매핑(none) 품목을 메인 공정으로 자동 병합
- 메인 공정 중 품목 수가 가장 많은 공정에 배정
2026-03-20 17:08:37 +09:00
4c9526d9d5
fix: [quality] 부적합 접수 통계에 draft 상태 합산
2026-03-20 17:04:14 +09:00
1767944a14
fix: [document] formatTemplateForReact 클로저에 $methodCodes 누락 수정
...
- use ($methodCodes) 추가하여 검사방식 한글 변환 정상화
2026-03-20 17:04:14 +09:00
2df43187bf
fix: [inspection] 완료된 검사 수정 차단
...
- InspectionService.update()에 완료 상태 검증 추가
- 완료된 검사 수정 시 400 에러 반환
- error.php에 cannot_modify_completed 메시지 추가
2026-03-20 17:04:14 +09:00
1231ee6302
feat: [document] 검사 템플릿 섹션에 image_url(presigned URL) 추가
...
- DocumentService: 섹션 데이터에 image_url 반환
- QmsLotAuditService: 동일하게 image_url 반환
- file_id 또는 image_path 기반으로 R2 presigned URL 생성
2026-03-20 12:37:23 +09:00
김보곤
786bb20d86
feat: [finance] 계정별원장 API 서비스 보강 (카드거래 상세, 분리전표 필터링)
2026-03-20 08:35:07 +09:00
fc673be0c1
fix: [pricing] 단가 목록/상세에서 품목코드·품목명 미표시 수정
...
- Price 모델에 item() BelongsTo 관계 추가
- index/show에서 item:id,code,name,item_category eager load
2026-03-19 23:58:02 +09:00
bb4d9d8fbd
fix: [QA] 수주 날짜 필터 COALESCE + 배차 상태 자동 전환 + 견적 날짜 캐스트 수정
...
- OrderService: 날짜 필터를 COALESCE(received_at, created_at)로 NULL 안전 처리
- VehicleDispatchService: update() 시 freight_cost_type 유무로 status 자동 결정
- Quote 모델: date 캐스트를 date:Y-m-d로 변경 (UTC 직렬화 방지)
2026-03-19 23:57:56 +09:00
6952ae9667
fix: [stat] 출하 집계 shipping_cost 컬럼 참조 오류 수정
...
- shipments.shipping_cost 컬럼이 3/18 배차 분리 시 삭제되었으나 집계 코드 미수정
- shipment_vehicle_dispatches.options->total_amount JOIN으로 변경
2026-03-19 21:09:49 +09:00
강영보
c29090a0b8
feat: [bending] 절곡품 전용 테이블 분리 API
...
- bending_items 전용 테이블 생성 (items.options → 정규 컬럼 승격)
- bending_models 전용 테이블 생성 (가이드레일/케이스/하단마감재 통합)
- bending_data JSON 통합 (별도 테이블 → bending_items.bending_data 컬럼)
- bending_item_mappings 테이블 DROP (bending_items.code에 흡수)
- BendingItemService/BendingCodeService → BendingItem 모델 전환
- GuiderailModelService component 이미지 자동 복사
- ItemsFileController bending_items/bending_models 폴백 지원
- Swagger 스키마 업데이트
2026-03-19 20:00:18 +09:00
유병철
623298dd82
fix: [dashboard] 생산현황 shipments.shipping_cost 컬럼 미존재 에러 수정
...
- shipments 테이블에 shipping_cost 컬럼이 없어서 500 에러 발생
- 컬럼 추가 전까지 금액 0 고정, 건수만 집계
- TODO: shipping_cost 컬럼 추가 시 금액 집계 복원
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-19 19:33:25 +09:00
김보곤
d22850a9e3
fix: [finance] 계정별원장 홈택스 분개 UNION 제거 (일반전표만 조회)
2026-03-19 17:36:51 +09:00
김보곤
01c9d5fca0
feat: [loan] 대시보드 API에 경조사비 요약 데이터 추가
...
- condolence_expenses 테이블에서 경조사비 통계를 조회하여 dashboard 응답에 포함
- condolence_summary: total_count, total_amount, congratulation_amount, condolence_amount
- 대시보드 날짜 필터(start_date, end_date)를 event_date 기준으로 적용
2026-03-19 17:18:55 +09:00
김보곤
abb024f0bd
feat: [finance] 경조사비 관리 API 구현
...
- Model: CondolenceExpense (BelongsToTenant, Auditable, SoftDeletes)
- Service: CRUD + summary 통계 (total_amount 자동 계산)
- Controller: 6개 엔드포인트 (목록/등록/상세/수정/삭제/통계)
- FormRequest: Store/Update 검증 규칙 분리
- Route: /api/v1/condolence-expenses
- Migration: updated_by, deleted_by 컬럼 추가
2026-03-19 16:02:19 +09:00
김보곤
c68cf5dfcf
feat: [finance] 손익계산서 월별 조회 API + 리팩토링
...
- GET /api/v1/income-statement/monthly?year=2026&unit=won 추가
- buildSections 공통 로직 분리
- getAccountCodes, getFiscalYear 헬퍼 분리
2026-03-19 12:49:04 +09:00
김보곤
ea5591c812
fix: [finance] 손익계산서 기수 수정 (1기=2025년, 코드브릿지엑스 설립 기준)
2026-03-19 12:33:06 +09:00
김보곤
a07b15066d
feat: [finance] 계정별원장·손익계산서 API 추가
...
- GET /api/v1/account-ledger: 계정별원장 조회 (이월잔액, 월별소계/누계)
- GET /api/v1/income-statement: 손익계산서 조회 (당기/전기 비교, 단위변환)
- KIS 표준 계정과목 sub_category 기반 자동 매핑
- 일반전표 + 홈택스 분개 UNION ALL 통합 집계
2026-03-19 11:43:24 +09:00
김보곤
6e50fbd1fa
feat: [material] 부적합관리 결재 연동 구현
...
- Migration: approval_id FK 추가
- Model: approval() BelongsTo 관계
- Service: submitForApproval() 결재상신 (결재문서+결재선 생성)
- ApprovalService: 승인→CLOSED, 반려/회수→approval_id 해제
- Controller: POST /{id}/submit-approval 엔드포인트
- Route: submit-approval 라우트 등록
2026-03-19 09:03:12 +09:00
김보곤
847c60b03d
feat: [material] 부적합관리 API Phase 1-A 구현
...
- Migration: nonconforming_reports, nonconforming_report_items 테이블
- Model: NonconformingReport, NonconformingReportItem (관계, cast, scope)
- FormRequest: Store/Update 검증 (items 배열 포함)
- Service: CRUD + 채번(NC-YYYYMMDD-NNN) + 비용 자동 계산 + 상태 전이
- Controller: REST 7개 엔드포인트 (목록/통계/상세/등록/수정/삭제/상태변경)
- Route: /api/v1/material/nonconforming-reports
- i18n: 부적합관리 에러 메시지 (ko)
2026-03-19 08:39:24 +09:00
d8a57f71c6
fix: [quality] 출하 상세에 order_id 추가 + 검사완료 건 수정 차단
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 23:15:57 +09:00
b3869cfadb
fix: [production-order] 생산지시 상세 개선 - 수량을 개소수로 변경, BOM 공정그룹 한글 라벨 매핑
...
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 23:15:55 +09:00
f70ec4155e
feat: [items] 품목 목록 API에 공정 배정 정보(assigned_processes) 응답 추가
...
- exclude_process_id 파라미터 시 품목 제외 대신 배정 공정 정보 포함하여 응답
- 프론트에서 다른 공정 배정 품목을 disabled 처리하도록 변경
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 23:15:54 +09:00
6563d977ee
refactor: [shipment] 배차 정보를 shipment_vehicle_dispatches로 일원화
...
- shipments 테이블에서 배차 관련 컬럼 8개 삭제 (vehicle_no, driver_name 등)
- shipping 전환 시 배차 정보를 vehicle_dispatches에 저장
- delivery_method ENUM → VARCHAR 변경 (common_codes 기반)
- VehicleDispatchService에 수주/작성자 관계 로딩 추가
- Swagger delivery_method enum 제약 제거
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com >
2026-03-18 23:15:47 +09:00
김보곤
5e52293454
fix: [stock] work_orders에도 deleted_by 컬럼 없는 오류 수정
2026-03-18 22:24:23 +09:00
김보곤
6497a7ab8f
fix: [stock] work_order_items에 deleted_by 컬럼 없는 오류 수정
2026-03-18 22:23:21 +09:00
김보곤
d8b8df6f47
fix: [stock] 재고생산 삭제 허용 (IN_PROGRESS + 작업지시 함께 정리)
...
- STOCK 타입: IN_PROGRESS 상태에서도 삭제 허용 (IN_PRODUCTION부터 불가)
- STOCK 타입: 작업지시(workOrders)가 있어도 삭제 허용
- cleanupStockWorkOrders(): 작업지시 soft delete + 재고예약 해제
- destroy(), bulkDestroy() 양쪽 적용
- 일반 수주(ORDER)는 기존 규칙 유지
2026-03-18 22:21:04 +09:00