acquire-core-x/db/schema.d/30-rc.sql
forge-bot bec83c721e Phase 2b: 11개 모듈 전량 실동작 (333 서비스, 전서버 부팅)
- 10개 모듈 추가/확장(au py rc st lg cl mm vl mg cm), 각 30 서비스 = 330 + tmsrv
- build.sh 자동발견으로 11 모듈서버 + dbio 라이브러리 23 + 배치 22 빌드
- schema.d 11파일 → 75 테이블, 모듈별 disjoint
- 부팅 리소스 규명: fs.mqueue.queues_max=8192(330큐>256), NDRX_MSGSIZEMAX 16000·
  MSGMAX 50(큐당 5.6MB→0.8MB), msgqueue ulimit 2GB → 전 12서버 runok
- 검증: xadmin psc 333 AVAIL, 매입체인 XA 커밋, prepared_xacts=0

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-19 09:58:39 +00:00

69 lines
3.1 KiB
SQL

-- rc 모듈 (대사) 상세 테이블. Prefix 30 (00-base 다음, 35-st 이전에 로드).
-- ECPG 서버/배치가 참조하는 대사 로그/예외/차이/경보/요약 테이블 + 시퀀스.
-- ---------------------------------------------------------------------------
-- 대사 로그 (rc_match_log) - 서비스별 대사 결과 1행
-- ---------------------------------------------------------------------------
CREATE SEQUENCE IF NOT EXISTS rc_match_seq;
CREATE TABLE IF NOT EXISTS rc_match_log (
match_id BIGINT PRIMARY KEY,
purchase_id BIGINT NOT NULL,
match_type TEXT NOT NULL, -- APPR_ACQ/ACQ_DEP/3WAY/PARTIAL/MANUAL/RETURN/DELAY/TOLERANCE
amount BIGINT NOT NULL DEFAULT 0,
status TEXT NOT NULL DEFAULT 'MATCHED',-- MATCHED/HOLD/EXCEPTION/RELEASED/CONFIRMED/ROLLBACK
biz_date DATE NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now(),
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- ---------------------------------------------------------------------------
-- 대사 예외 (rc_exception)
-- ---------------------------------------------------------------------------
CREATE SEQUENCE IF NOT EXISTS rc_exc_seq;
CREATE TABLE IF NOT EXISTS rc_exception (
exc_id BIGINT PRIMARY KEY,
purchase_id BIGINT NOT NULL,
reason TEXT NOT NULL DEFAULT '',
biz_date DATE NOT NULL,
resolved BOOLEAN NOT NULL DEFAULT false,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- ---------------------------------------------------------------------------
-- 대사 차이 (rc_diff) - 금액/건수 차이 리포트 라인
-- ---------------------------------------------------------------------------
CREATE SEQUENCE IF NOT EXISTS rc_diff_seq;
CREATE TABLE IF NOT EXISTS rc_diff (
diff_id BIGINT PRIMARY KEY,
purchase_id BIGINT NOT NULL DEFAULT 0,
expected_amt BIGINT NOT NULL DEFAULT 0,
actual_amt BIGINT NOT NULL DEFAULT 0,
diff_amt BIGINT NOT NULL DEFAULT 0,
diff_kind TEXT NOT NULL DEFAULT 'AMT', -- AMT / CNT
biz_date DATE NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- ---------------------------------------------------------------------------
-- 대사 경보 (rc_alert)
-- ---------------------------------------------------------------------------
CREATE SEQUENCE IF NOT EXISTS rc_alert_seq;
CREATE TABLE IF NOT EXISTS rc_alert (
alert_id BIGINT PRIMARY KEY,
purchase_id BIGINT NOT NULL DEFAULT 0,
lvl TEXT NOT NULL DEFAULT 'INFO',
message TEXT NOT NULL DEFAULT '',
biz_date DATE NOT NULL,
created_at TIMESTAMPTZ NOT NULL DEFAULT now()
);
-- ---------------------------------------------------------------------------
-- 대사 요약 (rc_summary) - 영업일 1행 (배치/RC_SUMMARY가 upsert)
-- ---------------------------------------------------------------------------
CREATE TABLE IF NOT EXISTS rc_summary (
biz_date DATE PRIMARY KEY,
matched_cnt BIGINT NOT NULL DEFAULT 0,
unmatched_cnt BIGINT NOT NULL DEFAULT 0,
gross_amount BIGINT NOT NULL DEFAULT 0,
updated_at TIMESTAMPTZ NOT NULL DEFAULT now()
);