Files

36 - 金额计算程序 (TA-TELAMTCAL)

概要

基于标准批处理框架架构的电信金额计算程序。 读取 CDR 明细,按套餐费率计算通话费用,生成课金明细。

架构

TA-TELAMTCAL-BEGIN  (业务前处理)
  ├── 0100-INIT-TARIFF   — 费率表初始化
  ├── INFO_PARAM         — 参数读取(COMMIT-COUNT)
  └── INFO_CHKPT         — Checkpoint信息取得

TA-TELAMTCAL-MAIN   (业务主处理)
  ├── 0100-INIT-TARIFF   — 费率表加载
  ├── TXN-CTRL           — 事务管理(BEGIN/END)
  ├── 1000-RATE-CALC     — 金额计算
  │   ├── 1100-VOICE-CHARGE  — 语音通话计费
  │   ├── 1200-SMS-CHARGE    — SMS计费
  │   └── 1300-DATA-CHARGE   — 数据通信计费
  ├── 2000-DB-OPERATION  — 课金明细登録
  │   └── 2100-DML-INSERT    — INSERT (重複→UPDATE)
  └── CHKPT-SAVE         — Checkpoint登録

费率表

プラン 基本料金 秒単価 無料分(秒) 超過単価 ローミング SMS データ
P01 基本 3000 20 6000 20 50 10 30
P02 商用 8000 10 30000 15 30 5 20
P03 無制限 20000 5 120000 5 20 3 10
P04 データ専用 5000 0 0 0 0 0 20
P05 格安 1000 30 1800 30 150 100 50

测试数据(8件)

CDR 発信者 着信者 時間 種別 ローミング
CDR0000001 8613800138001 8613900999001 20250601 083000 120 01音声 N
CDR0000002 8613800138001 8613700777001 20250601 084500 045 01音声 N
CDR0000003 8613800138001 8613600666001 20250601 090000 300 01音声 N
CDR0000004 8613900210033 8613800138001 20250601 100000 600 01音声 N
CDR0000005 8613900210033 8613800138001 20250601 110000 001 02SMS N
CDR0000006 8613700550066 8613900210033 20250601 120000 1200 01音声 Y
CDR0000007 8613800138001 8613600666001 20250601 130000 900 03データ N
CDR0000008 8613700550066 8613500555001 20250601 140000 1800 01音声 N

実行

cd 36-billing-calc && bash run.sh