芯片管理平台数据统计(六)

M2M 写卡文件同步

各系统向芯片管理平台提交数据

各系统包括联调平台、广和通等

请求 URL:
请求方式:
  • POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
access_tokenheaderString用户 token
pageurlint当前页
counturlint每页数据条数
startTimeurlString开始时间
endTimeurlString结束时间
返回:
参数名必选类型说明
eidString 客户 ID
oldMissdnString 原号码
newMissdnString 新号码
statusString 状态 0:失败 ;1:成功
provinceString 新号码对应省公司编码
timeString 申请时间 yyyyMMddHHmmss
systemNameString 新号码的信息来自于哪个系统(cmiot、pboss)
返回示例
{
    "code": 200, 
    "data": [
        {
            "oldMissdn": "1064848990619", 
            "newMissdn": "1064848990620", 
            "eid": "151810114A1040003517", 
            "province": "531", 
            "systemName": "pboss", 
            "time": "20191012095406", 
            "status": "0"
        }, 
        {
            "oldMissdn": "1440158770998", 
            "newMissdn": "1440158771408", 
            "eid": "151810114A1040009185", 
            "province": "531", 
            "systemName": "pboss", 
            "time": "20191011202729", 
            "status": "0"
        }, 
		...
    ], 
    "cnmessage": "操作成功"
}
备注

芯片管理平台存储各系统和抽取自身数据

写卡记录表(当月数据存储)

write_card_records
为减少数据读写压力,只存储当月写卡数据,在次月初将该表数据全部迁移到历史表。

字段名类型长度说明
idbigint id
eidvarchar 客户 ID
old_missdnvarchar 原号码
new_missdnvarchar 新号码
statusvarchar 状态 0:失败 ;1:成功
provincevarchar 新号码对应省公司编码
timevarchar 申请时间 yyyyMMddHHmmss
create_timedatetime 创建时间
update_timedatetime 更新时间
data_fromint 数据来源 (1 芯片管理平台、2 联调平台)
data_integrityint 数据是否完整(0 不完整、1 完整)
not_integrity_reasonvarchar 数据不完整原因,多个原因,逗号分隔
systemNamevarchar 写卡服务系统(cmiot、pboss)
建表 sql
DROP TABLE IF EXISTS write_card_records;
CREATE TABLE write_card_records  (
	id bigint(20) NOT NULL AUTO_INCREMENT,
	eid varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户ID',
	old_missdn varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原号码',
	new_missdn varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新号码',
	status varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态 0:失败 ;1:成功',
	province varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新号码对应省公司编码',
	time varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '申请时间yyyyMMddHHmmss',
	create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
	update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
	data_from int(11)  NULL DEFAULT 0 COMMENT '数据来源(1芯片管理平台、2联调平台)',
	data_integrity int(11)  NULL DEFAULT 0 COMMENT '数据是否完整(0不完整、1完整)',
	not_integrity_reason varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据不完整原因,多个原因,逗号分隔',
	systemName varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '写卡服务系统(cmiot、pboss)',
	PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
写卡记录历史表(历史数据存储)

存储除当月外所有历史写卡数据
write_card_records_history

字段名类型长度说明
idbigint id
eidvarchar 客户 ID
old_missdnvarchar 原号码
new_missdnvarchar 新号码
statusvarchar 状态 0:失败 ;1:成功
provincevarchar 新号码对应省公司编码
timevarchar 申请时间 yyyyMMddHHmmss
create_timedatetime 创建时间
update_timedatetime 更新时间
data_fromint 数据来源 (1 芯片管理平台、2 联调平台)
data_integrityint 数据是否完整(0 不完整、1 完整)
not_integrity_reasonvarchar 数据不完整原因,多个原因,逗号分隔
systemNamevarchar 写卡服务系统(cmiot、pboss)
建表 sql
DROP TABLE IF EXISTS write_card_records_history;
CREATE TABLE write_card_records_history  (
	id bigint(20) NOT NULL AUTO_INCREMENT,
	eid varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '客户ID',
	old_missdn varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '原号码',
	new_missdn varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新号码',
	status varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '状态 0:失败 ;1:成功',
	province varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '新号码对应省公司编码',
	time varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '申请时间yyyyMMddHHmmss',
	create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
	update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
	data_from int(11)  NULL DEFAULT 0 COMMENT '数据来源(1芯片管理平台、2联调平台)',
	data_integrity int(11)  NULL DEFAULT 0 COMMENT '数据是否完整(0不完整、1完整)',
	not_integrity_reason varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '数据不完整原因,多个原因,逗号分隔',
	systemName varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '写卡服务系统(cmiot、pboss)',
	PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;
写卡文件生成记录表

存储每天生成的写卡文件记录
write_card_post_file

字段名类型长度说明
idbigint id
file_namevarchar 写卡文件名称
start_timevarchar 开始时间 yyyyMMddHHmmss
end_timevarchar 结束时间 yyyyMMddHHmmss
phone_sourcevarchar 写卡类型(cmiot,pboss)
success_countvarchar 成功数量
create_timedatetime 创建时间
update_timedatetime 更新时间
建表 sql
DROP TABLE IF EXISTS write_card_post_file;
CREATE TABLE write_card_post_file (
  id int(6) NOT NULL AUTO_INCREMENT,
  file_name varchar(200) NOT NULL COMMENT '写卡文件名称',
  start_time varchar(50) NULL DEFAULT NULL COMMENT '开始时间yyyyMMddHHmmss',
  end_time varchar(50) NULL DEFAULT NULL COMMENT '结束时间yyyyMMddHHmmss',
  phone_source varchar(5) NOT NULL COMMENT '写卡类型(cmiot,pboss)',
  success_count int(8) DEFAULT '0' COMMENT '成功数量',
  create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
  update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
  PRIMARY KEY (id)
) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COMMENT='写卡文件生成记录表';
cmiot 码号获取省公司编号

phone_number_info_from_ctboss 码号和省公司对应表
province_id_contrast 本地省公司 id 与 ctboss 省公司 id 对照表

写卡数据归属

写卡数据归属 CMIOT 还是 PBOSS 不是根据码号的来源,而是根据调用的写卡服务归属来区分,
CMIOT 和 PBOSS 分别生成一份写卡详单数据文件。

graph BT
id1[联调平台]-->|调用写卡平台写卡|id2[杭研];
id3[广和通]-->|调用写卡平台写卡|id2;
id4[芯片管理平台]-->|调用写卡平台写卡|id2;
id4-->|调用写卡平台写卡|id5[cmiot写卡平台];
id2-->|最终归属|id6[PBOSS];
id5-->|最终归属|id7[CMIOT];

数据传输过程

graph BT
id1[联调平台2]-->|响应芯片管理平台请求向其传输数据|id2[芯片管理平台1];
id101[写卡平台3]-->|响应芯片管理平台请求向其传输数据|id2;
subgraph 芯片管理平台
id2-->|分析联调平台写卡数据|id3[写卡记录表];
id2-->|分析写卡平台写卡数据|id3[写卡记录表];
id2-->|分析自身写卡数据|id3;
id3-->|下月初将写卡记录表数据转移|id4[写卡记录历史表];

end

id3-->|txt文件汇总cmiot最终数据|id7[cmiot写卡文件详单];
id7-->|推送文件|id5[ftp服务];
id3-->|txt文件汇总pboss最终数据|id8[pboss写卡文件详单];
id8-->|推送文件|id5[ftp服务];
id5-->|等待cmiot获取|id6[cmiot];

传输 txt 文件

文件名

M2M_01_014_20190313000000_20190313235959.txt
意为:
第一版命名规则 _ 系统第 14 次导出数据 _ 数据的开始时间 20190313000000_ 结束时间 20190313235959.txt

文件内容
文件头

20190101101022-20190228010203|CMIOT|3
EID|OLDMISSDN|NEWMISSDN|STATUS|PROVINCE|TIME

说明:
第一行为 文件说明行,以“|” 分割,分别是周期信息 yyyyMMddHHmmss-yyyyMMddHHmmss,CMIOT/PBOSS 区分字段 , 本文件中包含的记录数量 ,例如:上述文件为 2019 年 1 月 1 日至 2019 年 2 月 28 日 基于 CMIOT 空写的 3 条记录。
第二行为 表头信息,表示后续数据的对应字段, 表头信息顺序暂时不做固化 ,请解析处理 ,方便后续扩充。
从第三行 开始为实际数据,每行代表一条写卡数据。

文件体

文件体各字段以”|”分割,行最后无分隔符”|”

字段说明
参数名类型长度说明
EIDString20客户 ID
OLDMISSDNString13原号码
NEWMISSDNString13新号码
STATUSString1状态 0:失败 ;1:成功
PROVINCEString3新号码对应省公司编码
TIMEString14申请时间 yyyyMMddHHmmss

M2M 月对账文件

传输 txt 文件

文件名

M2M_WCDZ_201903_199_20190401120012_001_00F1.txt
意为:
M2M_ 写卡业务对账 _2019 年 3 月份 _ 共有 199 条数据 _ 生成时间是 2019 年 4 月 1 日 12 点 0 分 12 秒 _ 第一版文件结构 _ 随机串.txt。

文件内容
文件头

M2M 月对账文件为文本文件,不含文件头。

文件体

文件体各字段以”|”分割,行最后无分隔符”|”

字段说明
参数名必选类型说明
STARTTIMEString 开始时间
ENDTIMEString 结束时间
PROVINCE_IDString 省 ID
TYPE_COUNTString 拆分阶梯数(固定为 3)
SUCCESSString 成功总数
TYPE1String 1 阶梯成功数
TYPE2String 2 阶梯成功数
TYPE3String 3 阶梯成功数
SUM_PAY_NOTAXString 总金额不含税
SUM_PAYString 总金额含税
TYPE1_PAY_NOTAXString 1 阶梯不含税
TYPE1_PAYString 1 阶梯含税
TYPE2_PAY_NOTAXString 2 阶梯不含税
TYPE2_PAYString 2 阶梯含税
TYPE3_PAY_NOTAXString 3 阶梯不含税
TYPE3_PAYString 3 阶梯含税

对账单表(存储 cmiot 和芯片管理平台生成的月账单)

statement_of_account

字段名类型长度说明
idint id
start_timevarchar 开始时间
end_timevarchar 结束时间
province_idvarchar 省 ID
type_countvarchar 拆分阶梯数(固定为 3)
successvarchar 成功总数
type1varchar 1 阶梯成功数
type2varchar 2 阶梯成功数
type3varchar 3 阶梯成功数
sum_pay_notaxvarchar 总金额不含税
sum_payvarchar 总金额含税
type1_pay_notaxvarchar 1 阶梯不含税
type1_payvarchar 1 阶梯含税
type2_pay_notaxvarchar 2 阶梯不含税
type2_payvarchar 2 阶梯含税
type3_pay_notaxvarchar 3 阶梯不含税
type3_payvarchar 3 阶梯含税
data_fromint 数据来源(1cmiot、2 芯片管理平台)
statement_of_account_idint 对应的月对账单表 id
resultint 对账结果(0 不一致,1 一致)
create_timedatetime 创建时间
update_timedatetime 更新时间

建表 sql

DROP TABLE IF EXISTS statement_of_account;
CREATE TABLE statement_of_account  (
	id int(11) NOT NULL AUTO_INCREMENT,
	start_time varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '开始时间',
	end_time varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '结束时间',
	province_id varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '省 ID',
	type_count varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '拆分阶梯数(固定为 3)',
	success varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '成功总数',
	type1 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '1 阶梯成功数',
	type2 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '2 阶梯成功数',
	type3 varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '3 阶梯成功数',
	sum_pay_notax varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '总金额不含税',
	sum_pay varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '总金额含税',
	type1_pay_notax varchar(50)  NULL DEFAULT 0 COMMENT '1 阶梯不含税',
	type1_pay varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '1 阶梯含税',
	type2_pay_notax varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '2 阶梯不含税',
		type2_pay varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '2 阶梯含税',
	type3_pay_notax varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '3 阶梯不含税',
	type3_pay varchar(50) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '3 阶梯含税',
	data_from int(11)  NULL DEFAULT 0 COMMENT '数据来源(1cmiot、2 芯片管理平台)',
	statement_of_account_id int(11)  NULL DEFAULT 0 COMMENT '对应的月对账单表 id',
	result int(11)  NULL DEFAULT 0 COMMENT '对账结果(0 不一致,1 一致)',
	create_time datetime(0) NULL DEFAULT NULL COMMENT '创建时间',
	update_time datetime(0) NULL DEFAULT NULL COMMENT '更新时间',
	PRIMARY KEY (id) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 1 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci ROW_FORMAT = Dynamic;

数据传输过程

graph BT
id1[cmiot]-->|生成对账文件|id2[ftp服务];
id2-->|等待芯片管理平台获取对账文件|id3[芯片管理平台];
subgraph 芯片管理平台
id3-->|解析对账文件|id4[月对账单表];
id3-->|获取指定时间段写卡数据汇总|id5[写卡记录表];
id3-->|获取指定时间段写卡数据汇总|id6[写卡历史记录表];
id5-->|写卡数据汇总|id7[芯片管理平台对账单];
id6-->|写卡数据汇总|id7;
id7-->|芯片管理平台对账单|id4
id4-->|对比cmiot和芯片管理平台对应的对账单|id8[对账单对比结果]
end

省代码

省公司编码
全网平台000
北京移动100
广东移动200
上海移动210
天津移动220
重庆移动230
辽宁移动240
江苏移动250
湖北移动270
四川移动280
陕西移动290
河北移动311
山西移动351
河南移动371
吉林移动431
黑龙江移动451
内蒙移动471
山东移动531
安徽移动551
浙江移动571
福建移动591
湖南移动731
广西移动771
江西移动791
贵州移动851
云南移动871
西藏移动891
海南移动898
甘肃移动931
宁夏移动951
青海移动971
新疆移动991
政企公司001
物联网公司002

对账单总数据对比

请求 URL:
请求方式:
  • POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
currentUserIdurlint当前用户的 id
startTimeurlString开始时间
endTimeurlString结束时间
返回:
参数名必选类型说明
chipSystemTotalString 芯片管理平台总数
cardToolTotalString 新联调平台总数
airWriteTotalString 写卡平台总数
allTotalString 所有平台总数
cmiotTotalString cmiot 总数
查询 sql
select sum(if(soa.data_from='1',soa.success,0)) as cmiotTotal, sum(if(soa.data_from='2',soa.success,0)) as allTotal from statement_of_account soa
where 1=1 
and  start_time>=#{startTime}
and  end_time<=#{endTime}

返回示例
备注

月对账单对比

请求 URL:
请求方式:
  • POST
参数形式:
  • form-data
参数:
参数名位置类型说明是否必填
currentUserIdurlint当前用户的 id
startTimeurlString开始时间
endTimeurlString结束时间
返回:
参数名必选类型说明
chipSystemTotalString 芯片管理平台总数
cardToolTotalString 新联调平台总数
airWriteTotalString 写卡平台总数
allTotalString 所有平台总数
cmiotTotalString cmiot 总数
monthString 月份
返回示例
备注

上一篇 芯片管理平台数据统计(五)
芯片管理平台接口目录
下一篇 芯片管理平台数据统计(七)