영업관리 wace 컬럼 정합성 강화 + project_mgmt 도입
- project_mgmt 테이블 신규(75컬럼/89건) — wace 운영 동일 schema 추출. 판매·매출관리 메인 테이블 - 판매·매출 SQL을 contract_item 기반 → project_mgmt 메인 + sales_registration LEFT JOIN으로 전면 재작성 * 요청납기 COALESCE(CI.due_date, T.due_date, CM.due_date) 패턴 * 환종/serial_no는 sales_registration 우선, contract_item_serial 집계 fallback * 판매상태 wace 로직 한글 라벨(미판매/완판/분할판매) 동적 계산 * 매출관리는 shippingDateRequired EXISTS 필터로 출하 등록된 프로젝트만 표시 - 주문서: order_date 매핑 CONTRACT_DATE → ORDER_DATE 정정, 원화총액·고객사요청사항 SQL 추가 - 견적/주문/판매 page.tsx에서 wace 블록 주석 컬럼 제거(제품구분/국내·해외/접수일/반납사유 등 14개) - 환종 raw 코드 → contract_currency_name 한글명 바인딩으로 정정 Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,102 @@
|
||||
-- ============================================================
|
||||
-- project_mgmt — 판매·매출관리 메인 테이블
|
||||
-- ----------------------------------------------------------------
|
||||
-- 출처: wace_plm 운영 DB (211.115.91.141:11133/waceplm), 75 컬럼 / 89건
|
||||
-- 추출: information_schema.columns 직접 조회 (2026-05-07)
|
||||
-- 역할: contract_item이 수주 확정되면 라인당 1행이 project_mgmt에 생성됨
|
||||
-- PROJECT_NO 형식: [R/S/T 등]-[CT/BS/AC/DS/...]-[YYMMDD]-[NNN]
|
||||
-- ============================================================
|
||||
|
||||
CREATE TABLE IF NOT EXISTS project_mgmt (
|
||||
objid VARCHAR NOT NULL,
|
||||
contract_objid VARCHAR NOT NULL,
|
||||
category_cd VARCHAR,
|
||||
customer_objid VARCHAR,
|
||||
product VARCHAR,
|
||||
customer_project_name VARCHAR,
|
||||
status_cd VARCHAR,
|
||||
due_date VARCHAR,
|
||||
location VARCHAR,
|
||||
setup VARCHAR,
|
||||
facility VARCHAR,
|
||||
facility_qty VARCHAR,
|
||||
facility_type VARCHAR,
|
||||
facility_depth VARCHAR,
|
||||
production_no VARCHAR,
|
||||
bus_cal_cd VARCHAR,
|
||||
category1_cd VARCHAR,
|
||||
chg_user_id VARCHAR,
|
||||
plan_date VARCHAR,
|
||||
complete_date VARCHAR,
|
||||
result_cd VARCHAR,
|
||||
project_no VARCHAR,
|
||||
pm_user_id VARCHAR,
|
||||
contract_price VARCHAR,
|
||||
regdate TIMESTAMP WITHOUT TIME ZONE,
|
||||
writer VARCHAR,
|
||||
contract_no VARCHAR,
|
||||
customer_equip_name VARCHAR,
|
||||
req_del_date VARCHAR,
|
||||
contract_del_date VARCHAR,
|
||||
contract_company VARCHAR,
|
||||
contract_date VARCHAR,
|
||||
po_no VARCHAR,
|
||||
manufacture_plant VARCHAR,
|
||||
contract_result VARCHAR,
|
||||
project_name VARCHAR,
|
||||
spec_user_id VARCHAR,
|
||||
spec_plan_date VARCHAR,
|
||||
spec_comp_date VARCHAR,
|
||||
spec_result_cd VARCHAR,
|
||||
est_plan_date VARCHAR,
|
||||
est_user_id VARCHAR,
|
||||
est_comp_date VARCHAR,
|
||||
est_result_cd VARCHAR,
|
||||
area_cd VARCHAR,
|
||||
contract_price_currency VARCHAR,
|
||||
contract_currency VARCHAR,
|
||||
mechanical_type VARCHAR,
|
||||
is_temp VARCHAR,
|
||||
overhaul_order VARCHAR,
|
||||
part_objid VARCHAR,
|
||||
part_no VARCHAR(100),
|
||||
part_name VARCHAR(200),
|
||||
quantity VARCHAR(50),
|
||||
ebom_status VARCHAR(50),
|
||||
mbom_status VARCHAR(50),
|
||||
receiving_rate VARCHAR(10),
|
||||
production_team_12 VARCHAR(50),
|
||||
production_team_3 VARCHAR(50),
|
||||
sales_status VARCHAR,
|
||||
bom_report_objid VARCHAR(100),
|
||||
mbom_version INTEGER DEFAULT 0,
|
||||
mbom_regdate TIMESTAMP WITHOUT TIME ZONE,
|
||||
mbom_writer VARCHAR(100),
|
||||
sales_deadline_date VARCHAR(10),
|
||||
source_bom_type VARCHAR(20),
|
||||
source_ebom_objid VARCHAR(64),
|
||||
source_mbom_objid VARCHAR(64),
|
||||
tax_type VARCHAR(20),
|
||||
tax_invoice_date VARCHAR(10),
|
||||
export_decl_no VARCHAR(100),
|
||||
loading_date VARCHAR(10),
|
||||
sales_slip_date VARCHAR(8),
|
||||
sales_slip_menu_sq INTEGER,
|
||||
contract_item_objid VARCHAR(50),
|
||||
CONSTRAINT project_mgmt_pkey PRIMARY KEY (objid)
|
||||
);
|
||||
|
||||
CREATE INDEX IF NOT EXISTS idx_project_mgmt_contract_objid ON project_mgmt(contract_objid);
|
||||
CREATE INDEX IF NOT EXISTS idx_project_mgmt_contract_part ON project_mgmt(contract_objid, part_objid);
|
||||
CREATE INDEX IF NOT EXISTS idx_project_mgmt_project_no ON project_mgmt(project_no);
|
||||
CREATE INDEX IF NOT EXISTS idx_project_mgmt_customer ON project_mgmt(customer_objid);
|
||||
CREATE INDEX IF NOT EXISTS idx_project_mgmt_regdate ON project_mgmt(regdate DESC);
|
||||
|
||||
COMMENT ON TABLE project_mgmt IS '프로젝트(수주 라인 단위) 헤더 — 판매·매출관리 메인';
|
||||
COMMENT ON COLUMN project_mgmt.objid IS 'PK (wace 동일)';
|
||||
COMMENT ON COLUMN project_mgmt.project_no IS '프로젝트번호 (예: R-CT-260323-001) — 화면 표시 식별자';
|
||||
COMMENT ON COLUMN project_mgmt.contract_objid IS 'contract_mgmt.objid 참조';
|
||||
COMMENT ON COLUMN project_mgmt.contract_item_objid IS 'contract_item.objid 참조';
|
||||
COMMENT ON COLUMN project_mgmt.part_objid IS 'item_info.id 참조';
|
||||
COMMENT ON COLUMN project_mgmt.sales_status IS '판매상태 (NULL/등록/완료 등)';
|
||||
COMMENT ON COLUMN project_mgmt.sales_deadline_date IS '매출마감일 (YYYY-MM-DD)';
|
||||
Reference in New Issue
Block a user