# 电信请求书系统 — 数据流 ## 端到端批处理流程 ### 月次请求书发行流程 ``` 外部系统(BSS/OCS) │ ▼ CSV格式CDR ┌─────────────────────────────────────────────────────────────┐ │ 1. CDR取込 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 15-csv-fb-nolf │ │ 21-csv-fb-lf │ │ │ │ 无LF CSV→固定长 │ │ 含LF CSV→固定长 │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ 2. CDR前処理 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 29 ascii-ebcdic │ │ 35 MERGE │ │ │ │ 编码转换(主机) │ │ 多源CDR合并 │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ 3. CDR校验 & 排序 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 13 字段校验 │ │ 31 重複检测 │ │ │ │ 27 电话号码格式 │ │ 30 状态变化检测 │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ 4. CDR排序 │ │ ┌──────────────────────────────────────────────────┐ │ │ │ 34 SORT CDR按客户/时间排序 │ │ │ └──────────────────────┬───────────────────────────┘ │ │ ▼ │ │ 5. 合同匹配 & 计费 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 02 合同↔CDR(1:N) │ │ 03 线路汇集(N:1)│ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 24 资费表检索 │ │ 25 计费子程序 │ │ │ │ (SEARCH ALL) │ │ (CALL d×rate) │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 05 IF条件判定 │ │ 06 EVALUATE套餐 │ │ │ │ (料金阈值分支) │ │ (套餐类型判定) │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ 6. 费用汇总 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 07 加入者月汇总 │ │ 08 套餐统计 │ │ │ │ (key切 ADD累加) │ │ (COUNT/MIN/MAX) │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ ┌──────────────────────────────────────────────────┐ │ │ │ 32/33 混合处理(1:N+key切) │ │ │ └──────────────────────┬───────────────────────────┘ │ │ ▼ │ │ 7. 请求书生成 & 输出 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 04 请求书编辑 │ │ 10/11/12 分割 │ │ │ │ (报表/HEADING) │ │ (50/25/100分割) │ │ │ └────────┬────────┘ └────────┬────────┘ │ │ │ │ │ │ └──────────┬──────────┘ │ │ ▼ │ │ 8. 事后处理 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 01 请求书对账 │ │ 09/23/26 DB更新 │ │ │ │ (1:1 Invoice↔Pay)│ │ (客户DB更新检索) │ │ │ └─────────────────┘ └─────────────────┘ │ │ │ │ 9. 辅助 │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │ 14 在线照会 │ │ 28 SYSIN参数 │ │ │ │ (CICS模拟) │ │ (批量参数设定) │ │ │ └─────────────────┘ └─────────────────┘ │ └─────────────────────────────────────────────────────────────┘ ▼ 请求书文件(印刷/PDF/Web) ``` ## 文件间关联 以下程序直接读取前段程序的输出文件: | 程序 | 输入来源 | 说明 | |------|---------|------| | 34-sort | ← 15-csv-fb-nolf 或 21-csv-fb-lf | CDR排序需要先取込 | | 02-matching-1-N | ← 34-sort | 合同匹配需要已排序CDR | | 07-keybreak-summary | ← 02-matching-1-N | 汇总需要已匹配的合同↔CDR | | 04-edit-getput | ← 07-keybreak-summary | 请求书输出需要汇总数据 | | 10-divide-50 | ← 04-edit-getput | 分割需要已生成的请求书 | | 16-matching-2stage-1-1 | ← 01-matching-1-1 中间文件 | 二级对账 | | 17-matching-2stage-N-1 | ← 03-matching-N-1 中间文件 | 二级聚合 | | 22-matching-2stage-MN | ← 18~20 中间文件 | 二级套餐匹配 | | 32-mix-1N-samekeybreak | ← 02-matching-1-N 输出 | 混合匹配+key切 | | 33-mix-1N-diffkeybreak | ← 02-matching-1-N 输出 | 混合匹配+key切 | ## 数据示例 ### CDR 数据 (CSV) ``` CDR0000001,8613800138001,8613900999001,20250601083000,000000120,01 CDR0000002,8613800138001,8613700777001,20250601084500,000000045,01 CDR0000003,8613900999001,8613800138001,20250601090000,000000300,02 ``` ### 请求书数据 ``` INV2025001 CUST000001 202506 000050000 0 INV2025002 CUST000002 202506 000120000 1 INV2025003 CUST000003 202506 000030000 2 ``` ### 合同数据 ``` CTR000001 CUST000001 P01 20240101 20261231 CTR000002 CUST000002 P02 20240601 20261231 CTR000003 CUST000003 P03 20250101 20261231 ```