Files
wace_rps/docs/migration/sales/04-revenue-verify.md
T
hjjeong d23b305990 매출관리 그리드 V1 컬럼 9개 보강 + getRevenueList SQL JOIN 확장 + wace 1:1 검증
- getRevenueList SQL: contract_item / user_info / comm_code(CC_RES) / attach_file_info LATERAL 4개 JOIN 추가. receipt_date / payment_type / request_date / customer_request / order_status_name / manager_name / incoterms / cu01_cnt SELECT 보강
- RevenueListRow 타입: 9개 신규 필드 보강
- GRID_COLUMNS 9개 추가: 접수일/유무상/요청납기/고객사요청사항/수주상태/주문서첨부/출하방법/담당자/인도조건 (wace 35/35 일치)
- docs/migration/sales/04-revenue-verify.md, scripts/verify-revenue.sql

영업 4개 메뉴 (견적·주문·판매·매출) 모두 구조적 검증 1차 종결.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 09:42:21 +09:00

3.8 KiB

04. 매출관리 wace 1:1 검증

작성: 2026-05-11 / 사이클: 구조적 검증 4차 (매출관리 메뉴) 원본: wace_plm/WebContent/WEB-INF/view/salesmgmt/salesMgmt/revenueMgmtList.jsp 대상: app/(main)/COMPANY_16/sales/revenue/page.tsx 핵심 필터: EXISTS (sales_registration WHERE shipping_date IS NOT NULL) — 출하등록된 프로젝트만

1. 그리드 컬럼 — wace 활성 35개 vs RPS 35개 (보강 후 일치)

# wace title RPS GRID_COLUMNS 상태
1 프로젝트번호 (frozen) project_no
2 주문유형 order_type_name
3 매출마감 sales_deadline_date
4 발주일 order_date
5 발주번호 po_no
6 고객사 customer
7 제품구분 product_type_name
8 품명 product_name
9 수량 sales_quantity
10 단가 sales_unit_price
11 공급가액 sales_supply_price
12 부가세 sales_vat
13 총액 sales_total_amount
14 원화총액 sales_total_amount_krw
15 출하일 shipping_date
16 국내/해외 nation_name
17 환종 sales_currency_name
18 환율 sales_exchange_rate
19 S/N serial_no
20 분할S/N split_serial_no (placeholder)
21 품번 product_no
22 과세구분 tax_type
23 세금계산서발행일 tax_invoice_date
24 수출신고필증신고번호 export_decl_no
25 선적일자 loading_date
26 거래명세서 has_transaction_statement (placeholder)
27 접수일 receipt_date (신규)
28 유/무상 payment_type_name (신규)
29 요청납기 request_date (신규)
30 고객사요청사항 customer_request (신규)
31 수주상태 order_status_name (신규)
32 주문서첨부 cu01_cnt (clip) (신규, attach_file_info LATERAL JOIN)
33 출하방법 shipping_method (신규)
34 담당자 manager_name (신규)
35 인도조건 incoterms (신규)

2. SQL 보강

-- 추가된 JOIN
LEFT JOIN contract_item CI ON CI.objid = T.contract_item_objid AND CI.status='ACTIVE'  -- request_date COALESCE 위해
LEFT JOIN user_info U_MGR  ON U_MGR.user_id = SR.manager_user_id                       -- manager_name
LEFT JOIN comm_code CC_RES ON CC_RES.code_id = T.contract_result AND CC_RES.status='active'  -- order_status_name
LEFT JOIN (
  SELECT target_objid, COUNT(*) FILTER (WHERE doc_type IN ('FTC_ORDER','ORDER')) AS cu01_cnt
  FROM attach_file_info WHERE UPPER(status)='ACTIVE' GROUP BY target_objid
) AF ON AF.target_objid = T.contract_objid                                              -- cu01_cnt

3. 갭 처리

# 처리
R1 그리드 9개 누락 본 커밋에서 추가
R2 request_date / order_status_name / manager_name / cu01_cnt SELECT 누락 JOIN 추가
R3 분할S/N / 거래명세서 실데이터 🟡 백로그
R4 매출관리 그리드 운영 0건 (sales_registration.shipping_date IS NOT NULL 0건) 🟢 데이터 이슈 — 출하등록 흐름 신설 시 자연 해소

4. 자동 검증 결과 (scripts/verify-revenue.sql)

운영 sales_registration.shipping_date 0건이라 매출관리 본 필터로는 0 rows. SQL 컬럼 정합성은 필터 해제 샘플로 검증 — 9개 신규 컬럼 모두 정상 반환.

5. 결론

매출관리 메뉴 wace 운영 화면과 1:1 정합 (35/35 컬럼). 영업 4개 메뉴 (견적·주문·판매·매출) 모두 구조적 검증 1차 종결.