88 Commits

Author SHA1 Message Date
zhangsz
e4f52c949e fix: project change 2025-08-01 15:12:37 +08:00
zhangsz
0ee3af1187 feat: sql list support cbc broadcast 2025-08-01 15:11:38 +08:00
zhangsz
1b4cb6399e feat: support CBC broadcast 2025-08-01 14:50:55 +08:00
TsMask
2c1e55bd0c fix: 密码强制修改非首次登录校验去除日期判断,补充参数说明翻译信息 2025-07-28 17:16:48 +08:00
TsMask
4785530495 chore: 发布版本 2.2507.3 2025-07-25 20:39:36 +08:00
TsMask
77f6693fcf style: 减少上报数据不进行警告类型日志记录 2025-07-25 15:13:50 +08:00
TsMask
6f30d998f3 fix: 自检产生的告警辅助信息字符重复追加 2025-07-24 14:20:32 +08:00
TsMask
c9b9408f1d fix: 更新IMS-CDR结果码说明 2025-07-23 14:05:07 +08:00
TsMask
4ae66abbb3 feat: 告警导出表格标题编码翻译补充 2025-07-23 10:59:31 +08:00
TsMask
d8d3a979eb fix: 告警同步返回状态为正常,过程错误信息返回到响应 2025-07-23 10:58:52 +08:00
TsMask
0b4f04c33c fix: 自定义指标数据计算小于0就强制为0 2025-07-23 10:57:51 +08:00
TsMask
be5f929f1f fix: 自定义指标数据统计处理单位累加问题 2025-07-22 19:56:24 +08:00
TsMask
9b25be96fa fix: 更新IMS-CDR结果码说明 2025-07-22 19:15:12 +08:00
TsMask
7ff4e5bc2b fix: 自定义指标数据统计不处理小数 2025-07-22 18:52:35 +08:00
TsMask
7c2b8b01d8 fix: 告警级别判断成类型导致事件存储到告警中 2025-07-22 17:50:02 +08:00
TsMask
8fd00baf8b fix: 网管状态信息返回版本号 2025-07-21 19:03:41 +08:00
TsMask
d96303639d fix: 网管状态信息返回nil字符修改 2025-07-21 18:26:17 +08:00
TsMask
8fe698ebc1 chore: 更新go-oam库版本 2025-07-21 18:04:27 +08:00
TsMask
c4bd986040 chore: 发布版本 2.2507.2 2025-07-18 21:33:32 +08:00
TsMask
91eb7077e9 feat: 补充缺失的自定义指标接口 2025-07-18 21:30:52 +08:00
TsMask
ba067c2db7 feat: 北向定义网元状态/配置下发接口 2025-07-16 17:00:21 +08:00
TsMask
758843c2a8 fieat: 移除sshsvc 2025-07-16 15:56:33 +08:00
TsMask
1462563eef feat: 新增三个大屏页面的系统菜单 2025-07-16 15:08:26 +08:00
TsMask
6e6c5714ec style: 本地开发SQL日志输出开关 2025-07-16 14:53:25 +08:00
TsMask
27b5403339 feat: 告警分组统计数量接口 2025-07-16 14:52:52 +08:00
TsMask
a667691fff chore: 更新依赖加入go-oam 2025-07-15 19:45:04 +08:00
TsMask
edbdcca747 sql: 更新OMC/CBC/UDM参数配置映射文件 2025-07-15 19:04:36 +08:00
TsMask
45098970b6 sql: 更新数据库表 2025-07-15 18:53:04 +08:00
TsMask
be7da57171 fix: 服务监听失败每5秒重试最多10次 2025-07-15 16:13:34 +08:00
TsMask
150551acce fix: 代码优化 2025-07-15 15:16:44 +08:00
TsMask
9f6a7f3bb7 feat: OMC配置修改通知参数 2025-07-15 15:14:05 +08:00
TsMask
88a6375b18 feat: 新增oam对外开放无限制接口模块 2025-07-15 15:07:16 +08:00
TsMask
24a9157289 feat: 新增mml到工具模块 2025-07-15 15:06:25 +08:00
TsMask
40f178a1cd fix: udm处理函数返回值统一 2025-07-15 15:04:41 +08:00
TsMask
b6d4879cb1 feat: 新增通知模块,暂时只有邮件和smsc发送 2025-07-15 15:02:08 +08:00
TsMask
e67c0d6ba6 feat: 新增nssf/n3iwf直连接口 2025-07-15 15:01:10 +08:00
TsMask
6f48e0ae41 perf: 重构接收告警功能 2025-07-15 14:55:47 +08:00
TsMask
00e8b63890 perf: 重构接收UE接入功能 2025-07-15 14:53:26 +08:00
TsMask
adb0d5f4e2 perf: 重构接收CDR功能 2025-07-15 14:51:16 +08:00
TsMask
d7adfa79ba perf: 移除掉无用配置精简 2025-07-15 14:45:45 +08:00
TsMask
8680244af1 del: 移除iperf安装包 2025-07-15 14:41:04 +08:00
TsMask
edd93f5769 del: 移除features、lib和sshsvc目录 2025-07-15 14:38:48 +08:00
TsMask
2b2afd7423 feat: 补充网元排序 2025-07-10 11:22:26 +08:00
TsMask
4c63533390 feat: HLR跟踪页面标识为UDM 2025-07-07 10:44:47 +08:00
TsMask
acab82a3f6 chore: 发布版本 2.2507.1 2025-07-05 10:12:39 +08:00
TsMask
6cd0136d8a style: 代码顺序 2025-07-05 10:12:35 +08:00
TsMask
add324087f sql 更新UDM配置 2025-07-02 18:28:48 +08:00
TsMask
b6f3a53d94 sql 更新SMSC配置 2025-07-02 14:52:00 +08:00
TsMask
04f709711d sql: 添加IMS自定义指标IDD 2025-07-02 11:05:10 +08:00
TsMask
0ab10f25cd feat 更新AMF和SMF配置,新增GNB和远程Gy配置 2025-07-01 10:12:37 +08:00
TsMask
33de9280fd sql: IMS指标IDD呼入呼出 2025-06-30 18:04:58 +08:00
TsMask
aed4a6b3c7 chore: 发布版本 2.2506.4 2025-06-27 19:37:21 +08:00
TsMask
fa7a4f14a3 sql: IMS-KPI隐藏掉原因值接收 2025-06-27 18:38:42 +08:00
TsMask
c34a4f884d fix: 修正KP计算中百分比值的下限为0 2025-06-27 18:21:49 +08:00
TsMask
e6d26fe0e8 sql: OMC配置邮件标题限制字符空格校验 2025-06-27 18:21:30 +08:00
TsMask
4a397c02ec fix: 网元配置导入服务文件查询字段错误 2025-06-27 16:19:42 +08:00
TsMask
7c70e125d6 sql:修正UPF相关KPI的计算公式 2025-06-27 11:37:24 +08:00
TsMask
062a47f7af feat: 支持修改邮件标题,告警转发默认关闭 2025-06-27 11:18:48 +08:00
TsMask
2787c544bb feat: 获取文件列表按时间排序近到远 2025-06-27 11:05:15 +08:00
TsMask
f293304eec fix: 更新rpm安装命令,添加--nosignature、--nodeps和--replacepkgs选项 2025-06-26 18:11:15 +08:00
TsMask
855ea27978 sql: MME隐藏掉所有fail结尾的kpi 2025-06-26 17:04:29 +08:00
TsMask
659c1d7727 sql: 更新AMF/MME参数配置属性 2025-06-26 17:00:02 +08:00
TsMask
19d5074ae3 fix: UDM-IMS数据批量新增/批量删除命令调整 2025-06-24 17:14:32 +08:00
TsMask
20ad97c557 sql: lite脚本错误 2025-06-20 20:01:50 +08:00
TsMask
e45a5975dd chore: 发布版本 2.2506.3 2025-06-20 19:34:23 +08:00
TsMask
bd2b6c587c sql: 更新AMF参数配置属性支持N26配置 2025-06-20 17:38:54 +08:00
TsMask
390b55a75d fix 任务周期备份配置文件发送ftp备份路径去掉一层 2025-06-20 16:47:47 +08:00
TsMask
9aaabcf6e3 feat: 安装AMF时IP使用无AUSF改用UDM地址 2025-06-17 15:07:52 +08:00
TsMask
e494ad415a feat: 新增UPF上下行丢包率指标/MME附着成功率 2025-06-17 15:05:21 +08:00
TsMask
cbe2223b71 fix: udm-ims批量导入删除重新加载0开头imsi 2025-06-16 18:49:26 +08:00
TsMask
b24541c587 fix: 远程ssh文件写入权限 2025-06-16 18:15:30 +08:00
TsMask
8506e3c3db feat: 新增信令跟踪可选项N5 2025-06-16 14:19:24 +08:00
TsMask
70eee3a1a2 chore: 发布版本 2.2506.2 2025-06-13 20:09:26 +08:00
TsMask
c333919053 sql: 更新UDM参数配置项加ausfcfg 2025-06-13 20:01:46 +08:00
TsMask
31cf212ec5 sql: kpi指标项屏蔽 2025-06-13 18:52:09 +08:00
TsMask
fef7415968 fix: 许可到期天数偏差,当天提示修改 2025-06-13 18:03:08 +08:00
TsMask
a946b9db60 fix: dump抓包文件log文件写入权限 2025-06-11 20:14:25 +08:00
TsMask
57c70b2e21 fix: 修复操作命令输出文件重定向错误 2025-06-11 19:31:34 +08:00
TsMask
72757e4ea8 fix: 修复upf5002 telnet消息返回延迟导致命令行为不一致 2025-06-11 19:28:19 +08:00
TsMask
a485d4eb9a fix: 网元备份ims目录中文件名称拼写错误 2025-06-11 19:26:42 +08:00
TsMask
af97ceb031 fix: 本地调试数据库名称为omc_db_mainv2 2025-06-10 17:59:12 +08:00
TsMask
a74149434c feat: 新增信令跟踪可选项N14 2025-06-10 17:58:56 +08:00
TsMask
c7501a952d chore: 发布版本 2.2506.1 2025-06-07 16:35:20 +08:00
TsMask
d87f1f4874 style: 标注告警neId接收是rmUID数据 2025-06-07 16:32:37 +08:00
TsMask
33b95a6e30 fix:: 请求响应码用常量 2025-06-07 16:32:04 +08:00
TsMask
c67fbb7998 feat: 文件资源统一放到/usr/local/omc 2025-06-06 15:02:45 +08:00
TsMask
7c045fc036 del: 移除旧跟踪任务相关的路由注册 2025-06-06 14:29:23 +08:00
TsMask
0d6d42a430 feat: sshsvc服务的私钥文件判断生成 2025-06-05 19:46:19 +08:00
357 changed files with 11113 additions and 37598 deletions

18
.gitignore vendored
View File

@@ -17,21 +17,11 @@
*.bak
*.bak*
*.exe
__debug_bin*
debug/
*.log.*
main
# Build Output
local/omc_db.sqlite
omc
restagent/restagent
# Run temp file and dir
restagent/backup/
restagent/log/
restagent/upload/
restagent/software/
restagent/database/
restagent/license/
sshsvc/sshsvc
sshsvc/mmllog/
sshsvc/mmlhome/
sshsvc/log/

10
.vscode/launch.json vendored
View File

@@ -12,14 +12,6 @@
"program": "main.go",
"console": "integratedTerminal",
"args": ["--env", "local", "-c", "./local/omc.yaml"]
},
{
"name": "debug sshsvc",
"type": "go",
"request": "launch",
"mode": "debug",
"program": "sshsvc/sshsvc.go",
"console": "integratedTerminal"
}
}
]
}

View File

@@ -1,5 +1,81 @@
# 版本发布日志
## 2.2507.3-20250725
- 优化 减少上报数据不进行警告类型日志记录
- 优化 自检产生的告警辅助信息字符重复追加
- 修复 告警同步返回状态为正常,过程错误信息返回到响应
- 更新 IMS-CDR结果码说明告警导出表格标题编码翻译补充
- 修复 自定义指标数据统计不处理小数计算小于0就强制为0
- 修复 告警级别判断成类型导致事件存储到告警中
- 修复 网管状态信息返回nil字符修改信息返回版本号
## 2.2507.2-20250718
- 移除 iperf安装包features、lib和sshsvc目录
- 移除 将配置文件中无用配置删除精简
- 重构 接收CDR/UE接入/告警/KPI功能
- 新增 nssf/n3iwf直连接口
- 新增 通知模块暂时只有邮件和smsc发送可在OMC配置中修改参数
- 新增 mml到工具模块
- 新增 北向定义网元状态/配置下发接口oam对外开放无限制接口模块
- 修复 服务端口监听失败每5秒重试最多10次
- 更新 OMC/CBC/UDM参数配置映射文件
- 更新 升级数据库表结构依赖更新并加入go-oam
- 新增 告警分组统计数量接口
- 新增 mt版本移动过过来的三个大屏页面的系统菜单
- 删除 移除sshsvc服务
- 新增 北向定义网元状态/配置下发接口
- 新增 补充缺失的自定义指标接口
## 2.2507.1-20250705
- 修复 SMSC和UDM配置在lite下无法正常显示问题
- 更新 AMF配置缺少Gnb List Config定义SMF配置新增GNB和远程Gy配置
- 新增 IMS指标IDD呼入呼出自定义指标IDD
## 2.2506.4-20250627
- 优化 IMS-KPI隐藏掉原因值接收
- 修复 修正KP计算中百分比值的下限为0
- 优化 OMC配置邮件标题限制字符空格校验
- 修复 网元配置导入服务文件查询字段错误
- 优化 修正UPF相关KPI的计算公式
- 新增 支持修改邮件标题,告警转发默认关闭
- 新增 获取文件列表按时间排序近到远
- 修复 更新rpm安装命令添加--nosignature、--nodeps和--replacepkgs选项
- 优化 MME隐藏掉所有fail结尾的kpi
- 优化 更新AMF/MME参数配置属性
- 修复 UDM-IMS数据批量新增/批量删除命令调整
## 2.2506.3-20250620
- 更新 AMF参数配置属性支持N26配置
- 修复 任务周期网元备份配置文件发送ftp备份路径去掉一层
- 优化 安装AMF时IP使用无AUSF改用UDM地址
- 新增 KPI自定义UPF上下行丢包率指标/MME附着成功率
- 优化 udm-ims批量导入删除重新加载0开头imsi
- 修复 远程ssh文件写入权限改用777
- 新增 新增信令跟踪可选项N5
## 2.2506.2-20250613
- 更新 kpi指标项屏蔽
- 修复 许可到期天数偏差,当天提示修改
- 修复 dump抓包文件log文件写入权限
- 修复 修复操作命令输出文件重定向错误
- 修复 修复upf5002 telnet消息返回延迟导致命令行为不一致
- 修复 网元备份ims目录中文件名称拼写错误
- 新增 信令跟踪可选项N14
## 2.2506.1-20250607
- 修复 sshsvc服务的私钥文件判断生成
- 移除 旧跟踪任务相关的路由注册
- 优化 文件资源统一放到/usr/local/omc
- 优化 请求响应码用常量
- 注释 标注告警neId接收是rmUID数据
## 2.2505.4-20250530
- 修复 socket异常退出捕获停止信号退出循环读取

View File

@@ -4,13 +4,16 @@
## 文件资源
| 路径 | 说明 |
| --------------------- | -------------------------- |
| /usr/local/omc/static | 网管静态资源文件路径 |
| /usr/local/omc/upload | 网管上传文件资源路径 |
| /usr/local/omc/backup | 网管备份网元的数据路径 |
| /usr/local/etc/omc | 网管与网元之间相关文件 |
| /tmp/omc | 存放从网元拉取到本地的文件 |
| 路径 | 说明 |
| ---------------------- | -------------------------- |
| /usr/local/omc/static | 网管静态资源文件路径 |
| /usr/local/omc/upload | 网管上传文件资源路径 |
| /usr/local/omc/backup | 网管备份网元的数据路径 |
| /usr/local/omc/trace | 网管跟踪相关的数据路径 |
| /usr/local/omc/tcpdump | 网管 tcpdump 抓包件路径 |
| /usr/local/omc/packet | 网管信令抓包的数据路径 |
| /usr/local/etc/omc | 网管与网元之间相关文件 |
| /tmp/omc | 存放从网元拉取到本地的文件 |
## 端口
@@ -21,6 +24,9 @@
| 33033/33034 | 信令跟踪上报 UDP/TCP |
| 33060 | 性能分析 pprof |
| 33040 | 网管测试 Api |
| 21/22/25 | SSH/FTP |
| 33066 | 网管连接 mysql |
| 6379 | 网管连接 redis |
## redis 配置文件相关

View File

@@ -42,422 +42,181 @@ INSERT INTO "kpi_title" VALUES (16, 'AMF', 'AMF.16', '{"cn": "AMF二次寻呼响
INSERT INTO "kpi_title" VALUES (17, 'AMF', 'AMF.17', '{"cn": "AMF寻呼请求次数", "en": "AMF.PagAtt"}', 'AMF寻呼请求次数', 'AMF.PagAtt');
INSERT INTO "kpi_title" VALUES (18, 'AMF', 'AMF.18', '{"cn": "AMF业务请求被拒次数", "en": "AMF.FailServiceReq"}', 'AMF业务请求被拒次数', 'AMF.FailServiceReq');
INSERT INTO "kpi_title" VALUES (19, 'AMF', 'AMF.19', '{"cn": "AMF业务请求尝试次数", "en": "AMF.AttServiceReq"}', 'AMF业务请求尝试次数', 'AMF.AttServiceReq');
INSERT INTO "kpi_title" VALUES (20, 'SMF', 'SMF.01', '{"cn": "5G实时PDU会话数", "en": "SMF.MeanPduSession"}', '5G实时PDU会话', 'SMF.MeanPduSession');
INSERT INTO "kpi_title" VALUES (21, 'SMF', 'SMF.02', '{"cn": "PDU会话建立成功次数", "en": "SMF.SuccCreatePduSession"}', 'PDU会话建立成功次数', 'SMF.SuccCreatePduSession');
INSERT INTO "kpi_title" VALUES (22, 'SMF', 'SMF.03', '{"cn": "PDU会话建立请求次数", "en": "SMF.AttCreatePduSession"}', 'PDU会话建立请求次数', 'SMF.AttCreatePduSession');
INSERT INTO "kpi_title" VALUES (23, 'SMF', 'SMF.04', '{"cn": "IMS PDU会话建立成功次数", "en": "SMF.SuccCreatePduSession._Ims"}', 'IMS PDU会话建立成功次数', 'SMF.SuccCreatePduSession._Ims');
INSERT INTO "kpi_title" VALUES (24, 'SMF', 'SMF.05', '{"cn": "IMS PDU会话建立请求次数", "en": "SMF.AttCreatePduSession._Ims"}', 'IMS PDU会话建立请求次数', 'SMF.AttCreatePduSession._Ims');
INSERT INTO "kpi_title" VALUES (25, 'SMF', 'SMF.06', '{"cn": "EPS-Fallback成功数", "en": "SMF.SuccSmfModifyBearerResponse.Epsfb"}', 'EPS-Fallback成功', 'SMF.SuccSmfModifyBearerResponse.Epsfb');
INSERT INTO "kpi_title" VALUES (26, 'SMF', 'SMF.07', '{"cn": "EPS-Fallback请求数", "en": "SMF.AttSmfModifyPduSession.Epsfb"}', 'EPS-Fallback请求', 'SMF.AttSmfModifyPduSession.Epsfb');
INSERT INTO "kpi_title" VALUES (27, 'UDM', 'UDM.01', '{"cn": "5G注册用户数", "en": "UDR.5gActSub"}', '5G注册用户', 'UDR.5gActSub');
INSERT INTO "kpi_title" VALUES (28, 'UDM', 'UDM.02', '{"cn": "AMF发起的UECM注册请求次数", "en": "UDM.AmfUecmRegReq"}', 'AMF发起的UECM注册请求次数', 'UDM.AmfUecmRegReq');
INSERT INTO "kpi_title" VALUES (29, 'UDM', 'UDM.03', '{"cn": "AMF发起的UECM注册成功次数", "en": "UDM.AmfUecmRegSucc"}', 'AMF发起的UECM注册成功次数', 'UDM.AmfUecmRegSucc');
INSERT INTO "kpi_title" VALUES (30, 'UDM', 'UDM.04', '{"cn": "SMF发起的UECM注册成功次数", "en": "UDM.SmfUecmRegSucc"}', 'SMF发起的UECM注册成功次数', 'UDM.SmfUecmRegSucc');
INSERT INTO "kpi_title" VALUES (31, 'UDM', 'UDM.05', '{"cn": "SMF发起的UECM注册请求次数", "en": "UDM.SmfUecmRegReq"}', 'SMF发起的UECM注册请求次数', 'UDM.SmfUecmRegReq');
INSERT INTO "kpi_title" VALUES (32, 'UDM', 'UDM.06', '{"cn": "4G注册用户数", "en": "SUB.EpsActSubsInHss"}', '4G注册用户', 'SUB.EpsActSubsInHss');
INSERT INTO "kpi_title" VALUES (33, 'UDM', 'UDM.07', '{"cn": "4G鉴权信息查询成功次数", "en": "DIAM.AucInfoAnsSucc"}', '4G鉴权信息查询成功次', 'DIAM.AucInfoAnsSucc');
INSERT INTO "kpi_title" VALUES (34, 'UDM', 'UDM.08', '{"cn": "4G鉴权信息查询请求次数", "en": "DIAM.AucInfoReq"}', '4G鉴权信息查询请求次数', 'DIAM.AucInfoReq');
INSERT INTO "kpi_title" VALUES (35, 'UDM', 'UDM.09', '{"cn": "4G更新位置成功次数", "en": "DIAM.UpdateLocationAnsSucc"}', '4G更新位置成功次数', 'DIAM.UpdateLocationAnsSucc');
INSERT INTO "kpi_title" VALUES (36, 'UDM', 'UDM.10', '{"cn": "4G更新位置请求次数", "en": "DIAM.UpdateLocationReq"}', '4G更新位置请求次数', 'DIAM.UpdateLocationReq');
INSERT INTO "kpi_title" VALUES (37, 'UDM', 'UDM.11', '{"cn": "SAR成功响应总次数", "en": "UR.SuccSAA"}', 'SAR成功响应总次数', 'UR.SuccSAA');
INSERT INTO "kpi_title" VALUES (38, 'UDM', 'UDM.12', '{"cn": "SAR请求总次数", "en": "UR.AttSAR"}', 'SAR请求总次数', 'UR.AttSAR');
INSERT INTO "kpi_title" VALUES (39, 'UDM', 'UDM.13', '{"cn": "LIR成功响应总次数", "en": "LIQ.SuccLIA"}', 'LIR成功响应总次数', 'LIQ.SuccLIA');
INSERT INTO "kpi_title" VALUES (40, 'UDM', 'UDM.14', '{"cn": "LIR请求总次数", "en": "LIQ.AttLIR"}', 'LIR请求总次数', 'LIQ.AttLIR');
INSERT INTO "kpi_title" VALUES (41, 'AUSF', 'AUSF.01', '{"cn": "鉴权成功次数", "en": "Ausf.UeAuthAnsSucc"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO "kpi_title" VALUES (42, 'AUSF', 'AUSF.02', '{"cn": "鉴权请求次数", "en": "Ausf.UeAuthReq"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO "kpi_title" VALUES (43, 'UPF', 'UPF.01', '{"cn": "PFCP会话建立成功次数", "en": "UPF.PfcpSessionEstabSucc"}', 'PFCP会话建立成功次数', 'UPF.PfcpSessionEstabSucc');
INSERT INTO "kpi_title" VALUES (44, 'UPF', 'UPF.02', '{"cn": "PFCP会话建立请求次数", "en": "UPF.PfcpSessionEstabReq"}', 'PFCP会话建立请求次', 'UPF.PfcpSessionEstabReq');
INSERT INTO "kpi_title" VALUES (45, 'UPF', 'UPF.03', '{"cn": "N6接口行字节数", "en": "UPF.N6OgOct"}', 'N6接口行字节数', 'UPF.N6OgOct');
INSERT INTO "kpi_title" VALUES (46, 'UPF', 'UPF.04', '{"cn": "N6接口行字节数", "en": "UPF.N6IncOct"}', 'N6接口行字节数', 'UPF.N6IncOct');
INSERT INTO "kpi_title" VALUES (47, 'UPF', 'UPF.05', '{"cn": "N3接口行字节数", "en": "UPF.N3OgOct"}', 'N3接口行字节数', 'UPF.N3OgOct');
INSERT INTO "kpi_title" VALUES (48, 'UPF', 'UPF.06', '{"cn": "N3接口下行字节数", "en": "UPF.N3IncOct"}', 'N3接口下行字节', 'UPF.N3IncOct');
INSERT INTO "kpi_title" VALUES (49, 'UPF', 'UPF.07', '{"cn": "SGi接口上行字节数", "en": "IP.PeakThroughputUlSgi"}', 'SGi接口上行字节', 'IP.PeakThroughputUlSgi');
INSERT INTO "kpi_title" VALUES (50, 'UPF', 'UPF.08', '{"cn": "SGi接口下行字节数", "en": "IP.PeakThroughputDlSgi"}', 'SGi接口下行字节', 'IP.PeakThroughputDlSgi');
INSERT INTO "kpi_title" VALUES (51, 'UPF', 'UPF.09', '{"cn": "S1-U接口上行字节数", "en": "GTP.OutOctS1uSgw"}', 'S1-U接口上行字节', 'GTP.OutOctS1uSgw');
INSERT INTO "kpi_title" VALUES (52, 'UPF', 'UPF.10', '{"cn": "S1-U接口下行字节数", "en": "GTP.IncOctS1uSgw"}', 'S1-U接口下行字节', 'GTP.IncOctS1uSgw');
INSERT INTO "kpi_title" VALUES (53, 'AMF', 'AMF.20', '{"cn": "EPS在线用户数", "en": "SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected"}', 'EPS在线用户', 'SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected');
INSERT INTO "kpi_title" VALUES (54, 'AMF', 'AMF.21', '{"cn": "EPS附着成功次数", "en": "MM.SuccEpsAttach"}', 'EPS附着成功次数', 'MM.SuccEpsAttach');
INSERT INTO "kpi_title" VALUES (55, 'AMF', 'AMF.22', '{"cn": "EPS附着请求次数", "en": "MM.AttEpsAttach"}', 'EPS附着请求次数', 'MM.AttEpsAttach');
INSERT INTO "kpi_title" VALUES (56, 'AMF', 'AMF.23', '{"cn": "EPS附着失败次数_非法用户", "en": "MM.FailedEpsAttach.3"}', 'EPS附着失败次数_非法用户', 'MM.FailedEpsAttach.3');
INSERT INTO "kpi_title" VALUES (57, 'AMF', 'AMF.24', '{"cn": "EPS附着失败次数_非法终端", "en": "MM.FailedEpsAttach.5"}', 'EPS附着失败次数_非法终端', 'MM.FailedEpsAttach.5');
INSERT INTO "kpi_title" VALUES (58, 'AMF', 'AMF.25', '{"cn": "EPS附着失败次数_非法ME", "en": "MM.FailedEpsAttach.6"}', 'EPS附着失败次数_非法ME', 'MM.FailedEpsAttach.6');
INSERT INTO "kpi_title" VALUES (59, 'AMF', 'AMF.26', '{"cn": "EPS附着失败次数_EPS服务不允许_用户原因", "en": "MM.FailedEpsAttach.7.User"}', 'EPS附着失败次数_EPS服务不允许_用户原因', 'MM.FailedEpsAttach.7.User');
INSERT INTO "kpi_title" VALUES (60, 'AMF', 'AMF.27', '{"cn": "EPS附着失败次数_EPS和非EPS服务不允许", "en": "MM.FailedEpsAttach.8"}', 'EPS附着失败次数_EPS和非EPS服务不允许', 'MM.FailedEpsAttach.8');
INSERT INTO "kpi_title" VALUES (61, 'AMF', 'AMF.28', '{"cn": "EPS附着失败次数_跟踪区内无合适小区_用户原因", "en": "MM.FailedEpsAttach.15.User"}', 'EPS附着失败次数_跟踪区内无合适小区_用户原因', 'MM.FailedEpsAttach.15.User');
INSERT INTO "kpi_title" VALUES (62, 'AMF', 'AMF.29', '{"cn": "EPS附着失败次数_ESM失败_用户原因", "en": "MM.FailedEpsAttach.19.User"}', 'EPS附着失败次数_ESM失败_用户原因', 'MM.FailedEpsAttach.19.User');
INSERT INTO "kpi_title" VALUES (63, 'AMF', 'AMF.30', '{"cn": "MME一次寻呼响应次数", "en": "MM.FirstPagingSucc"}', 'MME一次寻呼响应次数', 'MM.FirstPagingSucc');
INSERT INTO "kpi_title" VALUES (64, 'AMF', 'AMF.31', '{"cn": "MME二次寻呼响应次数", "en": "MM.SecondPagingSucc"}', 'MME二次寻呼响应次数', 'MM.SecondPagingSucc');
INSERT INTO "kpi_title" VALUES (65, 'AMF', 'AMF.32', '{"cn": "MME寻呼请求次数", "en": "MM.PagAtt"}', 'MME寻呼请求次数', 'MM.PagAtt');
INSERT INTO "kpi_title" VALUES (66, 'SMF', 'SMF.08', '{"cn": "4G在线会话数", "en": "SM.MeanNbrBearerPgw.Default"}', '4G在线会话', 'SM.MeanNbrBearerPgw.Default');
INSERT INTO "kpi_title" VALUES (67, 'SMF', 'SMF.09', '{"cn": "PGW缺省承载建立成功数", "en": "SM.SuccCreateDefaultEpsBearer"}', 'PGW缺省承载建立成功', 'SM.SuccCreateDefaultEpsBearer');
INSERT INTO "kpi_title" VALUES (68, 'SMF', 'SMF.10', '{"cn": "PGW缺省承载建立请求个数", "en": "SM.AttCreateDefaultEpsBearer"}', 'PGW缺省承载建立请求个', 'SM.AttCreateDefaultEpsBearer');
INSERT INTO "kpi_title" VALUES (69, 'SMF', 'SMF.11', '{"cn": "PGW专用承载建立成功数", "en": "SM.SuccCreateDedicatedEpsBearer"}', 'PGW专用承载建立成功', 'SM.SuccCreateDedicatedEpsBearer');
INSERT INTO "kpi_title" VALUES (70, 'SMF', 'SMF.12', '{"cn": "PGW专用承载建立请求个数", "en": "SM.AttCreateDedicatedEpsBearer"}', 'PGW专用承载建立请求个', 'SM.AttCreateDedicatedEpsBearer');
INSERT INTO "kpi_title" VALUES (71, 'SMF', 'SMF.13', '{"cn": "IMS缺省承载成功建立个数", "en": "SM.SuccCreateDefaultEpsBearer._Ims"}', 'IMS缺省承载成功建立个', 'SM.SuccCreateDefaultEpsBearer._Ims');
INSERT INTO "kpi_title" VALUES (72, 'SMF', 'SMF.14', '{"cn": "IMS缺省承载请求建立个数", "en": "SM.AttCreateDefaultEpsBearer._Ims"}', 'IMS缺省承载请求建立个', 'SM.AttCreateDefaultEpsBearer._Ims');
INSERT INTO "kpi_title" VALUES (73, 'AMF', 'AMF.A.02', '{"cn":"AMF移动性注册更新成功次数","en":"AMF.SuccMobiReg"}', 'AMF移动性注册更新成功次数', 'AMF.SuccMobiReg');
INSERT INTO "kpi_title" VALUES (74, 'AMF', 'AMF.A.03', '{"cn":"AMF移动性注册更新失败次数","en":"AMF.FailedMobiReg"}', 'AMF移动性注册更新失败次', 'AMF.FailedMobiReg');
INSERT INTO "kpi_title" VALUES (75, 'AMF', 'AMF.A.04', '{"cn":"AMF紧急注册请求次数","en":"AMF.AttEmergReg"}', 'AMF紧急注册请求次', 'AMF.AttEmergReg');
INSERT INTO "kpi_title" VALUES (76, 'AMF', 'AMF.A.05', '{"cn":"AMF紧急注册成功次数","en":"AMF.SuccEmergReg"}', 'AMF紧急注册成功次数', 'AMF.SuccEmergReg');
INSERT INTO "kpi_title" VALUES (77, 'AMF', 'AMF.A.06', '{"cn":"AMF紧急注册失败次数","en":"AMF.FailedEmergReg"}', 'AMF紧急注册失败次数', 'AMF.FailedEmergReg');
INSERT INTO "kpi_title" VALUES (78, 'AMF', 'AMF.A.07', '{"cn":"UE发起的去注册请求次数","en":"AMF.AttUeDereg"}', 'UE发起的去注册请求次数', 'AMF.AttUeDereg');
INSERT INTO "kpi_title" VALUES (79, 'AMF', 'AMF.A.08', '{"cn":"UE发起的去注册成功次数","en":"AMF.SuccUeDereg"}', 'UE发起的去注册成功次数', 'AMF.SuccUeDereg');
INSERT INTO "kpi_title" VALUES (80, 'AMF', 'AMF.A.09', '{"cn":"AMF发起的去注册请求次数","en":"AMF.AttAmfDereg"}', 'AMF发起的去注册请求次数', 'AMF.AttAmfDereg');
INSERT INTO "kpi_title" VALUES (81, 'AMF', 'AMF.A.10', '{"cn":"AMF发起的去注册成功次数","en":"AMF.SuccAmfDereg"}', 'AMF发起的去注册成功次数', 'AMF.SuccAmfDereg');
INSERT INTO "kpi_title" VALUES (82, 'AMF', 'AMF.A.11', '{"cn":"UDM发起的去注册请求次数","en":"AMF.AttUdmDereg"}', 'UDM发起的去注册请求次数', 'AMF.AttUdmDereg');
INSERT INTO "kpi_title" VALUES (83, 'AMF', 'AMF.A.12', '{"cn":"UDM发起的去注册成功次数","en":"AMF.SuccUdmDereg"}', 'UDM发起的去注册成功次数', 'AMF.SuccUdmDereg');
INSERT INTO "kpi_title" VALUES (84, 'AMF', 'AMF.A.13', '{"cn":"AMF寻呼失败次数","en":"AMF.PagFail"}', 'AMF寻呼失败次数', 'AMF.PagFail');
INSERT INTO "kpi_title" VALUES (85, 'AMF', 'AMF.A.14', '{"cn":"AMF隐式去注册次数","en":"AMF.ImplicitDereg"}', 'AMF隐式去注册次数', 'AMF.ImplicitDereg');
INSERT INTO "kpi_title" VALUES (86, 'SMF', 'SMF.A.01', '{"cn":"PDU会话接受次数","en":"SMF.PduSessAcpt"}', 'PDU会话接受次数', 'SMF.PduSessAcpt');
INSERT INTO "kpi_title" VALUES (87, 'SMF', 'SMF.A.02', '{"cn":"基站Pdu资源创建成功次数","en":"SM.PduResSetupSucc"}', '基站Pdu资源创建成功次数', 'SM.PduResSetupSucc');
INSERT INTO "kpi_title" VALUES (88, 'SMF', 'SMF.A.03', '{"cn":"查询用户SM数据失败次数","en":"SM.RetrieveSmDataFail"}', '查询用户SM数据失败次数', 'SM.RetrieveSmDataFail');
INSERT INTO "kpi_title" VALUES (89, 'SMF', 'SMF.A.04', '{"cn":"PFCP会话建立失败次数","en":"SM.PfcpSessEstFail"}', 'PFCP会话建立失败次数', 'SM.PfcpSessEstFail');
INSERT INTO "kpi_title" VALUES (90, 'SMF', 'SMF.A.05', '{"cn":"基站Pdu资源创建失败次数","en":"SM.PduResSetupFail"}', '基站Pdu资源创建失败次数', 'SM.PduResSetupFail');
INSERT INTO "kpi_title" VALUES (91, 'SMF', 'SMF.A.06', '{"cn":"PFCP会话修改失败次数","en":"SM.PfcpSessMdfyFail"}', 'PFCP会话修改失败次数', 'SM.PfcpSessMdfyFail');
INSERT INTO "kpi_title" VALUES (92, 'SMF', 'SMF.A.07', '{"cn":"PDU会话拒绝次数","en":"SM.PduSessRejt"}', 'PDU会话拒绝次数', 'SM.PduSessRejt');
INSERT INTO "kpi_title" VALUES (93, 'SMF', 'SMF.A.08', '{"cn":"PDU会话释放指示次数","en":"SM.PduSessRelCmd"}', 'PDU会话释放指示次数', 'SM.PduSessRelCmd');
INSERT INTO "kpi_title" VALUES (94, 'NSSF', 'NSSF.A.02', '{"cn":"可用AMF注册次数","en":"NSSF.SuccAvailAMFPut"}', '可用AMF注册成功次数', 'NSSF.SuccAvailAMFPut');
INSERT INTO "kpi_title" VALUES (95, 'NSSF', 'NSSF.A.03', '{"cn":"可用AMF注册更新成功次数","en":"NSSF.AvailAMFPut"}', '可用AMF注册次数', 'NSSF.AvailAMFPut');
INSERT INTO "kpi_title" VALUES (96, 'NSSF', 'NSSF.A.04', '{"cn":"可用AMF注册更新次数","en":"NSSF.SuccAvailAMFPatch"}', '可用AMF注册更新成功次数', 'NSSF.SuccAvailAMFPatch');
INSERT INTO "kpi_title" VALUES (97, 'NSSF', 'NSSF.A.01', '{"cn":"可用AMF注册成功次数","en":"NSSF.AvailAMFPatch"}', '可用AMF注册更新次数', 'NSSF.AvailAMFPatch');
INSERT INTO "kpi_title" VALUES (98, 'NSSF', 'NSSF.A.05', '{"cn":"可用AMF去注册成功次数","en":"NSSF.SuccAvailAMFDelete"}', '可用AMF去注册成功次数', 'NSSF.SuccAvailAMFDelete');
INSERT INTO "kpi_title" VALUES (99, 'NSSF', 'NSSF.A.06', '{"cn":"可用AMF去注册次数","en":"NSSF.AvailAMFDelete"}', '可用AMF去注册次数', 'NSSF.AvailAMFDelete');
INSERT INTO "kpi_title" VALUES (100, 'NSSF', 'NSSF.A.07', '{"cn":"网元订阅成功次数","en":"NSSF.SuccAvailSubscription"}', '网元订阅成功次数', 'NSSF.SuccAvailSubscription');
INSERT INTO "kpi_title" VALUES (101, 'NSSF', 'NSSF.A.08', '{"cn":"网元订阅次数","en":"NSSF.AvailSubscription"}', '网元订阅次数', 'NSSF.AvailSubscription');
INSERT INTO "kpi_title" VALUES (102, 'NSSF', 'NSSF.A.09', '{"cn":"网元去订阅成功次数","en":"NSSF.SuccAvailUnsubscription"}', '网元去订阅成功次数', 'NSSF.SuccAvailUnsubscription');
INSERT INTO "kpi_title" VALUES (103, 'NSSF', 'NSSF.A.10', '{"cn":"网元去订阅次数","en":"NSSF.AvailUnsubscription"}', '网元去订阅次数', 'NSSF.AvailUnsubscription');
INSERT INTO "kpi_title" VALUES (104, 'NSSF', 'NSSF.A.11', '{"cn":"向NRF注册成功次数","en":"NSSF.SuccNRFReg"}', '向NRF注册成功次数', 'NSSF.SuccNRFReg');
INSERT INTO "kpi_title" VALUES (105, 'NSSF', 'NSSF.A.12', '{"cn":"向NRF注册次数","en":"NSSF.NRFReg"}', '向NRF注册次数', 'NSSF.NRFReg');
INSERT INTO "kpi_title" VALUES (106, 'NSSF', 'NSSF.A.13', '{"cn":"向NRF发送心跳次数","en":"NSSF.NRFHeartbeat"}', '向NRF发送心跳次数', 'NSSF.NRFHeartbeat');
INSERT INTO "kpi_title" VALUES (107, 'NSSF', 'NSSF.A.14', '{"cn":"当前注册AMF个数","en":"NSSF.CurrentAMFCount"}', '当前注册AMF个数', 'NSSF.CurrentAMFCount');
INSERT INTO "kpi_title" VALUES (108, 'NSSF', 'NSSF.A.15', '{"cn":"当前订阅网元个数","en":"NSSF.CurrentSubscriperCount"}', '当前订阅网元个数', 'NSSF.CurrentSubscriperCount');
INSERT INTO "kpi_title" VALUES (109, 'MME', 'MME.A.01', '{"cn":"MME附着请求次数","en":"EpsAttachAtt"}', 'MME附着请求次数', 'EpsAttachAtt');
INSERT INTO "kpi_title" VALUES (110, 'MME', 'MME.A.02', '{"cn":"MME附着成功次数","en":"EpsAttachSucc"}', 'MME附着成功次数', 'EpsAttachSucc');
INSERT INTO "kpi_title" VALUES (111, 'MME', 'MME.A.03', '{"cn":"MME附着失败次数","en":"EpsAttachFail"}', 'MME附着失败次数', 'EpsAttachFail');
INSERT INTO "kpi_title" VALUES (112, 'MME', 'MME.A.04', '{"cn":"MME组合附着请求次数","en":"CombAttachAtt"}', 'MME组合附着请求次数', 'CombAttachAtt');
INSERT INTO "kpi_title" VALUES (113, 'MME', 'MME.A.05', '{"cn":"MME组合附着成功次数","en":"CombAttachSucc"}', 'MME组合附着成功次数', 'CombAttachSucc');
INSERT INTO "kpi_title" VALUES (114, 'MME', 'MME.A.06', '{"cn":"MME组合附着失败次数","en":"CombAttachFail"}', 'MME组合附着失败次数', 'CombAttachFail');
INSERT INTO "kpi_title" VALUES (115, 'MME', 'MME.A.07', '{"cn":"MME紧急附着请求次数","en":"EmergAttachAtt"}', 'MME紧急附着请求次数', 'EmergAttachAtt');
INSERT INTO "kpi_title" VALUES (116, 'MME', 'MME.A.08', '{"cn":"MME紧急附着成功次数","en":"EmergAttachSucc"}', 'MME紧急附着成功次数', 'EmergAttachSucc');
INSERT INTO "kpi_title" VALUES (117, 'MME', 'MME.A.09', '{"cn":"MME紧急附着失败次数","en":"EmergAttachFail"}', 'MME紧急附着失败次数', 'EmergAttachFail');
INSERT INTO "kpi_title" VALUES (118, 'MME', 'MME.A.10', '{"cn":"UE发起的分离请求次数","en":"EpsDetachUeAtt"}', 'UE发起的分离请求次数', 'EpsDetachUeAtt');
INSERT INTO "kpi_title" VALUES (119, 'MME', 'MME.A.11', '{"cn":"UE发起的分离请求成功次数","en":"EpsDetachUeSucc"}', 'UE发起的分离请求成功次数', 'EpsDetachUeSucc');
INSERT INTO "kpi_title" VALUES (120, 'MME', 'MME.A.12', '{"cn":"MME发起的分离请求次数","en":"EpsDetachMMEAtt"}', 'MME发起的分离请求次数', 'EpsDetachMMEAtt');
INSERT INTO "kpi_title" VALUES (121, 'MME', 'MME.A.13', '{"cn":"MME发起的分离请求成功次数","en":"EpsDetachMMESucc"}', 'MME发起的分离请求成功次数', 'EpsDetachMMESucc');
INSERT INTO "kpi_title" VALUES (122, 'MME', 'MME.A.14', '{"cn":"伴随SGW内切换的TAU请求次数","en":"TauIntraSgwAtt"}', '伴随SGW内切换的TAU请求次数', 'TauIntraSgwAtt');
INSERT INTO "kpi_title" VALUES (123, 'MME', 'MME.A.15', '{"cn":"伴随SGW内切换的TAU成功请求次数","en":"TauIntraSgwSucc"}', '伴随SGW内切换的TAU成功请求次数', 'TauIntraSgwSucc');
INSERT INTO "kpi_title" VALUES (124, 'MME', 'MME.A.16', '{"cn":"伴随SGW内切换的TAU失败请求次数","en":"TauIntraSgwFail"}', '伴随SGW内切换的TAU失败请求次数', 'TauIntraSgwFail');
INSERT INTO "kpi_title" VALUES (125, 'MME', 'MME.A.17', '{"cn":"MME寻呼次数","en":"PagingEpsAtt"}', 'MME寻呼次数', 'PagingEpsAtt');
INSERT INTO "kpi_title" VALUES (126, 'MME', 'MME.A.18', '{"cn":"MME寻呼成功次数","en":"PagingEpsSucc"}', 'MME寻呼成功次数', 'PagingEpsSucc');
INSERT INTO "kpi_title" VALUES (127, 'MME', 'MME.A.19', '{"cn":"MME寻呼失败次数","en":"PagingEpsFail"}', 'MME寻呼失败次数', 'PagingEpsFail');
INSERT INTO "kpi_title" VALUES (128, 'MME', 'MME.A.20', '{"cn":"MME隐式分离请求次数","en":"EpsImplicitDetach"}', 'MME隐式分离请求次数', 'EpsImplicitDetach');
INSERT INTO "kpi_title" VALUES (129, 'MME', 'MME.A.21', '{"cn":"MME激活专用承载请求次数","en":"ActDedicatedEpsBearerAtt"}', 'MME激活专用承载请求次数', 'ActDedicatedEpsBearerAtt');
INSERT INTO "kpi_title" VALUES (130, 'MME', 'MME.A.22', '{"cn":"MME激活专用承载请求成功次数","en":"ActDedicatedEpsBearerSucc"}', 'MME激活专用承载请求成功次数', 'ActDedicatedEpsBearerSucc');
INSERT INTO "kpi_title" VALUES (131, 'MME', 'MME.A.23', '{"cn":"MME激活专用承载请求失败次数","en":"ActDedicatedEpsBearerFail"}', 'MME激活专用承载请求失败次数', 'ActDedicatedEpsBearerFail');
INSERT INTO "kpi_title" VALUES (132, 'MME', 'MME.A.24', '{"cn":"MME去激活专用承载请求次数","en":"DeactEpsDedicatedBearerAtt"}', 'MME去激活专用承载请求次数', 'DeactEpsDedicatedBearerAtt');
INSERT INTO "kpi_title" VALUES (133, 'MME', 'MME.A.25', '{"cn":"MME去激活专用承载请求成功次数","en":"DeactEpsDedicatedBearerSucc"}', 'MME去激活专用承载请求成功次数', 'DeactEpsDedicatedBearerSucc');
INSERT INTO "kpi_title" VALUES (134, 'MME', 'MME.A.26', '{"cn":"MME修改专用承载请求次数","en":"ModEpsBearerAtt"}', 'MME修改专用承载请求次数', 'ModEpsBearerAtt');
INSERT INTO "kpi_title" VALUES (135, 'MME', 'MME.A.27', '{"cn":"MME修改专用承载请求成功次数","en":"ModEpsBearerSucc"}', 'MME修改专用承载请求成功次数', 'ModEpsBearerSucc');
INSERT INTO "kpi_title" VALUES (136, 'MME', 'MME.A.28', '{"cn":"MME修改专用承载请求失败次数","en":"ModEpsBearerFail"}', 'MME修改专用承载请求失败次数', 'ModEpsBearerFail');
INSERT INTO "kpi_title" VALUES (137, 'MME', 'MME.A.29', '{"cn":"MME服务请求次数","en":"EpsServiceReqAtt"}', 'MME服务请求次数', 'EpsServiceReqAtt');
INSERT INTO "kpi_title" VALUES (138, 'MME', 'MME.A.30', '{"cn":"MME服务请求成功次数","en":"EpsServiceReqSucc"}', 'MME服务请求成功次数', 'EpsServiceReqSucc');
INSERT INTO "kpi_title" VALUES (139, 'MME', 'MME.A.31', '{"cn":"MME服务请求失败次数","en":"EpsServiceReqFail"}', 'MME服务请求失败次数', 'EpsServiceReqFail');
INSERT INTO "kpi_title" VALUES (140, 'MOCNGW', 'MOCNGW.01', '{"cn":"AttachRequest","en":"AttachRequest"}', 'AttachRequest', 'AttachRequest');
INSERT INTO "kpi_title" VALUES (141, 'MOCNGW', 'MOCNGW.02', '{"cn":"AttachAccept","en":"AttachAccept"}', 'AttachAccept', 'AttachAccept');
INSERT INTO "kpi_title" VALUES (142, 'MOCNGW', 'MOCNGW.03', '{"cn":"AttachComplete","en":"AttachComplete"}', 'AttachComplete', 'AttachComplete');
INSERT INTO "kpi_title" VALUES (143, 'MOCNGW', 'MOCNGW.04', '{"cn":"AttachReject","en":"AttachReject"}', 'AttachReject', 'AttachReject');
INSERT INTO "kpi_title" VALUES (144, 'MOCNGW', 'MOCNGW.05', '{"cn":"DetachRequest","en":"DetachRequest"}', 'DetachRequest', 'DetachRequest');
INSERT INTO "kpi_title" VALUES (145, 'MOCNGW', 'MOCNGW.06', '{"cn":"DetachAccept","en":"DetachAccept"}', 'DetachAccept', 'DetachAccept');
INSERT INTO "kpi_title" VALUES (146, 'MOCNGW', 'MOCNGW.07', '{"cn":"TrackingAreaUpdateRequest","en":"TrackingAreaUpdateRequest"}', 'TrackingAreaUpdateRequest', 'TrackingAreaUpdateRequest');
INSERT INTO "kpi_title" VALUES (147, 'MOCNGW', 'MOCNGW.08', '{"cn":"TrackingAreaUpdateAccept","en":"TrackingAreaUpdateAccept"}', 'TrackingAreaUpdateAccept', 'TrackingAreaUpdateAccept');
INSERT INTO "kpi_title" VALUES (148, 'MOCNGW', 'MOCNGW.09', '{"cn":"TrackingAreaUpdateComplete","en":"TrackingAreaUpdateComplete"}', 'TrackingAreaUpdateComplete', 'TrackingAreaUpdateComplete');
INSERT INTO "kpi_title" VALUES (149, 'MOCNGW', 'MOCNGW.10', '{"cn":"TrackingAreaUpdateReject","en":"TrackingAreaUpdateReject"}', 'TrackingAreaUpdateReject', 'TrackingAreaUpdateReject');
INSERT INTO "kpi_title" VALUES (150, 'MOCNGW', 'MOCNGW.11', '{"cn":"ServiceRequest","en":"ServiceRequest"}', 'ServiceRequest', 'ServiceRequest');
INSERT INTO "kpi_title" VALUES (151, 'MOCNGW', 'MOCNGW.12', '{"cn":"ExtendedServiceRequest","en":"ExtendedServiceRequest"}', 'ExtendedServiceRequest', 'ExtendedServiceRequest');
INSERT INTO "kpi_title" VALUES (152, 'MOCNGW', 'MOCNGW.13', '{"cn":"ControlPlaneServiceRequest","en":"ControlPlaneServiceRequest"}', 'ControlPlaneServiceRequest', 'ControlPlaneServiceRequest');
INSERT INTO "kpi_title" VALUES (153, 'MOCNGW', 'MOCNGW.14', '{"cn":"ServiceReject","en":"ServiceReject"}', 'ServiceReject', 'ServiceReject');
INSERT INTO "kpi_title" VALUES (154, 'MOCNGW', 'MOCNGW.15', '{"cn":"ServiceAccept","en":"ServiceAccept"}', 'ServiceAccept', 'ServiceAccept');
INSERT INTO "kpi_title" VALUES (155, 'MOCNGW', 'MOCNGW.16', '{"cn":"GutiReallocationCommand","en":"GutiReallocationCommand"}', 'GutiReallocationCommand', 'GutiReallocationCommand');
INSERT INTO "kpi_title" VALUES (156, 'MOCNGW', 'MOCNGW.17', '{"cn":"GutiReallocationComplete","en":"GutiReallocationComplete"}', 'GutiReallocationComplete', 'GutiReallocationComplete');
INSERT INTO "kpi_title" VALUES (157, 'MOCNGW', 'MOCNGW.18', '{"cn":"AuthenticationRequest","en":"AuthenticationRequest"}', 'AuthenticationRequest', 'AuthenticationRequest');
INSERT INTO "kpi_title" VALUES (158, 'MOCNGW', 'MOCNGW.19', '{"cn":"AuthenticationResponse","en":"AuthenticationResponse"}', 'AuthenticationResponse', 'AuthenticationResponse');
INSERT INTO "kpi_title" VALUES (159, 'MOCNGW', 'MOCNGW.20', '{"cn":"AuthenticationReject","en":"AuthenticationReject"}', 'AuthenticationReject', 'AuthenticationReject');
INSERT INTO "kpi_title" VALUES (160, 'MOCNGW', 'MOCNGW.21', '{"cn":"AuthenticationFailure","en":"AuthenticationFailure"}', 'AuthenticationFailure', 'AuthenticationFailure');
INSERT INTO "kpi_title" VALUES (161, 'MOCNGW', 'MOCNGW.22', '{"cn":"IdentityRequest","en":"IdentityRequest"}', 'IdentityRequest', 'IdentityRequest');
INSERT INTO "kpi_title" VALUES (162, 'MOCNGW', 'MOCNGW.23', '{"cn":"IdentityResponse","en":"IdentityResponse"}', 'IdentityResponse', 'IdentityResponse');
INSERT INTO "kpi_title" VALUES (163, 'MOCNGW', 'MOCNGW.24', '{"cn":"SecurityModeCommand","en":"SecurityModeCommand"}', 'SecurityModeCommand', 'SecurityModeCommand');
INSERT INTO "kpi_title" VALUES (164, 'MOCNGW', 'MOCNGW.25', '{"cn":"SecurityModeComplete","en":"SecurityModeComplete"}', 'SecurityModeComplete', 'SecurityModeComplete');
INSERT INTO "kpi_title" VALUES (165, 'MOCNGW', 'MOCNGW.26', '{"cn":"SecurityModeReject","en":"SecurityModeReject"}', 'SecurityModeReject', 'SecurityModeReject');
INSERT INTO "kpi_title" VALUES (166, 'MOCNGW', 'MOCNGW.27', '{"cn":"EmmStatus","en":"EmmStatus"}', 'EmmStatus', 'EmmStatus');
INSERT INTO "kpi_title" VALUES (167, 'MOCNGW', 'MOCNGW.28', '{"cn":"EmmInformation","en":"EmmInformation"}', 'EmmInformation', 'EmmInformation');
INSERT INTO "kpi_title" VALUES (168, 'MOCNGW', 'MOCNGW.29', '{"cn":"DownlinkNasTransport","en":"DownlinkNasTransport"}', 'DownlinkNasTransport', 'DownlinkNasTransport');
INSERT INTO "kpi_title" VALUES (169, 'MOCNGW', 'MOCNGW.30', '{"cn":"UplinkNasTransport","en":"UplinkNasTransport"}', 'UplinkNasTransport', 'UplinkNasTransport');
INSERT INTO "kpi_title" VALUES (170, 'MOCNGW', 'MOCNGW.31', '{"cn":"CsServiceNotification","en":"CsServiceNotification"}', 'CsServiceNotification', 'CsServiceNotification');
INSERT INTO "kpi_title" VALUES (171, 'MOCNGW', 'MOCNGW.32', '{"cn":"DownlinkGenericNasTransport","en":"DownlinkGenericNasTransport"}', 'DownlinkGenericNasTransport', 'DownlinkGenericNasTransport');
INSERT INTO "kpi_title" VALUES (172, 'MOCNGW', 'MOCNGW.33', '{"cn":"UplinkGenericNasTransport","en":"UplinkGenericNasTransport"}', 'UplinkGenericNasTransport', 'UplinkGenericNasTransport');
INSERT INTO "kpi_title" VALUES (173, 'IMS', 'SCSCF.01', '{"cn": "LTE接入注册用户数","en": "UR.SubsLTE.fromVoLTE"}', 'LTE接入注册用户', 'UR.SubsLTE.fromVoLTE');
INSERT INTO "kpi_title" VALUES (174, 'IMS', 'SCSCF.02', '{"cn": "5G接入注册用户数","en": "UR.Subs5G.fromVo5G"}', '5G接入注册用户数', 'UR.Subs5G.fromVo5G');
INSERT INTO "kpi_title" VALUES (175, 'IMS', 'SCSCF.03', '{"cn": "初始注册成功次数","en": "UR.SuccInitReg"}', '初始注册成功次数', 'UR.SuccInitReg');
INSERT INTO "kpi_title" VALUES (176, 'IMS', 'SCSCF.04', '{"cn": "初始注册请求次数","en": "UR.AttInitReg"}', '初始注册请求次数', 'UR.AttInitReg');
INSERT INTO "kpi_title" VALUES (177, 'IMS', 'SCSCF.05', '{"cn": "主叫接通次数","en": "SC.SuccSessionOrig"}', '主叫接通次数', 'SC.SuccSessionOrig');
INSERT INTO "kpi_title" VALUES (178, 'IMS', 'SCSCF.06', '{"cn": "主叫试呼次数","en": "SC.AttSessionOrig"}', '主叫试呼次数', 'SC.AttSessionOrig');
INSERT INTO "kpi_title" VALUES (179, 'IMS', 'SCSCF.07', '{"cn": "被叫接通次数","en": "SC.SuccSessionTerm"}', '被叫接通次数', 'SC.SuccSessionTerm');
INSERT INTO "kpi_title" VALUES (180, 'IMS', 'SCSCF.08', '{"cn": "被叫试呼次数","en": "SC.AttSessionTerm"}', '被叫试呼次数', 'SC.AttSessionTerm');
INSERT INTO "kpi_title" VALUES (181, 'IMS', 'SCSCF.09', '{"cn": "主叫应答次数","en": "SC.AnsSessionOrig"}', '主叫应答次', 'SC.AnsSessionOrig');
INSERT INTO "kpi_title" VALUES (182, 'IMS', 'SCSCF.10', '{"cn": "主叫早释次数","en": "SC.OrigRelBeforeRing"}', '主叫早释次数', 'SC.OrigRelBeforeRing');
INSERT INTO "kpi_title" VALUES (183, 'IMS', 'SCSCF.11', '{"cn": "主叫振铃早释次数","en": "SC.OrigRelAfterRing"}', '主叫振铃早释次数', 'SC.OrigRelAfterRing');
INSERT INTO "kpi_title" VALUES (184, 'IMS', 'SCSCF.12', '{"cn": "主叫403请求禁止次数","en": "SC.FailSessionOrig.403"}', '主叫403请求禁止次数', 'SC.FailSessionOrig.403');
INSERT INTO "kpi_title" VALUES (185, 'IMS', 'SCSCF.13', '{"cn": "主叫404未找到次数","en": "SC.FailSessionOrig.404"}', '主叫404未找到次数', 'SC.FailSessionOrig.404');
INSERT INTO "kpi_title" VALUES (186, 'IMS', 'SCSCF.14', '{"cn": "主叫408请求超时次数","en": "SC.FailSessionOrig.408"}', '主叫408请求超时次数', 'SC.FailSessionOrig.408');
INSERT INTO "kpi_title" VALUES (187, 'IMS', 'SCSCF.15', '{"cn": "主叫480久叫不应次","en": "SC.FailSessionOrig.480"}', '主叫480久叫不应次', 'SC.FailSessionOrig.480');
INSERT INTO "kpi_title" VALUES (188, 'IMS', 'SCSCF.16', '{"cn": "主叫484Request-URI不完整次","en": "SC.FailSessionOrig.484"}', '主叫484Request-URI不完整次', 'SC.FailSessionOrig.484');
INSERT INTO "kpi_title" VALUES (189, 'IMS', 'SCSCF.17', '{"cn": "主叫486用户忙次数","en": "SC.FailSessionOrig.486"}', '主叫486用户忙次数', 'SC.FailSessionOrig.486');
INSERT INTO "kpi_title" VALUES (190, 'IMS', 'SCSCF.18', '{"cn": "主叫487请求终止次数","en": "SC.FailSessionOrig.487"}', '主叫487请求终止次数', 'SC.FailSessionOrig.487');
INSERT INTO "kpi_title" VALUES (191, 'IMS', 'SCSCF.19', '{"cn": "主叫600用户忙次数","en": "SC.FailSessionOrig.600"}', '主叫600用户忙次数', 'SC.FailSessionOrig.600');
INSERT INTO "kpi_title" VALUES (192, 'IMS', 'SCSCF.20', '{"cn": "主叫603用户拒接次数","en": "SC.FailSessionOrig.603"}', '主叫603用户拒接次数', 'SC.FailSessionOrig.603');
INSERT INTO "kpi_title" VALUES (193, 'IMS', 'SCSCF.21', '{"cn": "主叫604用户信息不存在次数","en": "SC.FailSessionOrig.604"}', '主叫604用户信息不存在次数', 'SC.FailSessionOrig.604');
INSERT INTO "kpi_title" VALUES (194, 'IMS', 'SCSCF.22', '{"cn": "被叫应答次数","en": "SC.AnsSessionTerm"}', '被叫应答次数', 'SC.AnsSessionTerm');
INSERT INTO "kpi_title" VALUES (195, 'IMS', 'SCSCF.23', '{"cn": "被叫早释次","en": "SC.TermiRelBeforeRing"}', '被叫早释次', 'SC.TermiRelBeforeRing');
INSERT INTO "kpi_title" VALUES (196, 'IMS', 'SCSCF.24', '{"cn": "被叫振铃早释次数","en": "SC.TermiRelAfterRing"}', '被叫振铃早释次数', 'SC.TermiRelAfterRing');
INSERT INTO "kpi_title" VALUES (197, 'IMS', 'SCSCF.25', '{"cn": "被叫403请求禁止次数","en": "SC.FailSessionTerm.403"}', '被叫403请求禁止次数', 'SC.FailSessionTerm.403');
INSERT INTO "kpi_title" VALUES (198, 'IMS', 'SCSCF.26', '{"cn": "被叫404未找到次数","en": "SC.FailSessionTerm.404"}', '被叫404未找到次数', 'SC.FailSessionTerm.404');
INSERT INTO "kpi_title" VALUES (199, 'IMS', 'SCSCF.27', '{"cn": "被叫408请求超时次数","en": "SC.FailSessionTerm.408"}', '被叫408请求超时次数', 'SC.FailSessionTerm.408');
INSERT INTO "kpi_title" VALUES (200, 'IMS', 'SCSCF.28', '{"cn": "被叫480久叫不应次数","en": "SC.FailSessionTerm.480"}', '被叫480久叫不应次数', 'SC.FailSessionTerm.480');
INSERT INTO "kpi_title" VALUES (201, 'IMS', 'SCSCF.29', '{"cn": "被叫484Request-URI不完整次数","en": "SC.FailSessionTerm.484"}', '被叫484Request-URI不完整次数', 'SC.FailSessionTerm.484');
INSERT INTO "kpi_title" VALUES (202, 'IMS', 'SCSCF.30', '{"cn": "被叫486用户忙次数","en": "SC.FailSessionTerm.486"}', '被叫486用户忙次数', 'SC.FailSessionTerm.486');
INSERT INTO "kpi_title" VALUES (203, 'IMS', 'SCSCF.31', '{"cn": "被叫487请求终止次数","en": "SC.FailSessionTerm.487"}', '被叫487请求终止次数', 'SC.FailSessionTerm.487');
INSERT INTO "kpi_title" VALUES (204, 'IMS', 'SCSCF.32', '{"cn": "被叫600用户忙次数","en": "SC.FailSessionTerm.600"}', '被叫600用户忙次数', 'SC.FailSessionTerm.600');
INSERT INTO "kpi_title" VALUES (205, 'IMS', 'SCSCF.33', '{"cn": "被叫603用户拒接次数","en": "SC.FailSessionTerm.603"}', '被叫603用户拒接次数', 'SC.FailSessionTerm.603');
INSERT INTO "kpi_title" VALUES (206, 'IMS', 'SCSCF.34', '{"cn": "被叫604用户信息不存在次数","en": "SC.FailSessionTerm.604"}', '被叫604用户信息不存在次数', 'SC.FailSessionTerm.604');
INSERT INTO "kpi_title" VALUES (207, 'PCF', 'PCF.01', '{"cn": "在线N7会话数", "en": "PCF.SmAssocNbrMean"}', '在线N7会话数', 'PCF.SmAssocNbrMean');
INSERT INTO "kpi_title" VALUES (208, 'PCF', 'PCF.02', '{"cn": "SM策略关联建立成功次数", "en": "PCF.PolicySmAssocCreateSucc"}', 'SM策略关联建立成功次数', 'PCF.PolicySmAssocCreateSucc');
INSERT INTO "kpi_title" VALUES (209, 'PCF', 'PCF.03', '{"cn": "SM策略关联建立请求次数", "en": "PCF.PolicySmAssocCreateReq"}', 'SM策略关联建立请求次数', 'PCF.PolicySmAssocCreateReq');
INSERT INTO "kpi_title" VALUES (210, 'PCF', 'PCF.04', '{"cn": "SM策略关联更新成功次数", "en": "PCF.PolicySmAssocUpdateSucc"}', 'SM策略关联更新成功次数', 'PCF.PolicySmAssocUpdateSucc');
INSERT INTO "kpi_title" VALUES (211, 'PCF', 'PCF.05', '{"cn": "SM策略关联更新请求次数", "en": "PCF.PolicySmAssocUpdateReq"}', 'SM策略关联更新请求次数', 'PCF.PolicySmAssocUpdateReq');
INSERT INTO "kpi_title" VALUES (212, 'PCF', 'PCF.06', '{"cn": "在线Gx会话数", "en": "SM.SessionNbrMean"}', '在线Gx会话数', 'SM.SessionNbrMean');
INSERT INTO "kpi_title" VALUES (213, 'PCF', 'PCF.07', '{"cn": "在线Rx会话数", "en": "SM.RxSessionMean"}', '在线Rx会话数', 'SM.RxSessionMean');
INSERT INTO "kpi_title" VALUES (214, 'PCF', 'PCF.08', '{"cn": "PCRF策略控制发起成功次数", "en": "DIAM.CcInitialSuccess"}', 'PCRF策略控制发起成功次数', 'DIAM.CcInitialSuccess');
INSERT INTO "kpi_title" VALUES (215, 'PCF', 'PCF.09', '{"cn": "PCRF策略控制发起请求次数", "en": "DIAM.CcInitialRequest"}', 'PCRF策略控制发起请求次数', 'DIAM.CcInitialRequest');
INSERT INTO "kpi_title" VALUES (216, 'PCF', 'PCF.10', '{"cn": "应用会话授权成功次数", "en": "DIAM.AuthSucc"}', '应用会话授权成功次数', 'DIAM.AuthSucc');
INSERT INTO "kpi_title" VALUES (217, 'PCF', 'PCF.11', '{"cn": "应用会话授权尝试次数", "en": "DIAM.AuthRequest"}', '应用会话授权尝试次数', 'DIAM.AuthRequest');
INSERT INTO "kpi_title" VALUES (218, 'PCF', 'PCF.12', '{"cn": "PCRF策略控制更新成功次数", "en": "DIAM.CcUpdateSuccess"}', 'PCRF策略控制更新成功次数', 'DIAM.CcUpdateSuccess');
INSERT INTO "kpi_title" VALUES (219, 'PCF', 'PCF.13', '{"cn": "PCRF策略控制更新请求次数", "en": "DIAM.CcUpdateRequest"}', 'PCRF策略控制更新请求次数', 'DIAM.CcUpdateRequest');
INSERT INTO "kpi_title" VALUES (220, 'SMSC', 'SMSC.A.01', '{"cn": "MS到SMSC短信请求次数", "en": "SMSC.MStoSMSCAtt"}', 'MS到SMSC短信请求次数', 'SMSC.MStoSMSCAtt');
INSERT INTO "kpi_title" VALUES (221, 'SMSC', 'SMSC.A.02', '{"cn": "MS到SMSC短信成功次数", "en": "SMSC.MStoSMSCSucc"}', 'MS到SMSC短信成功次数', 'SMSC.MStoSMSCSucc');
INSERT INTO "kpi_title" VALUES (222, 'SMSC', 'SMSC.A.03', '{"cn": "MS到SMSC短信失败次数", "en": "SMSC.MStoSMSCFail"}', 'MS到SMSC短信失败次数', 'SMSC.MStoSMSCFail');
INSERT INTO "kpi_title" VALUES (223, 'SMSC', 'SMSC.A.04', '{"cn": "MS到SMSC短信字节数", "en": "SMSC.MStoSMSCBytes"}', 'MS到SMSC短信字节数', 'SMSC.MStoSMSCBytes');
INSERT INTO "kpi_title" VALUES (224, 'SMSC', 'SMSC.A.05', '{"cn": "VSS到SMSC短信请求次数", "en": "SMSC.VSStoSMSCAtt"}', 'VSS到SMSC短信请求次数', 'SMSC.VSStoSMSCAtt');
INSERT INTO "kpi_title" VALUES (225, 'SMSC', 'SMSC.A.06', '{"cn": "VSS到SMSC短信成功次数", "en": "SMSC.VSStoSMSCSucc"}', 'VSS到SMSC短信成功次数', 'SMSC.VSStoSMSCSucc');
INSERT INTO "kpi_title" VALUES (226, 'SMSC', 'SMSC.A.07', '{"cn": "VSS到SMSC短信失败次数", "en": "SMSC.VSStoSMSCFail"}', 'VSS到SMSC短信失败次数', 'SMSC.VSStoSMSCFail');
INSERT INTO "kpi_title" VALUES (227, 'SMSC', 'SMSC.A.08', '{"cn": "VSS到SMSC短信字节数", "en": "SMSC.VSStoSMSCBytes"}', 'VSS到SMSC短信字节数', 'SMSC.VSStoSMSCBytes');
INSERT INTO "kpi_title" VALUES (228, 'SMSC', 'SMSC.A.09', '{"cn": "PPS到SMSC短信请求次数", "en": "SMSC.PPStoSMSCAtt"}', 'PPS到SMSC短信请求次数', 'SMSC.PPStoSMSCAtt');
INSERT INTO "kpi_title" VALUES (229, 'SMSC', 'SMSC.A.10', '{"cn": "PPS到SMSC短信成功次数", "en": "SMSC.PPStoSMSCSucc"}', 'PPS到SMSC短信成功次数', 'SMSC.PPStoSMSCSucc');
INSERT INTO "kpi_title" VALUES (230, 'SMSC', 'SMSC.A.11', '{"cn": "PPS到SMSC短信失败次数", "en": "SMSC.PPStoSMSCFail"}', 'PPS到SMSC短信失败次数', 'SMSC.PPStoSMSCFail');
INSERT INTO "kpi_title" VALUES (231, 'SMSC', 'SMSC.A.12', '{"cn": "PPS到SMSC短信字节数", "en": "SMSC.PPStoSMSCBytes"}', 'PPS到SMSC短信字节数', 'SMSC.PPStoSMSCBytes');
INSERT INTO "kpi_title" VALUES (232, 'SMSC', 'SMSC.A.13', '{"cn": "SMPP到SMSC短信请求次数", "en": "SMSC.SMPPtoSMSCAtt"}', 'SMPP到SMSC短信请求次数', 'SMSC.SMPPtoSMSCAtt');
INSERT INTO "kpi_title" VALUES (233, 'SMSC', 'SMSC.A.14', '{"cn": "SMPP到SMSC短信成功次数", "en": "SMSC.SMPPtoSMSCSucc"}', 'SMPP到SMSC短信成功次数', 'SMSC.SMPPtoSMSCSucc');
INSERT INTO "kpi_title" VALUES (234, 'SMSC', 'SMSC.A.15', '{"cn": "SMPP到SMSC短信失败次数", "en": "SMSC.SMPPtoSMSCFail"}', 'SMPP到SMSC短信失败次数', 'SMSC.SMPPtoSMSCFail');
INSERT INTO "kpi_title" VALUES (235, 'SMSC', 'SMSC.A.16', '{"cn": "SMPP到SMSC短信字节数", "en": "SMSC.SMPPtoSMSCBytes"}', 'SMPP到SMSC短信字节数', 'SMSC.SMPPtoSMSCBytes');
INSERT INTO "kpi_title" VALUES (236, 'SMSC', 'SMSC.A.17', '{"cn": "SMSC到MS短信请求次数", "en": "SMSC.SMSCtoMSAtt"}', 'SMSC到MS短信请求次数', 'SMSC.SMSCtoMSAtt');
INSERT INTO "kpi_title" VALUES (237, 'SMSC', 'SMSC.A.18', '{"cn": "SMSC到MS短信成功次数", "en": "SMSC.SMSCtoMSSucc"}', 'SMSC到MS短信成功次数', 'SMSC.SMSCtoMSSucc');
INSERT INTO "kpi_title" VALUES (238, 'SMSC', 'SMSC.A.19', '{"cn": "SMSC到MS短信失败次数", "en": "SMSC.SMSCtoMSFail"}', 'SMSC到MS短信失败次数', 'SMSC.SMSCtoMSFail');
INSERT INTO "kpi_title" VALUES (239, 'SMSC', 'SMSC.A.20', '{"cn": "SMSC到MS短信字节数", "en": "SMSC.SMSCtoMSBytes"}', 'SMSC到MS短信字节数', 'SMSC.SMSCtoMSBytes');
INSERT INTO "kpi_title" VALUES (240, 'SMSC', 'SMSC.A.21', '{"cn": "SMSC到VSS短信请求次数", "en": "SMSC.SMSCtoVSSAtt"}', 'SMSC到VSS短信请求次数', 'SMSC.SMSCtoVSSAtt');
INSERT INTO "kpi_title" VALUES (241, 'SMSC', 'SMSC.A.22', '{"cn": "SMSC到VSS短信成功次数", "en": "SMSC.SMSCtoVSSucc"}', 'SMSC到VSS短信成功次数', 'SMSC.SMSCtoVSSucc');
INSERT INTO "kpi_title" VALUES (242, 'SMSC', 'SMSC.A.23', '{"cn": "SMSC到VSS短信失败次数", "en": "SMSC.SMSCtoVSSFail"}', 'SMSC到VSS短信失败次数', 'SMSC.SMSCtoVSSFail');
INSERT INTO "kpi_title" VALUES (243, 'SMSC', 'SMSC.A.24', '{"cn": "SMSC到VSS短信字节数", "en": "SMSC.SMSCtoVSSBytes"}', 'SMSC到VSS短信字节数', 'SMSC.SMSCtoVSSBytes');
INSERT INTO "kpi_title" VALUES (244, 'SMSC', 'SMSC.A.25', '{"cn": "SMSC到PPS短信请求次数", "en": "SMSC.SMSCtoPPSAtt"}', 'SMSC到PPS短信请求次数', 'SMSC.SMSCtoPPSAtt');
INSERT INTO "kpi_title" VALUES (245, 'SMSC', 'SMSC.A.26', '{"cn": "SMSC到PPS短信成功次数", "en": "SMSC.SMSCtoPPSucc"}', 'SMSC到PPS短信成功次数', 'SMSC.SMSCtoPPSucc');
INSERT INTO "kpi_title" VALUES (246, 'SMSC', 'SMSC.A.27', '{"cn": "SMSC到PPS短信失败次数", "en": "SMSC.SMSCtoPPSFail"}', 'SMSC到PPS短信失败次数', 'SMSC.SMSCtoPPSFail');
INSERT INTO "kpi_title" VALUES (247, 'SMSC', 'SMSC.A.28', '{"cn": "SMSC到PPS短信字节数", "en": "SMSC.SMSCtoPPSBytes"}', 'SMSC到PPS短信字节数', 'SMSC.SMSCtoPPSBytes');
INSERT INTO "kpi_title" VALUES (248, 'SMSC', 'SMSC.A.29', '{"cn": "SMSC到SMPP短信请求次数", "en": "SMSC.SMSCtoSMPPAtt"}', 'SMSC到SMPP短信请求次数', 'SMSC.SMSCtoSMPPAtt');
INSERT INTO "kpi_title" VALUES (249, 'SMSC', 'SMSC.A.30', '{"cn": "SMSC到SMPP短信成功次数", "en": "SMSC.SMSCtoSMPPucc"}', 'SMSC到SMPP短信成功次数', 'SMSC.SMSCtoSMPPucc');
INSERT INTO "kpi_title" VALUES (250, 'SMSC', 'SMSC.A.31', '{"cn": "SMSC到SMPP短信失败次数", "en": "SMSC.SMSCtoSMPPFail"}', 'SMSC到SMPP短信失败次数', 'SMSC.SMSCtoSMPPFail');
INSERT INTO "kpi_title" VALUES (251, 'SMSC', 'SMSC.A.32', '{"cn": "SMSC到SMPP短信字节数", "en": "SMSC.SMSCtoSMPPBytes"}', 'SMSC到SMPP短信字节数', 'SMSC.SMSCtoSMPPBytes');
INSERT INTO "kpi_title" VALUES (252, 'CBC', 'CBC.A.01', '{"cn": "CBC 发起 Create Write 消息成功", "en": "WarningReqSucc"}', 'CBC 发起 Create Write 消息成功', 'WarningReqSucc');
INSERT INTO "kpi_title" VALUES (253, 'CBC', 'CBC.A.02', '{"cn": "CBC 发起 Create Write 消息失败", "en": "WarningReqFail"}', 'CBC 发起 Create Write 消息失败', 'WarningReqFail');
INSERT INTO "kpi_title" VALUES (254, 'CBC', 'CBC.A.03', '{"cn": "CBC 发起 Cancel Write 消息成功", "en": "WarningCancelSucc"}', 'CBC 发起 Cancel Write 消息成功', 'WarningCancelSucc');
INSERT INTO "kpi_title" VALUES (255, 'CBC', 'CBC.A.04', '{"cn": "CBC 发起 Cancel Write 消息失败", "en": "WarningCancelFail"}', 'CBC 发起 Cancel Write 消息失败', 'WarningCancelFail');
INSERT INTO "kpi_title" VALUES (256, 'HLR', 'HLR.A.001', NULL, '鉴权信息请求次数', 'AuthReqTotalNum');
INSERT INTO "kpi_title" VALUES (257, 'HLR', 'HLR.A.002', NULL, '鉴权信息请求成功次数', 'AuthSuccTotalNum');
INSERT INTO "kpi_title" VALUES (258, 'HLR', 'HLR.A.003', NULL, '鉴权请求失败:缺参数', 'AuthFailByMissPara');
INSERT INTO "kpi_title" VALUES (259, 'HLR', 'HLR.A.004', NULL, '鉴权请求失败:系统错误', 'AuthFailBySysFail');
INSERT INTO "kpi_title" VALUES (260, 'HLR', 'HLR.A.005', NULL, '鉴权请求失败:非期望的参数值', 'AuthFailByUnexptData');
INSERT INTO "kpi_title" VALUES (261, 'HLR', 'HLR.A.006', NULL, '鉴权请求失败:未知用户', 'AuthFailByUnknownUser');
INSERT INTO "kpi_title" VALUES (262, 'HLR', 'HLR.A.007', NULL, '鉴权失败报告次数', 'AuthFailReportTotalNum');
INSERT INTO "kpi_title" VALUES (263, 'HLR', 'HLR.A.008', NULL, '鉴权失败报告(错误的网络签名)次数', 'AuthFailReportByErrNetSign');
INSERT INTO "kpi_title" VALUES (264, 'HLR', 'HLR.A.009', NULL, '鉴权失败报告(错误的用户响应)次数', 'AuthFailReportByErrUserRsp');
INSERT INTO "kpi_title" VALUES (265, 'HLR', 'HLR.A.010', NULL, '登记请求次数', 'LuReqTotalNum');
INSERT INTO "kpi_title" VALUES (266, 'HLR', 'HLR.A.011', NULL, '登记成功次数', 'LuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (267, 'HLR', 'HLR.A.012', NULL, '登记失败:复制手机', 'LuFailByDuplicUnit');
INSERT INTO "kpi_title" VALUES (268, 'HLR', 'HLR.A.013', NULL, '登记失败无效ESN', 'LuFailByInvalidESN');
INSERT INTO "kpi_title" VALUES (269, 'HLR', 'HLR.A.014', NULL, '登记失败:缺鉴权参数', 'LuFailByMissAuthPara');
INSERT INTO "kpi_title" VALUES (270, 'HLR', 'HLR.A.015', NULL, '登记失败在这个MSC中不能使用', 'LuFailByMscNotAllow');
INSERT INTO "kpi_title" VALUES (271, 'HLR', 'HLR.A.016', NULL, '登记失败:终端类型不匹配', 'LuFailByUeTypeMismatch');
INSERT INTO "kpi_title" VALUES (272, 'HLR', 'HLR.A.017', NULL, '登记失败:未分配号码的手机', 'LuFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (273, 'HLR', 'HLR.A.018', NULL, '登记失败:不确定', 'LuFailByUnKnown');
INSERT INTO "kpi_title" VALUES (274, 'HLR', 'HLR.A.019', NULL, '注销登记次数', 'CancelLuReqTotalNum');
INSERT INTO "kpi_title" VALUES (275, 'HLR', 'HLR.A.020', NULL, '注销登记成功次数', 'CancelLuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (276, 'HLR', 'HLR.A.021', NULL, '注销失败:系统错误', 'CancelLuFailBySysFail');
INSERT INTO "kpi_title" VALUES (277, 'HLR', 'HLR.A.022', NULL, '注销失败:缺参数', 'CancelLuFailByMissPara');
INSERT INTO "kpi_title" VALUES (278, 'HLR', 'HLR.A.023', NULL, '移动台去活次数', 'MsPurgeReqTotalNum');
INSERT INTO "kpi_title" VALUES (279, 'HLR', 'HLR.A.024', NULL, '移动台去活成功次数', 'MsPurgeSuccTotalNum');
INSERT INTO "kpi_title" VALUES (280, 'HLR', 'HLR.A.025', NULL, '移动台去活:系统错误', 'MsPurgeFailBySysFail');
INSERT INTO "kpi_title" VALUES (281, 'HLR', 'HLR.A.026', NULL, '移动台去活:非期望的参数值', 'MsPurgeFailByUnexptPara');
INSERT INTO "kpi_title" VALUES (282, 'HLR', 'HLR.A.027', NULL, '移动台去活:未知用户', 'MsPurgeFailByUnknownUser');
INSERT INTO "kpi_title" VALUES (283, 'HLR', 'HLR.A.028', NULL, 'GPRS登记请求次数', 'GprsLuReqTotalNum');
INSERT INTO "kpi_title" VALUES (284, 'HLR', 'HLR.A.029', NULL, 'GPRS登记请求成功次数', 'GprsLuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (285, 'HLR', 'HLR.A.030', NULL, 'GPRS去登记次数', 'GprsPurgeReqTotalNum');
INSERT INTO "kpi_title" VALUES (286, 'HLR', 'HLR.A.031', NULL, 'GPRS去登记成功次数', 'GprsPurgeSuccTotalNum');
INSERT INTO "kpi_title" VALUES (287, 'HLR', 'HLR.A.032', NULL, 'GPRS注销登记次数', 'GprsCancelLuReqTotalNum');
INSERT INTO "kpi_title" VALUES (288, 'HLR', 'HLR.A.033', NULL, 'GPRS注销登记成功次数', 'GprsCancelLuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (289, 'HLR', 'HLR.A.034', NULL, 'GPRS路由请求次数', 'GprsRoutInfoReqTotalNum');
INSERT INTO "kpi_title" VALUES (290, 'HLR', 'HLR.A.035', NULL, 'GPRS用户激活失败报告次数', 'GprsActiveFailReportTotalNum');
INSERT INTO "kpi_title" VALUES (291, 'HLR', 'HLR.A.036', NULL, 'GPRS用户激活失败报告成功次数', 'GprsActiveFailReportSuccTotalNum');
INSERT INTO "kpi_title" VALUES (292, 'HLR', 'HLR.A.037', NULL, 'GPRS用户激活失败报告失败缺参数', 'GprsActiveFailReportFailByMissPara');
INSERT INTO "kpi_title" VALUES (293, 'HLR', 'HLR.A.038', NULL, 'GPRS用户激活失败报告失败系统错误', 'GprsActiveFailReportFailBySysFail');
INSERT INTO "kpi_title" VALUES (294, 'HLR', 'HLR.A.039', NULL, 'GPRS用户激活失败报告失败非期望的参数值', 'GprsActiveFailReportFailByUnexptPara');
INSERT INTO "kpi_title" VALUES (295, 'HLR', 'HLR.A.040', NULL, 'GPRS用户激活失败报告失败未知用户', 'GprsActiveFailReportFailByUnKnownUser');
INSERT INTO "kpi_title" VALUES (296, 'HLR', 'HLR.A.041', NULL, '发起CFU业务登记且激活次数', 'CfuActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (297, 'HLR', 'HLR.A.042', NULL, 'CFU业务登记且激活成功次数', 'CfuActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (298, 'HLR', 'HLR.A.043', NULL, 'CFU登记失败MS忙', 'CfuRegFailByMsBusy');
INSERT INTO "kpi_title" VALUES (299, 'HLR', 'HLR.A.044', NULL, 'CFU登记失败不允许将呼叫终接到MS', 'CfuRegFailByMsDenied');
INSERT INTO "kpi_title" VALUES (300, 'HLR', 'HLR.A.045', NULL, 'CFU登记失败MS去登记状态', 'CfuRegFailByMsErase');
INSERT INTO "kpi_title" VALUES (301, 'HLR', 'HLR.A.046', NULL, 'CFU登记失败无寻呼响应', 'CfuRegFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (302, 'HLR', 'HLR.A.047', NULL, 'CFU登记失败系统错误', 'CfuRegFailBySysFail');
INSERT INTO "kpi_title" VALUES (303, 'HLR', 'HLR.A.048', NULL, 'CFU登记失败未分配电话号码', 'CfuRegFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (304, 'HLR', 'HLR.A.049', NULL, 'CFU登记失败不可用', 'CfuRegFailByUnavailable');
INSERT INTO "kpi_title" VALUES (305, 'HLR', 'HLR.A.050', NULL, '发起CFU业务去活次数', 'CfuDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (306, 'HLR', 'HLR.A.051', NULL, 'CFU业务去活成功次数', 'CfuDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (307, 'HLR', 'HLR.A.052', NULL, 'CFU去活失败MS忙', 'CfuDeActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (308, 'HLR', 'HLR.A.053', NULL, 'CFU去活失败不允许将呼叫终接到MS', 'CfuDeActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (309, 'HLR', 'HLR.A.054', NULL, 'CFU去活失败未分配电话号码', 'CfuDeActvFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (310, 'HLR', 'HLR.A.055', NULL, 'CFU去活失败MS去登记状态', 'CfuDeActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (311, 'HLR', 'HLR.A.056', NULL, 'CFU去活失败无寻呼响应', 'CfuDeActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (312, 'HLR', 'HLR.A.057', NULL, 'CFU去活失败系统错误', 'CfuDeActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (313, 'HLR', 'HLR.A.058', NULL, 'CFU去活失败不可用', 'CfuDeActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (314, 'HLR', 'HLR.A.059', NULL, '发起CFB业务登记且激活次数', 'CfbActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (315, 'HLR', 'HLR.A.060', NULL, 'CFB业务登记且激活成功次数', 'CfbActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (316, 'HLR', 'HLR.A.061', NULL, 'CFB登记失败MS忙', 'CfbRegFailByMsBusy');
INSERT INTO "kpi_title" VALUES (317, 'HLR', 'HLR.A.062', NULL, 'CFB登记失败不允许将呼叫终接到MS', 'CfbRegFailByMsDenied');
INSERT INTO "kpi_title" VALUES (318, 'HLR', 'HLR.A.063', NULL, 'CFB登记失败MS去登记状态', 'CfbRegFailByMsErase');
INSERT INTO "kpi_title" VALUES (319, 'HLR', 'HLR.A.064', NULL, 'CFB登记失败无寻呼响应', 'CfbRegFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (320, 'HLR', 'HLR.A.065', NULL, 'CFB登记失败系统错误', 'CfbRegFailBySysFail');
INSERT INTO "kpi_title" VALUES (321, 'HLR', 'HLR.A.066', NULL, 'CFB登记失败未分配电话号码', 'CfbRegFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (322, 'HLR', 'HLR.A.067', NULL, 'CFB登记失败不可用', 'CfbRegFailByUnavailable');
INSERT INTO "kpi_title" VALUES (323, 'HLR', 'HLR.A.068', NULL, '发起CFB业务去活次数', 'CfbDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (324, 'HLR', 'HLR.A.069', NULL, 'CFB业务去活成功次数', 'CfbDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (325, 'HLR', 'HLR.A.070', NULL, 'CFB去活失败MS忙', 'CfbDeActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (326, 'HLR', 'HLR.A.071', NULL, 'CFB去活失败不允许将呼叫终接到MS', 'CfbDeActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (327, 'HLR', 'HLR.A.072', NULL, 'CFB去活失败MS去登记状态', 'CfbDeActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (328, 'HLR', 'HLR.A.073', NULL, 'CFB去活失败无寻呼响应', 'CfbDeActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (329, 'HLR', 'HLR.A.074', NULL, 'CFB去活失败系统错误', 'CfbDeActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (330, 'HLR', 'HLR.A.075', NULL, 'CFB去活失败未分配电话号码', 'CfbDeActvFailByUnAssignMsisdn ');
INSERT INTO "kpi_title" VALUES (331, 'HLR', 'HLR.A.076', NULL, 'CFB去活失败不可用', 'CfbDeActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (332, 'HLR', 'HLR.A.077', NULL, '发起CFNRy业务登记且激活次数', 'CfnryActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (333, 'HLR', 'HLR.A.078', NULL, 'CFNRy业务登记且激活成功次数', 'CfnryActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (334, 'HLR', 'HLR.A.079', NULL, 'CFNRy登记失败MS忙', 'CfnryRegFailByMsBusy');
INSERT INTO "kpi_title" VALUES (335, 'HLR', 'HLR.A.080', NULL, 'CFNRy登记失败不允许将呼叫终接到MS', 'CfnryRegFailByMsDenied');
INSERT INTO "kpi_title" VALUES (336, 'HLR', 'HLR.A.081', NULL, 'CFNRy登记失败MS去登记状态', 'CfnryRegFailByMsErase');
INSERT INTO "kpi_title" VALUES (337, 'HLR', 'HLR.A.082', NULL, 'CFNRy登记失败无寻呼响应', 'CfnryRegFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (338, 'HLR', 'HLR.A.083', NULL, 'CFNRy登记失败系统错误', 'CfnryRegFailBySysFail');
INSERT INTO "kpi_title" VALUES (339, 'HLR', 'HLR.A.084', NULL, 'CFNRy登记失败未分配电话号码', 'CfnryRegFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (340, 'HLR', 'HLR.A.085', NULL, 'CFNRy登记失败不可用', 'CfnryRegFailByUnavailable');
INSERT INTO "kpi_title" VALUES (341, 'HLR', 'HLR.A.086', NULL, '发起CFNRy业务去活次数', 'CfnryDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (342, 'HLR', 'HLR.A.087', NULL, 'CFNRy业务去活成功次数', 'CfnryDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (343, 'HLR', 'HLR.A.088', NULL, 'CFNRy去活失败MS忙', 'CfnryDeActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (344, 'HLR', 'HLR.A.089', NULL, 'CFNRy去活失败不允许将呼叫终接到MS', 'CfnryDeActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (345, 'HLR', 'HLR.A.090', NULL, 'CFNRy去活失败MS去登记状态', 'CfnryDeActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (346, 'HLR', 'HLR.A.091', NULL, 'CFNRy去活失败无寻呼响应', 'CfnryDeActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (347, 'HLR', 'HLR.A.092', NULL, 'CFNRy去活失败系统错误', 'CfnryDeActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (348, 'HLR', 'HLR.A.093', NULL, 'CFNRy去活失败未分配电话号码', 'CfnryDeActvFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (349, 'HLR', 'HLR.A.094', NULL, 'CFNRy去活失败不可用', 'CfnryDeActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (350, 'HLR', 'HLR.A.095', NULL, '发起CFNRc)业务登记且激活次数', 'CfnrcActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (351, 'HLR', 'HLR.A.096', NULL, '(CFNRc)业务登记且激活成功次数', 'CfnrcActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (352, 'HLR', 'HLR.A.097', NULL, '(CFNRc)登记失败MS忙', 'CfnrcRegFailByMsBusy');
INSERT INTO "kpi_title" VALUES (353, 'HLR', 'HLR.A.098', NULL, '(CFNRc)登记失败不允许将呼叫终接到MS', 'CfnrcRegFailByMsDenied');
INSERT INTO "kpi_title" VALUES (354, 'HLR', 'HLR.A.099', NULL, '(CFNRc)登记失败MS去登记状态', 'CfnrcRegFailByMsErase');
INSERT INTO "kpi_title" VALUES (355, 'HLR', 'HLR.A.100', NULL, '(CFNRc)登记失败:无寻呼响应', 'CfnrcRegFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (356, 'HLR', 'HLR.A.101', NULL, '(CFNRc)登记失败:系统错误', 'CfnrcRegFailBySysFail');
INSERT INTO "kpi_title" VALUES (357, 'HLR', 'HLR.A.102', NULL, '(CFNRc)登记失败:未分配电话号码', 'CfnrcRegFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (358, 'HLR', 'HLR.A.103', NULL, '(CFNRc)登记失败:不可用', 'CfnrcRegFailByUnavailable');
INSERT INTO "kpi_title" VALUES (359, 'HLR', 'HLR.A.104', NULL, '发起CFNRc)业务去活次数', 'CfnrcDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (360, 'HLR', 'HLR.A.105', NULL, 'CFNRc业务去活成功次数', 'CfnrcDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (361, 'HLR', 'HLR.A.106', NULL, 'CFNRc)去活失败MS忙', 'CfnrcDeActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (362, 'HLR', 'HLR.A.107', NULL, 'CFNRc)去活失败不允许将呼叫终接到MS', 'CfnrcDeActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (363, 'HLR', 'HLR.A.108', NULL, 'CFNRc)去活失败MS去登记状态', 'CfnrcDeActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (364, 'HLR', 'HLR.A.109', NULL, 'CFNRc)去活失败:无寻呼响应', 'CfnrcDeActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (365, 'HLR', 'HLR.A.110', NULL, 'CFNRc)去活失败:系统错误', 'CfnrcDeActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (366, 'HLR', 'HLR.A.111', NULL, 'CFNRc)去活失败:未分配电话号码', 'CfnrcDeActvFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (367, 'HLR', 'HLR.A.112', NULL, 'CFNRc)去活失败:不可用', 'CfnrcDeActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (368, 'HLR', 'HLR.A.113', NULL, '发起CW业务激活次数', 'CwActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (369, 'HLR', 'HLR.A.114', NULL, 'CW业务激活成功次数', 'CwActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (370, 'HLR', 'HLR.A.115', NULL, 'CW激活失败MS忙', 'CwActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (371, 'HLR', 'HLR.A.116', NULL, 'CW激活失败不允许将呼叫终接到MS', 'CwActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (372, 'HLR', 'HLR.A.117', NULL, 'CW激活失败MS去登记状态', 'CwActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (373, 'HLR', 'HLR.A.118', NULL, 'CW激活失败无寻呼响应', 'CwActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (374, 'HLR', 'HLR.A.119', NULL, 'CW激活失败系统错误', 'CwActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (375, 'HLR', 'HLR.A.120', NULL, 'CW激活失败未分配电话号码', 'CwActvFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (376, 'HLR', 'HLR.A.121', NULL, 'CW激活失败不可用', 'CwActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (377, 'HLR', 'HLR.A.122', NULL, '发起CW业务去活次数', 'CwDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (378, 'HLR', 'HLR.A.123', NULL, 'CW业务去活成功次数', 'CwDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (379, 'HLR', 'HLR.A.124', NULL, 'CW去活失败MS忙', 'CwDeActvFailByMsBusy');
INSERT INTO "kpi_title" VALUES (380, 'HLR', 'HLR.A.125', NULL, 'CW去活失败不允许将呼叫终接到MS', 'CwDeActvFailByMsDenied');
INSERT INTO "kpi_title" VALUES (381, 'HLR', 'HLR.A.126', NULL, 'CW去活失败MS去登记状态', 'CwDeActvFailByMsErase');
INSERT INTO "kpi_title" VALUES (382, 'HLR', 'HLR.A.127', NULL, 'CW去活失败无寻呼响应', 'CwDeActvFailByNoPagingResp');
INSERT INTO "kpi_title" VALUES (383, 'HLR', 'HLR.A.128', NULL, 'CW去活失败系统错误', 'CwDeActvFailBySysFail');
INSERT INTO "kpi_title" VALUES (384, 'HLR', 'HLR.A.129', NULL, 'CW去活失败未分配电话号码', 'CwDeActvFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (385, 'HLR', 'HLR.A.130', NULL, 'CW去活失败不可用', 'CwDeActvFailByUnavailable');
INSERT INTO "kpi_title" VALUES (386, 'HLR', 'HLR.A.131', NULL, '发起前转业务去活次数', 'CFDeActvReqTotalNum');
INSERT INTO "kpi_title" VALUES (387, 'HLR', 'HLR.A.132', NULL, '前转业务去活成功次数', 'CFDeActvSuccTotalNum');
INSERT INTO "kpi_title" VALUES (388, 'HLR', 'HLR.A.133', NULL, '发起补充业务登记次数', 'SSRegReqTotalNum');
INSERT INTO "kpi_title" VALUES (389, 'HLR', 'HLR.A.134', NULL, '发起补充业务登记成功次数', 'SSRegSuccTotalNum');
INSERT INTO "kpi_title" VALUES (390, 'HLR', 'HLR.A.135', NULL, '获取路由尝试次数', 'RouteInfoReqTotalNum');
INSERT INTO "kpi_title" VALUES (391, 'HLR', 'HLR.A.136', NULL, '获取路由成功次数', 'RouteInfoSuccTotalNum');
INSERT INTO "kpi_title" VALUES (392, 'HLR', 'HLR.A.137', NULL, '获取路由尝试失败:缺席用户', 'RouteInfoFailByAbsentSub');
INSERT INTO "kpi_title" VALUES (393, 'HLR', 'HLR.A.138', NULL, '获取路由尝试失败:未知用户', 'RouteInfoFailByUnknownSub');
INSERT INTO "kpi_title" VALUES (394, 'HLR', 'HLR.A.139', NULL, '获取路由尝试失败:系统错误', 'RouteInfoFailBySysFail');
INSERT INTO "kpi_title" VALUES (395, 'HLR', 'HLR.A.140', NULL, '获取路由尝试失败:终呼拒绝', 'RouteInfoFailByCalledReject');
INSERT INTO "kpi_title" VALUES (396, 'HLR', 'HLR.A.141', NULL, '获取路由尝试失败:缺参数', 'RouteInfoFailByDataMiss');
INSERT INTO "kpi_title" VALUES (397, 'HLR', 'HLR.A.142', NULL, '获取路由尝试失败:设备不支持', 'RouteInfoFailByFacNotSupport');
INSERT INTO "kpi_title" VALUES (398, 'HLR', 'HLR.A.143', NULL, '获取路由尝试失败:不支持路由优化', 'RouteInfoFailByORNotAllowed');
INSERT INTO "kpi_title" VALUES (399, 'HLR', 'HLR.A.144', NULL, 'SRI触发漫游号码请求失败缺席用户', 'RouteNumberFailByAbsentSub');
INSERT INTO "kpi_title" VALUES (400, 'HLR', 'HLR.A.145', NULL, 'SRI触发漫游号码请求失败缺参数', 'RouteNumberFailByDataMiss');
INSERT INTO "kpi_title" VALUES (401, 'HLR', 'HLR.A.146', NULL, 'SRI触发漫游号码请求失败设备不支持', 'RouteNumberFailByFacNotSupport');
INSERT INTO "kpi_title" VALUES (402, 'HLR', 'HLR.A.147', NULL, 'SRI触发漫游号码请求失败无漫游号码分配', 'RouteNumberFailByNoAssign');
INSERT INTO "kpi_title" VALUES (403, 'HLR', 'HLR.A.148', NULL, 'SRI触发漫游号码请求失败不支持路由优化', 'RouteNumberFailByORNotAllowed');
INSERT INTO "kpi_title" VALUES (404, 'HLR', 'HLR.A.149', NULL, 'SRI触发漫游号码请求次数', 'RouteNumberReqTotalNum');
INSERT INTO "kpi_title" VALUES (405, 'HLR', 'HLR.A.150', NULL, 'SRI触发漫游号码请求失败系统错误', 'RouteNumberFailBySysFail');
INSERT INTO "kpi_title" VALUES (406, 'HLR', 'HLR.A.151', NULL, 'SRI触发漫游号码请求失败非期望的参数值', 'RouteNumberFailByUnexpData');
INSERT INTO "kpi_title" VALUES (407, 'HLR', 'HLR.A.152', NULL, 'SRI触发漫游号码请求成功次数', 'RouteNumberSuccTotalNum');
INSERT INTO "kpi_title" VALUES (408, 'HLR', 'HLR.A.153', NULL, '路由失败:呼叫闭锁', 'SMRouteFailByCallBarred');
INSERT INTO "kpi_title" VALUES (409, 'HLR', 'HLR.A.154', NULL, '路由失败:缺参数', 'SMRouteFailByDataMiss');
INSERT INTO "kpi_title" VALUES (410, 'HLR', 'HLR.A.155', NULL, '路由失败:设备不支持', 'SMRouteFailByFacNotSupport');
INSERT INTO "kpi_title" VALUES (411, 'HLR', 'HLR.A.156', NULL, '路由失败:系统错误', 'SMRouteFailBySysFail');
INSERT INTO "kpi_title" VALUES (412, 'HLR', 'HLR.A.157', NULL, '路由失败:非期望的参数值', 'SMRouteFailByUnexptPara');
INSERT INTO "kpi_title" VALUES (413, 'HLR', 'HLR.A.158', NULL, '路由失败:未知用户', 'SMRouteFailByUnknownSub');
INSERT INTO "kpi_title" VALUES (414, 'HLR', 'HLR.A.159', NULL, '终呼失败:非法用户', 'SMRouteFailByIllegalSub');
INSERT INTO "kpi_title" VALUES (415, 'HLR', 'HLR.A.160', NULL, '终呼失败:缺席用户', 'SMRouteFailByAbsentSub');
INSERT INTO "kpi_title" VALUES (416, 'HLR', 'HLR.A.161', NULL, '终呼失败:终呼时用户忙', 'SMRouteFailByBusySub');
INSERT INTO "kpi_title" VALUES (417, 'HLR', 'HLR.A.162', NULL, '终呼失败:系统错误', 'SMRouteFailBySysFail');
INSERT INTO "kpi_title" VALUES (418, 'HLR', 'HLR.A.163', NULL, '终呼失败:不期望的参数值', 'SMRouteFailByUnexptPara');
INSERT INTO "kpi_title" VALUES (419, 'HLR', 'HLR.A.164', NULL, '终呼失败:消息等待队列满', 'SMRouteFailByMsgQueueFull');
INSERT INTO "kpi_title" VALUES (420, 'HLR', 'HLR.A.165', NULL, '接收GSM MAP_ALERT消息次数', 'GsmAlertReqTotalNum');
INSERT INTO "kpi_title" VALUES (421, 'HLR', 'HLR.A.166', NULL, '接收GSM MAP_ALERT消息成功次数', 'GsmAlertSuccTotalNum');
INSERT INTO "kpi_title" VALUES (422, 'HLR', 'HLR.A.167', NULL, '重启指示发送次数', 'ResetReqTotalNum');
INSERT INTO "kpi_title" VALUES (423, 'HLR', 'HLR.A.168', NULL, '重启成功次数', 'ResetSuccTotalNum');
INSERT INTO "kpi_title" VALUES (424, 'HLR', 'HLR.A.169', NULL, '数据恢复请求次数', 'RestoreDataReqTotalNum');
INSERT INTO "kpi_title" VALUES (425, 'HLR', 'HLR.A.170', NULL, '数据恢复成功次数', 'RestoreDataReqSuccNum');
INSERT INTO "kpi_title" VALUES (426, 'HLR', 'HLR.A.171', NULL, 'C2G Boss开户成功次数', 'AddUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (427, 'HLR', 'HLR.A.172', NULL, 'C2G Boss销户成功次数', 'DelUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (428, 'HLR', 'HLR.A.173', NULL, 'C2G Boss修改用户成功次数', 'ModUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (429, 'HLR', 'HLR.A.174', NULL, 'C2G Boss开户请求次数', 'AddUserBossReqNum');
INSERT INTO "kpi_title" VALUES (430, 'HLR', 'HLR.A.175', NULL, 'C2G Boss受理失败返回IMSI not used次数', 'BossServFailByImsiNot');
INSERT INTO "kpi_title" VALUES (431, 'HLR', 'HLR.A.176', NULL, 'C2G Boss受理失败返回ISDN not used次数', 'BossServFailByIsdnNot');
INSERT INTO "kpi_title" VALUES (432, 'HLR', 'HLR.A.177', NULL, 'C2G Boss受理失败返回其他错误次数', 'BossServFailByOther');
INSERT INTO "kpi_title" VALUES (433, 'HLR', 'HLR.A.178', NULL, 'C2G Boss受理失败返回repeat IMSI次数', 'BossServFailByRepImsi');
INSERT INTO "kpi_title" VALUES (434, 'HLR', 'HLR.A.179', NULL, 'C2G Boss受理失败返回repeat ISDN次数', 'BossServFailByRepIsdn');
INSERT INTO "kpi_title" VALUES (435, 'HLR', 'HLR.A.180', NULL, 'C2G Boss销户请求次数', 'DelUserBossReqNum');
INSERT INTO "kpi_title" VALUES (436, 'HLR', 'HLR.A.181', NULL, 'C2G Boss修改用户请求次数', 'ModUserBossReqNum');
INSERT INTO "kpi_title" VALUES (437, 'UDM', 'AUSF.01', '{"cn": "鉴权成功次数", "en": "Ausf.UeAuthAnsSucc"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO "kpi_title" VALUES (438, 'UDM', 'AUSF.02', '{"cn": "鉴权请求次数", "en": "Ausf.UeAuthReq"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO "kpi_title" VALUES (33, 'AMF', 'AMF.A.02', '{"cn":"AMF移动性注册更新成功次数","en":"AMF.SuccMobiReg"}', 'AMF移动性注册更新成功次', 'AMF.SuccMobiReg');
INSERT INTO "kpi_title" VALUES (34, 'AMF', 'AMF.A.03', '{"cn":"AMF移动性注册更新失败次数","en":"AMF.FailedMobiReg"}', 'AMF移动性注册更新失败次数', 'AMF.FailedMobiReg');
INSERT INTO "kpi_title" VALUES (35, 'AMF', 'AMF.A.04', '{"cn":"AMF紧急注册请求次数","en":"AMF.AttEmergReg"}', 'AMF紧急注册请求次数', 'AMF.AttEmergReg');
INSERT INTO "kpi_title" VALUES (36, 'AMF', 'AMF.A.05', '{"cn":"AMF紧急注册成功次数","en":"AMF.SuccEmergReg"}', 'AMF紧急注册成功次数', 'AMF.SuccEmergReg');
INSERT INTO "kpi_title" VALUES (37, 'AMF', 'AMF.A.06', '{"cn":"AMF紧急注册失败次数","en":"AMF.FailedEmergReg"}', 'AMF紧急注册失败次数', 'AMF.FailedEmergReg');
INSERT INTO "kpi_title" VALUES (38, 'AMF', 'AMF.A.07', '{"cn":"UE发起的去注册请求次数","en":"AMF.AttUeDereg"}', 'UE发起的去注册请求次', 'AMF.AttUeDereg');
INSERT INTO "kpi_title" VALUES (39, 'AMF', 'AMF.A.08', '{"cn":"UE发起的去注册成功次数","en":"AMF.SuccUeDereg"}', 'UE发起的去注册成功次', 'AMF.SuccUeDereg');
INSERT INTO "kpi_title" VALUES (40, 'AMF', 'AMF.A.09', '{"cn":"AMF发起的去注册请求次数","en":"AMF.AttAmfDereg"}', 'AMF发起的去注册请求次', 'AMF.AttAmfDereg');
INSERT INTO "kpi_title" VALUES (41, 'AMF', 'AMF.A.10', '{"cn":"AMF发起的去注册成功次数","en":"AMF.SuccAmfDereg"}', 'AMF发起的去注册成功次数', 'AMF.SuccAmfDereg');
INSERT INTO "kpi_title" VALUES (42, 'AMF', 'AMF.A.11', '{"cn":"UDM发起的去注册请求次数","en":"AMF.AttUdmDereg"}', 'UDM发起的去注册请求次数', 'AMF.AttUdmDereg');
INSERT INTO "kpi_title" VALUES (43, 'AMF', 'AMF.A.12', '{"cn":"UDM发起的去注册成功次数","en":"AMF.SuccUdmDereg"}', 'UDM发起的去注册成功次数', 'AMF.SuccUdmDereg');
INSERT INTO "kpi_title" VALUES (44, 'AMF', 'AMF.A.13', '{"cn":"AMF寻呼失败次数","en":"AMF.PagFail"}', 'AMF寻呼失败次数', 'AMF.PagFail');
INSERT INTO "kpi_title" VALUES (45, 'AMF', 'AMF.A.14', '{"cn":"AMF隐式去注册次数","en":"AMF.ImplicitDereg"}', 'AMF隐式去注册次', 'AMF.ImplicitDereg');
INSERT INTO "kpi_title" VALUES (60, 'UDM', 'UDM.01', '{"cn": "5G注册用户数", "en": "UDR.5gActSub"}', '5G注册用户', 'UDR.5gActSub');
INSERT INTO "kpi_title" VALUES (61, 'UDM', 'UDM.02', '{"cn": "AMF发起的UECM注册请求次数", "en": "UDM.AmfUecmRegReq"}', 'AMF发起的UECM注册请求次数', 'UDM.AmfUecmRegReq');
INSERT INTO "kpi_title" VALUES (62, 'UDM', 'UDM.03', '{"cn": "AMF发起的UECM注册成功次数", "en": "UDM.AmfUecmRegSucc"}', 'AMF发起的UECM注册成功次数', 'UDM.AmfUecmRegSucc');
INSERT INTO "kpi_title" VALUES (63, 'UDM', 'UDM.04', '{"cn": "SMF发起的UECM注册成功次数", "en": "UDM.SmfUecmRegSucc"}', 'SMF发起的UECM注册成功次数', 'UDM.SmfUecmRegSucc');
INSERT INTO "kpi_title" VALUES (64, 'UDM', 'UDM.05', '{"cn": "SMF发起的UECM注册请求次数", "en": "UDM.SmfUecmRegReq"}', 'SMF发起的UECM注册请求次数', 'UDM.SmfUecmRegReq');
INSERT INTO "kpi_title" VALUES (78, 'UDM', 'AUSF.01', '{"cn": "鉴权成功次数", "en": "Ausf.UeAuthAnsSucc"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO "kpi_title" VALUES (79, 'UDM', 'AUSF.02', '{"cn": "鉴权请求次数", "en": "Ausf.UeAuthReq"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO "kpi_title" VALUES (80, 'AUSF', 'AUSF.01', '{"cn": "鉴权成功次数", "en": "Ausf.UeAuthAnsSucc"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO "kpi_title" VALUES (81, 'AUSF', 'AUSF.02', '{"cn": "鉴权请求次数", "en": "Ausf.UeAuthReq"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO "kpi_title" VALUES (90, 'UPF', 'UPF.01', '{"cn": "PFCP会话建立成功次数", "en": "UPF.PfcpSessionEstabSucc"}', 'PFCP会话建立成功次数', 'UPF.PfcpSessionEstabSucc');
INSERT INTO "kpi_title" VALUES (91, 'UPF', 'UPF.02', '{"cn": "PFCP会话建立请求次数", "en": "UPF.PfcpSessionEstabReq"}', 'PFCP会话建立请求次数', 'UPF.PfcpSessionEstabReq');
INSERT INTO "kpi_title" VALUES (92, 'UPF', 'UPF.03', '{"cn": "N6接口上行字节数", "en": "UPF.N6OgOct"}', 'N6接口上行字节', 'UPF.N6OgOct');
INSERT INTO "kpi_title" VALUES (93, 'UPF', 'UPF.04', '{"cn": "N6接口行字节数", "en": "UPF.N6IncOct"}', 'N6接口行字节数', 'UPF.N6IncOct');
INSERT INTO "kpi_title" VALUES (94, 'UPF', 'UPF.05', '{"cn": "N3接口行字节数", "en": "UPF.N3OgOct"}', 'N3接口行字节数', 'UPF.N3OgOct');
INSERT INTO "kpi_title" VALUES (95, 'UPF', 'UPF.06', '{"cn": "N3接口行字节数", "en": "UPF.N3IncOct"}', 'N3接口行字节数', 'UPF.N3IncOct');
INSERT INTO "kpi_title" VALUES (120, 'SMF', 'SMF.01', '{"cn": "5G实时PDU会话数", "en": "SMF.MeanPduSession"}', '5G实时PDU会话', 'SMF.MeanPduSession');
INSERT INTO "kpi_title" VALUES (121, 'SMF', 'SMF.02', '{"cn": "PDU会话建立成功次数", "en": "SMF.SuccCreatePduSession"}', 'PDU会话建立成功次', 'SMF.SuccCreatePduSession');
INSERT INTO "kpi_title" VALUES (122, 'SMF', 'SMF.03', '{"cn": "PDU会话建立请求次数", "en": "SMF.AttCreatePduSession"}', 'PDU会话建立请求次', 'SMF.AttCreatePduSession');
INSERT INTO "kpi_title" VALUES (123, 'SMF', 'SMF.04', '{"cn": "IMS PDU会话建立成功次数", "en": "SMF.SuccCreatePduSession._Ims"}', 'IMS PDU会话建立成功次', 'SMF.SuccCreatePduSession._Ims');
INSERT INTO "kpi_title" VALUES (124, 'SMF', 'SMF.05', '{"cn": "IMS PDU会话建立请求次数", "en": "SMF.AttCreatePduSession._Ims"}', 'IMS PDU会话建立请求次', 'SMF.AttCreatePduSession._Ims');
INSERT INTO "kpi_title" VALUES (134, 'SMF', 'SMF.A.01', '{"cn":"PDU会话接受次数","en":"SMF.PduSessAcpt"}', 'PDU会话接受次', 'SMF.PduSessAcpt');
INSERT INTO "kpi_title" VALUES (135, 'SMF', 'SMF.A.02', '{"cn":"基站Pdu资源创建成功次数","en":"SM.PduResSetupSucc"}', '基站Pdu资源创建成功次数', 'SM.PduResSetupSucc');
INSERT INTO "kpi_title" VALUES (136, 'SMF', 'SMF.A.03', '{"cn":"查询用户SM数据失败次数","en":"SM.RetrieveSmDataFail"}', '查询用户SM数据失败次数', 'SM.RetrieveSmDataFail');
INSERT INTO "kpi_title" VALUES (137, 'SMF', 'SMF.A.04', '{"cn":"PFCP会话建立失败次数","en":"SM.PfcpSessEstFail"}', 'PFCP会话建立失败次数', 'SM.PfcpSessEstFail');
INSERT INTO "kpi_title" VALUES (138, 'SMF', 'SMF.A.05', '{"cn":"基站Pdu资源创建失败次数","en":"SM.PduResSetupFail"}', '基站Pdu资源创建失败次数', 'SM.PduResSetupFail');
INSERT INTO "kpi_title" VALUES (139, 'SMF', 'SMF.A.06', '{"cn":"PFCP会话修改失败次数","en":"SM.PfcpSessMdfyFail"}', 'PFCP会话修改失败次数', 'SM.PfcpSessMdfyFail');
INSERT INTO "kpi_title" VALUES (140, 'SMF', 'SMF.A.07', '{"cn":"PDU会话拒绝次数","en":"SM.PduSessRejt"}', 'PDU会话拒绝次数', 'SM.PduSessRejt');
INSERT INTO "kpi_title" VALUES (141, 'SMF', 'SMF.A.08', '{"cn":"PDU会话释放指示次数","en":"SM.PduSessRelCmd"}', 'PDU会话释放指示次数', 'SM.PduSessRelCmd');
INSERT INTO "kpi_title" VALUES (150, 'NSSF', 'NSSF.A.02', '{"cn":"可用AMF注册次数","en":"NSSF.SuccAvailAMFPut"}', '可用AMF注册成功次数', 'NSSF.SuccAvailAMFPut');
INSERT INTO "kpi_title" VALUES (151, 'NSSF', 'NSSF.A.03', '{"cn":"可用AMF注册更新成功次数","en":"NSSF.AvailAMFPut"}', '可用AMF注册次数', 'NSSF.AvailAMFPut');
INSERT INTO "kpi_title" VALUES (152, 'NSSF', 'NSSF.A.04', '{"cn":"可用AMF注册更新次数","en":"NSSF.SuccAvailAMFPatch"}', '可用AMF注册更新成功次数', 'NSSF.SuccAvailAMFPatch');
INSERT INTO "kpi_title" VALUES (153, 'NSSF', 'NSSF.A.01', '{"cn":"可用AMF注册成功次数","en":"NSSF.AvailAMFPatch"}', '可用AMF注册更新次数', 'NSSF.AvailAMFPatch');
INSERT INTO "kpi_title" VALUES (154, 'NSSF', 'NSSF.A.05', '{"cn":"可用AMF去注册成功次数","en":"NSSF.SuccAvailAMFDelete"}', '可用AMF去注册成功次数', 'NSSF.SuccAvailAMFDelete');
INSERT INTO "kpi_title" VALUES (155, 'NSSF', 'NSSF.A.06', '{"cn":"可用AMF去注册次数","en":"NSSF.AvailAMFDelete"}', '可用AMF去注册次', 'NSSF.AvailAMFDelete');
INSERT INTO "kpi_title" VALUES (156, 'NSSF', 'NSSF.A.07', '{"cn":"网元订阅成功数","en":"NSSF.SuccAvailSubscription"}', '网元订阅成功', 'NSSF.SuccAvailSubscription');
INSERT INTO "kpi_title" VALUES (157, 'NSSF', 'NSSF.A.08', '{"cn":"网元订阅次数","en":"NSSF.AvailSubscription"}', '网元订阅次', 'NSSF.AvailSubscription');
INSERT INTO "kpi_title" VALUES (158, 'NSSF', 'NSSF.A.09', '{"cn":"网元去订阅成功数","en":"NSSF.SuccAvailUnsubscription"}', '网元去订阅成功', 'NSSF.SuccAvailUnsubscription');
INSERT INTO "kpi_title" VALUES (159, 'NSSF', 'NSSF.A.10', '{"cn":"网元去订阅次数","en":"NSSF.AvailUnsubscription"}', '网元去订阅次', 'NSSF.AvailUnsubscription');
INSERT INTO "kpi_title" VALUES (160, 'NSSF', 'NSSF.A.11', '{"cn":"向NRF注册成功次数","en":"NSSF.SuccNRFReg"}', '向NRF注册成功次', 'NSSF.SuccNRFReg');
INSERT INTO "kpi_title" VALUES (161, 'NSSF', 'NSSF.A.12', '{"cn":"向NRF注册次数","en":"NSSF.NRFReg"}', '向NRF注册次', 'NSSF.NRFReg');
INSERT INTO "kpi_title" VALUES (162, 'NSSF', 'NSSF.A.13', '{"cn":"向NRF发送心跳次数","en":"NSSF.NRFHeartbeat"}', '向NRF发送心跳次数', 'NSSF.NRFHeartbeat');
INSERT INTO "kpi_title" VALUES (163, 'NSSF', 'NSSF.A.14', '{"cn":"当前注册AMF个数","en":"NSSF.CurrentAMFCount"}', '当前注册AMF个', 'NSSF.CurrentAMFCount');
INSERT INTO "kpi_title" VALUES (164, 'NSSF', 'NSSF.A.15', '{"cn":"当前订阅网元个数","en":"NSSF.CurrentSubscriperCount"}', '当前订阅网元个', 'NSSF.CurrentSubscriperCount');
INSERT INTO "kpi_title" VALUES (180, 'MME', 'MME.A.01', '{"cn":"MME附着请求次数","en":"EpsAttachAtt"}', 'MME附着请求次数', 'EpsAttachAtt');
INSERT INTO "kpi_title" VALUES (181, 'MME', 'MME.A.02', '{"cn":"MME附着成功次数","en":"EpsAttachSucc"}', 'MME附着成功次数', 'EpsAttachSucc');
INSERT INTO "kpi_title" VALUES (183, 'MME', 'MME.A.04', '{"cn":"MME组合附着请求次数","en":"CombAttachAtt"}', 'MME组合附着请求次数', 'CombAttachAtt');
INSERT INTO "kpi_title" VALUES (184, 'MME', 'MME.A.05', '{"cn":"MME组合附着成功次数","en":"CombAttachSucc"}', 'MME组合附着成功次数', 'CombAttachSucc');
INSERT INTO "kpi_title" VALUES (186, 'MME', 'MME.A.07', '{"cn":"MME紧急附着请求次数","en":"EmergAttachAtt"}', 'MME紧急附着请求次数', 'EmergAttachAtt');
INSERT INTO "kpi_title" VALUES (187, 'MME', 'MME.A.08', '{"cn":"MME紧急附着成功次数","en":"EmergAttachSucc"}', 'MME紧急附着成功次数', 'EmergAttachSucc');
INSERT INTO "kpi_title" VALUES (189, 'MME', 'MME.A.10', '{"cn":"UE发起的分离请求次数","en":"EpsDetachUeAtt"}', 'UE发起的分离请求次数', 'EpsDetachUeAtt');
INSERT INTO "kpi_title" VALUES (190, 'MME', 'MME.A.11', '{"cn":"UE发起的分离请求成功次数","en":"EpsDetachUeSucc"}', 'UE发起的分离请求成功次数', 'EpsDetachUeSucc');
INSERT INTO "kpi_title" VALUES (191, 'MME', 'MME.A.12', '{"cn":"MME发起的分离请求次数","en":"EpsDetachMMEAtt"}', 'MME发起的分离请求次数', 'EpsDetachMMEAtt');
INSERT INTO "kpi_title" VALUES (192, 'MME', 'MME.A.13', '{"cn":"MME发起的分离请求成功次数","en":"EpsDetachMMESucc"}', 'MME发起的分离请求成功次数', 'EpsDetachMMESucc');
INSERT INTO "kpi_title" VALUES (196, 'MME', 'MME.A.17', '{"cn":"MME寻呼次数","en":"PagingEpsAtt"}', 'MME寻呼次数', 'PagingEpsAtt');
INSERT INTO "kpi_title" VALUES (197, 'MME', 'MME.A.18', '{"cn":"MME寻呼成功次数","en":"PagingEpsSucc"}', 'MME寻呼成功次数', 'PagingEpsSucc');
INSERT INTO "kpi_title" VALUES (199, 'MME', 'MME.A.20', '{"cn":"MME隐式分离请求次数","en":"EpsImplicitDetach"}', 'MME隐式分离请求次数', 'EpsImplicitDetach');
INSERT INTO "kpi_title" VALUES (200, 'MME', 'MME.A.21', '{"cn":"MME激活专用承载请求次数","en":"ActDedicatedEpsBearerAtt"}', 'MME激活专用承载请求次数', 'ActDedicatedEpsBearerAtt');
INSERT INTO "kpi_title" VALUES (201, 'MME', 'MME.A.22', '{"cn":"MME激活专用承载请求成功次数","en":"ActDedicatedEpsBearerSucc"}', 'MME激活专用承载请求成功次数', 'ActDedicatedEpsBearerSucc');
INSERT INTO "kpi_title" VALUES (203, 'MME', 'MME.A.24', '{"cn":"MME去激活专用承载请求次数","en":"DeactEpsDedicatedBearerAtt"}', 'MME去激活专用承载请求次数', 'DeactEpsDedicatedBearerAtt');
INSERT INTO "kpi_title" VALUES (204, 'MME', 'MME.A.25', '{"cn":"MME去激活专用承载请求成功次数","en":"DeactEpsDedicatedBearerSucc"}', 'MME去激活专用承载请求成功次数', 'DeactEpsDedicatedBearerSucc');
INSERT INTO "kpi_title" VALUES (205, 'MME', 'MME.A.26', '{"cn":"MME修改专用承载请求次数","en":"ModEpsBearerAtt"}', 'MME修改专用承载请求次数', 'ModEpsBearerAtt');
INSERT INTO "kpi_title" VALUES (206, 'MME', 'MME.A.27', '{"cn":"MME修改专用承载请求成功次数","en":"ModEpsBearerSucc"}', 'MME修改专用承载请求成功次数', 'ModEpsBearerSucc');
INSERT INTO "kpi_title" VALUES (208, 'MME', 'MME.A.29', '{"cn":"MME服务请求次数","en":"EpsServiceReqAtt"}', 'MME服务请求次数', 'EpsServiceReqAtt');
INSERT INTO "kpi_title" VALUES (209, 'MME', 'MME.A.30', '{"cn":"MME服务请求成功次数","en":"EpsServiceReqSucc"}', 'MME服务请求成功次数', 'EpsServiceReqSucc');
INSERT INTO "kpi_title" VALUES (240, 'MOCNGW', 'MOCNGW.01', '{"cn":"AttachRequest","en":"AttachRequest"}', 'AttachRequest', 'AttachRequest');
INSERT INTO "kpi_title" VALUES (241, 'MOCNGW', 'MOCNGW.02', '{"cn":"AttachAccept","en":"AttachAccept"}', 'AttachAccept', 'AttachAccept');
INSERT INTO "kpi_title" VALUES (242, 'MOCNGW', 'MOCNGW.03', '{"cn":"AttachComplete","en":"AttachComplete"}', 'AttachComplete', 'AttachComplete');
INSERT INTO "kpi_title" VALUES (243, 'MOCNGW', 'MOCNGW.04', '{"cn":"AttachReject","en":"AttachReject"}', 'AttachReject', 'AttachReject');
INSERT INTO "kpi_title" VALUES (244, 'MOCNGW', 'MOCNGW.05', '{"cn":"DetachRequest","en":"DetachRequest"}', 'DetachRequest', 'DetachRequest');
INSERT INTO "kpi_title" VALUES (245, 'MOCNGW', 'MOCNGW.06', '{"cn":"DetachAccept","en":"DetachAccept"}', 'DetachAccept', 'DetachAccept');
INSERT INTO "kpi_title" VALUES (246, 'MOCNGW', 'MOCNGW.07', '{"cn":"TrackingAreaUpdateRequest","en":"TrackingAreaUpdateRequest"}', 'TrackingAreaUpdateRequest', 'TrackingAreaUpdateRequest');
INSERT INTO "kpi_title" VALUES (247, 'MOCNGW', 'MOCNGW.08', '{"cn":"TrackingAreaUpdateAccept","en":"TrackingAreaUpdateAccept"}', 'TrackingAreaUpdateAccept', 'TrackingAreaUpdateAccept');
INSERT INTO "kpi_title" VALUES (248, 'MOCNGW', 'MOCNGW.09', '{"cn":"TrackingAreaUpdateComplete","en":"TrackingAreaUpdateComplete"}', 'TrackingAreaUpdateComplete', 'TrackingAreaUpdateComplete');
INSERT INTO "kpi_title" VALUES (249, 'MOCNGW', 'MOCNGW.10', '{"cn":"TrackingAreaUpdateReject","en":"TrackingAreaUpdateReject"}', 'TrackingAreaUpdateReject', 'TrackingAreaUpdateReject');
INSERT INTO "kpi_title" VALUES (250, 'MOCNGW', 'MOCNGW.11', '{"cn":"ServiceRequest","en":"ServiceRequest"}', 'ServiceRequest', 'ServiceRequest');
INSERT INTO "kpi_title" VALUES (251, 'MOCNGW', 'MOCNGW.12', '{"cn":"ExtendedServiceRequest","en":"ExtendedServiceRequest"}', 'ExtendedServiceRequest', 'ExtendedServiceRequest');
INSERT INTO "kpi_title" VALUES (252, 'MOCNGW', 'MOCNGW.13', '{"cn":"ControlPlaneServiceRequest","en":"ControlPlaneServiceRequest"}', 'ControlPlaneServiceRequest', 'ControlPlaneServiceRequest');
INSERT INTO "kpi_title" VALUES (253, 'MOCNGW', 'MOCNGW.14', '{"cn":"ServiceReject","en":"ServiceReject"}', 'ServiceReject', 'ServiceReject');
INSERT INTO "kpi_title" VALUES (254, 'MOCNGW', 'MOCNGW.15', '{"cn":"ServiceAccept","en":"ServiceAccept"}', 'ServiceAccept', 'ServiceAccept');
INSERT INTO "kpi_title" VALUES (255, 'MOCNGW', 'MOCNGW.16', '{"cn":"GutiReallocationCommand","en":"GutiReallocationCommand"}', 'GutiReallocationCommand', 'GutiReallocationCommand');
INSERT INTO "kpi_title" VALUES (256, 'MOCNGW', 'MOCNGW.17', '{"cn":"GutiReallocationComplete","en":"GutiReallocationComplete"}', 'GutiReallocationComplete', 'GutiReallocationComplete');
INSERT INTO "kpi_title" VALUES (257, 'MOCNGW', 'MOCNGW.18', '{"cn":"AuthenticationRequest","en":"AuthenticationRequest"}', 'AuthenticationRequest', 'AuthenticationRequest');
INSERT INTO "kpi_title" VALUES (258, 'MOCNGW', 'MOCNGW.19', '{"cn":"AuthenticationResponse","en":"AuthenticationResponse"}', 'AuthenticationResponse', 'AuthenticationResponse');
INSERT INTO "kpi_title" VALUES (259, 'MOCNGW', 'MOCNGW.20', '{"cn":"AuthenticationReject","en":"AuthenticationReject"}', 'AuthenticationReject', 'AuthenticationReject');
INSERT INTO "kpi_title" VALUES (260, 'MOCNGW', 'MOCNGW.21', '{"cn":"AuthenticationFailure","en":"AuthenticationFailure"}', 'AuthenticationFailure', 'AuthenticationFailure');
INSERT INTO "kpi_title" VALUES (261, 'MOCNGW', 'MOCNGW.22', '{"cn":"IdentityRequest","en":"IdentityRequest"}', 'IdentityRequest', 'IdentityRequest');
INSERT INTO "kpi_title" VALUES (262, 'MOCNGW', 'MOCNGW.23', '{"cn":"IdentityResponse","en":"IdentityResponse"}', 'IdentityResponse', 'IdentityResponse');
INSERT INTO "kpi_title" VALUES (263, 'MOCNGW', 'MOCNGW.24', '{"cn":"SecurityModeCommand","en":"SecurityModeCommand"}', 'SecurityModeCommand', 'SecurityModeCommand');
INSERT INTO "kpi_title" VALUES (264, 'MOCNGW', 'MOCNGW.25', '{"cn":"SecurityModeComplete","en":"SecurityModeComplete"}', 'SecurityModeComplete', 'SecurityModeComplete');
INSERT INTO "kpi_title" VALUES (265, 'MOCNGW', 'MOCNGW.26', '{"cn":"SecurityModeReject","en":"SecurityModeReject"}', 'SecurityModeReject', 'SecurityModeReject');
INSERT INTO "kpi_title" VALUES (266, 'MOCNGW', 'MOCNGW.27', '{"cn":"EmmStatus","en":"EmmStatus"}', 'EmmStatus', 'EmmStatus');
INSERT INTO "kpi_title" VALUES (267, 'MOCNGW', 'MOCNGW.28', '{"cn":"EmmInformation","en":"EmmInformation"}', 'EmmInformation', 'EmmInformation');
INSERT INTO "kpi_title" VALUES (268, 'MOCNGW', 'MOCNGW.29', '{"cn":"DownlinkNasTransport","en":"DownlinkNasTransport"}', 'DownlinkNasTransport', 'DownlinkNasTransport');
INSERT INTO "kpi_title" VALUES (269, 'MOCNGW', 'MOCNGW.30', '{"cn":"UplinkNasTransport","en":"UplinkNasTransport"}', 'UplinkNasTransport', 'UplinkNasTransport');
INSERT INTO "kpi_title" VALUES (270, 'MOCNGW', 'MOCNGW.31', '{"cn":"CsServiceNotification","en":"CsServiceNotification"}', 'CsServiceNotification', 'CsServiceNotification');
INSERT INTO "kpi_title" VALUES (271, 'MOCNGW', 'MOCNGW.32', '{"cn":"DownlinkGenericNasTransport","en":"DownlinkGenericNasTransport"}', 'DownlinkGenericNasTransport', 'DownlinkGenericNasTransport');
INSERT INTO "kpi_title" VALUES (272, 'MOCNGW', 'MOCNGW.33', '{"cn":"UplinkGenericNasTransport","en":"UplinkGenericNasTransport"}', 'UplinkGenericNasTransport', 'UplinkGenericNasTransport');
INSERT INTO "kpi_title" VALUES (302, 'IMS', 'SCSCF.03', '{"cn": "初始注册成功次数","en": "UR.SuccInitReg"}', '初始注册成功次数', 'UR.SuccInitReg');
INSERT INTO "kpi_title" VALUES (303, 'IMS', 'SCSCF.04', '{"cn": "初始注册请求次数","en": "UR.AttInitReg"}', '初始注册请求次数', 'UR.AttInitReg');
INSERT INTO "kpi_title" VALUES (304, 'IMS', 'SCSCF.05', '{"cn": "主叫接通次数","en": "SC.SuccSessionOrig"}', '主叫接通次数', 'SC.SuccSessionOrig');
INSERT INTO "kpi_title" VALUES (305, 'IMS', 'SCSCF.06', '{"cn": "主叫试呼次数","en": "SC.AttSessionOrig"}', '主叫试呼次数', 'SC.AttSessionOrig');
INSERT INTO "kpi_title" VALUES (306, 'IMS', 'SCSCF.07', '{"cn": "被叫接通次数","en": "SC.SuccSessionTerm"}', '被叫接通次数', 'SC.SuccSessionTerm');
INSERT INTO "kpi_title" VALUES (307, 'IMS', 'SCSCF.08', '{"cn": "被叫试呼次数","en": "SC.AttSessionTerm"}', '被叫试呼次数', 'SC.AttSessionTerm');
INSERT INTO "kpi_title" VALUES (308, 'IMS', 'SCSCF.09', '{"cn": "主叫应答次数","en": "SC.AnsSessionOrig"}', '主叫应答次数', 'SC.AnsSessionOrig');
INSERT INTO "kpi_title" VALUES (321, 'IMS', 'SCSCF.22', '{"cn": "被叫应答次数","en": "SC.AnsSessionTerm"}', '被叫应答次数', 'SC.AnsSessionTerm');
INSERT INTO "kpi_title" VALUES (334, 'IMS', 'IDD.01', '', '呼出IDD呼叫尝试次数', 'IDDOutgoingAttSessionOrig');
INSERT INTO "kpi_title" VALUES (335, 'IMS', 'IDD.02', '', '呼出IDD接通次数', 'IDDOutgoingAnsSession');
INSERT INTO "kpi_title" VALUES (336, 'IMS', 'IDD.03', '', '呼出IDD接通成功次数', 'IDDOutgoingSuccSession');
INSERT INTO "kpi_title" VALUES (337, 'IMS', 'IDD.04', '', '呼入IDD呼叫尝试次数', 'IDDIncomingAttSessionOrig');
INSERT INTO "kpi_title" VALUES (338, 'IMS', 'IDD.05', '', '呼入IDD接通次数', 'IDDIncomingAnsSession');
INSERT INTO "kpi_title" VALUES (339, 'IMS', 'IDD.06', '', '呼入IDD接通成功次数', 'IDDIncomingSuccSession');
INSERT INTO "kpi_title" VALUES (351, 'PCF', 'PCF.02', '{"cn": "SM策略关联建立成功次数", "en": "PCF.PolicySmAssocCreateSucc"}', 'SM策略关联建立成功次数', 'PCF.PolicySmAssocCreateSucc');
INSERT INTO "kpi_title" VALUES (352, 'PCF', 'PCF.03', '{"cn": "SM策略关联建立请求次数", "en": "PCF.PolicySmAssocCreateReq"}', 'SM策略关联建立请求次数', 'PCF.PolicySmAssocCreateReq');
INSERT INTO "kpi_title" VALUES (353, 'PCF', 'PCF.04', '{"cn": "SM策略关联更新成功次数", "en": "PCF.PolicySmAssocUpdateSucc"}', 'SM策略关联更新成功次数', 'PCF.PolicySmAssocUpdateSucc');
INSERT INTO "kpi_title" VALUES (354, 'PCF', 'PCF.05', '{"cn": "SM策略关联更新请求次数", "en": "PCF.PolicySmAssocUpdateReq"}', 'SM策略关联更新请求次数', 'PCF.PolicySmAssocUpdateReq');
INSERT INTO "kpi_title" VALUES (380, 'SMSC', 'SMSC.A.01', '{"cn": "MS到SMSC短信请求次数", "en": "SMSC.MStoSMSCAtt"}', 'MS到SMSC短信请求次数', 'SMSC.MStoSMSCAtt');
INSERT INTO "kpi_title" VALUES (381, 'SMSC', 'SMSC.A.02', '{"cn": "MS到SMSC短信成功次数", "en": "SMSC.MStoSMSCSucc"}', 'MS到SMSC短信成功次数', 'SMSC.MStoSMSCSucc');
INSERT INTO "kpi_title" VALUES (382, 'SMSC', 'SMSC.A.03', '{"cn": "MS到SMSC短信失败次数", "en": "SMSC.MStoSMSCFail"}', 'MS到SMSC短信失败次数', 'SMSC.MStoSMSCFail');
INSERT INTO "kpi_title" VALUES (383, 'SMSC', 'SMSC.A.04', '{"cn": "MS到SMSC短信字节数", "en": "SMSC.MStoSMSCBytes"}', 'MS到SMSC短信字节数', 'SMSC.MStoSMSCBytes');
INSERT INTO "kpi_title" VALUES (396, 'SMSC', 'SMSC.A.17', '{"cn": "SMSC到MS短信请求次数", "en": "SMSC.SMSCtoMSAtt"}', 'SMSC到MS短信请求次数', 'SMSC.SMSCtoMSAtt');
INSERT INTO "kpi_title" VALUES (397, 'SMSC', 'SMSC.A.18', '{"cn": "SMSC到MS短信成功次数", "en": "SMSC.SMSCtoMSSucc"}', 'SMSC到MS短信成功次数', 'SMSC.SMSCtoMSSucc');
INSERT INTO "kpi_title" VALUES (398, 'SMSC', 'SMSC.A.19', '{"cn": "SMSC到MS短信失败次数", "en": "SMSC.SMSCtoMSFail"}', 'SMSC到MS短信失败次数', 'SMSC.SMSCtoMSFail');
INSERT INTO "kpi_title" VALUES (399, 'SMSC', 'SMSC.A.20', '{"cn": "SMSC到MS短信字节数", "en": "SMSC.SMSCtoMSBytes"}', 'SMSC到MS短信字节数', 'SMSC.SMSCtoMSBytes');
INSERT INTO "kpi_title" VALUES (430, 'CBC', 'CBC.A.01', '{"cn": "CBC 发起 Create Write 消息成功", "en": "WarningReqSucc"}', 'CBC 发起 Create Write 消息成功', 'WarningReqSucc');
INSERT INTO "kpi_title" VALUES (431, 'CBC', 'CBC.A.02', '{"cn": "CBC 发起 Create Write 消息失败", "en": "WarningReqFail"}', 'CBC 发起 Create Write 消息失败', 'WarningReqFail');
INSERT INTO "kpi_title" VALUES (432, 'CBC', 'CBC.A.03', '{"cn": "CBC 发起 Cancel Write 消息成功", "en": "WarningCancelSucc"}', 'CBC 发起 Cancel Write 消息成功', 'WarningCancelSucc');
INSERT INTO "kpi_title" VALUES (433, 'CBC', 'CBC.A.04', '{"cn": "CBC 发起 Cancel Write 消息失败", "en": "WarningCancelFail"}', 'CBC 发起 Cancel Write 消息失败', 'WarningCancelFail');
INSERT INTO "kpi_title" VALUES (440, 'HLR', 'HLR.A.001', NULL, '鉴权信息请求次数', 'AuthReqTotalNum');
INSERT INTO "kpi_title" VALUES (441, 'HLR', 'HLR.A.002', NULL, '鉴权信息请求成功次数', 'AuthSuccTotalNum');
INSERT INTO "kpi_title" VALUES (442, 'HLR', 'HLR.A.003', NULL, '鉴权请求失败:缺参数', 'AuthFailByMissPara');
INSERT INTO "kpi_title" VALUES (443, 'HLR', 'HLR.A.004', NULL, '鉴权请求失败:系统错误', 'AuthFailBySysFail');
INSERT INTO "kpi_title" VALUES (444, 'HLR', 'HLR.A.005', NULL, '鉴权请求失败:非期望的参数值', 'AuthFailByUnexptData');
INSERT INTO "kpi_title" VALUES (445, 'HLR', 'HLR.A.006', NULL, '鉴权请求失败:未知用户', 'AuthFailByUnknownUser');
INSERT INTO "kpi_title" VALUES (446, 'HLR', 'HLR.A.007', NULL, '鉴权失败报告次数', 'AuthFailReportTotalNum');
INSERT INTO "kpi_title" VALUES (447, 'HLR', 'HLR.A.008', NULL, '鉴权失败报告(错误的网络签名)次数', 'AuthFailReportByErrNetSign');
INSERT INTO "kpi_title" VALUES (448, 'HLR', 'HLR.A.009', NULL, '鉴权失败报告(错误的用户响应)次数', 'AuthFailReportByErrUserRsp');
INSERT INTO "kpi_title" VALUES (449, 'HLR', 'HLR.A.010', NULL, '登记请求次数', 'LuReqTotalNum');
INSERT INTO "kpi_title" VALUES (450, 'HLR', 'HLR.A.011', NULL, '登记成功次数', 'LuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (451, 'HLR', 'HLR.A.012', NULL, '登记失败:复制手机', 'LuFailByDuplicUnit');
INSERT INTO "kpi_title" VALUES (452, 'HLR', 'HLR.A.013', NULL, '登记失败无效ESN', 'LuFailByInvalidESN');
INSERT INTO "kpi_title" VALUES (453, 'HLR', 'HLR.A.014', NULL, '登记失败:缺鉴权参', 'LuFailByMissAuthPara');
INSERT INTO "kpi_title" VALUES (454, 'HLR', 'HLR.A.015', NULL, '登记失败在这个MSC中不能使用', 'LuFailByMscNotAllow');
INSERT INTO "kpi_title" VALUES (455, 'HLR', 'HLR.A.016', NULL, '登记失败:终端类型不匹配', 'LuFailByUeTypeMismatch');
INSERT INTO "kpi_title" VALUES (456, 'HLR', 'HLR.A.017', NULL, '登记失败:未分配号码的手机', 'LuFailByUnAssignMsisdn');
INSERT INTO "kpi_title" VALUES (457, 'HLR', 'HLR.A.018', NULL, '登记失败:不确定', 'LuFailByUnKnown');
INSERT INTO "kpi_title" VALUES (458, 'HLR', 'HLR.A.019', NULL, '注销登记次数', 'CancelLuReqTotalNum');
INSERT INTO "kpi_title" VALUES (459, 'HLR', 'HLR.A.020', NULL, '注销登记成功次数', 'CancelLuSuccTotalNum');
INSERT INTO "kpi_title" VALUES (460, 'HLR', 'HLR.A.021', NULL, '注销失败:系统错误', 'CancelLuFailBySysFail');
INSERT INTO "kpi_title" VALUES (461, 'HLR', 'HLR.A.022', NULL, '注销失败:缺参', 'CancelLuFailByMissPara');
INSERT INTO "kpi_title" VALUES (462, 'HLR', 'HLR.A.023', NULL, '移动台去活次数', 'MsPurgeReqTotalNum');
INSERT INTO "kpi_title" VALUES (463, 'HLR', 'HLR.A.024', NULL, '移动台去活成功次数', 'MsPurgeSuccTotalNum');
INSERT INTO "kpi_title" VALUES (464, 'HLR', 'HLR.A.025', NULL, '移动台去活:系统错误', 'MsPurgeFailBySysFail');
INSERT INTO "kpi_title" VALUES (465, 'HLR', 'HLR.A.026', NULL, '移动台去活:非期望的参数值', 'MsPurgeFailByUnexptPara');
INSERT INTO "kpi_title" VALUES (466, 'HLR', 'HLR.A.027', NULL, '移动台去活:未知用户', 'MsPurgeFailByUnknownUser');
INSERT INTO "kpi_title" VALUES (610, 'HLR', 'HLR.A.171', NULL, 'C2G Boss开户成功次数', 'AddUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (611, 'HLR', 'HLR.A.172', NULL, 'C2G Boss销户成功次数', 'DelUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (612, 'HLR', 'HLR.A.173', NULL, 'C2G Boss修改用户成功次数', 'ModUserBossSuccNum');
INSERT INTO "kpi_title" VALUES (613, 'HLR', 'HLR.A.174', NULL, 'C2G Boss开户请求次数', 'AddUserBossReqNum');
INSERT INTO "kpi_title" VALUES (614, 'HLR', 'HLR.A.175', NULL, 'C2G Boss受理失败返回IMSI not used次数', 'BossServFailByImsiNot');
INSERT INTO "kpi_title" VALUES (615, 'HLR', 'HLR.A.176', NULL, 'C2G Boss受理失败返回ISDN not used次数', 'BossServFailByIsdnNot');
INSERT INTO "kpi_title" VALUES (616, 'HLR', 'HLR.A.177', NULL, 'C2G Boss受理失败返回其他错误次数', 'BossServFailByOther');
INSERT INTO "kpi_title" VALUES (617, 'HLR', 'HLR.A.178', NULL, 'C2G Boss受理失败返回repeat IMSI次数', 'BossServFailByRepImsi');
INSERT INTO "kpi_title" VALUES (618, 'HLR', 'HLR.A.179', NULL, 'C2G Boss受理失败返回repeat ISDN次数', 'BossServFailByRepIsdn');
INSERT INTO "kpi_title" VALUES (619, 'HLR', 'HLR.A.180', NULL, 'C2G Boss销户请求次数', 'DelUserBossReqNum');
INSERT INTO "kpi_title" VALUES (620, 'HLR', 'HLR.A.181', NULL, 'C2G Boss修改用户请求次数', 'ModUserBossReqNum');

View File

@@ -28,15 +28,18 @@ ON "ne_config" (
-- ----------------------------
-- Records of ne_config
-- ----------------------------
-- 更新 AMF 配置 20250516
INSERT INTO "ne_config" VALUES (1, 'AMF', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"","display":"AMF Name","filter":"0~64","name":"amfName","type":"string","value":"AMF","visible":"self"},{"access":"read-write","comment":"0~255","display":"NF Priority","filter":"0~255","name":"nfPriority","type":"int","value":"255","visible":"self"},{"access":"read-write","comment":"0~255","display":"Relative Capacity","filter":"0~255","name":"relativeCapacity","type":"int","value":"255","visible":"self"},{"access":"read-write","comment":"","display":"SBI Scheme","filter":"{\"0\":\"http\",\"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"SBI Server IP","filter":"0~64","name":"sbiServerIp","type":"string","value":"192.168.1.183","visible":"self"},{"access":"read-write","comment":"0~65535","display":"SBI Server Port","filter":"0~65535","name":"sbiServerPort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"NRF Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"nrfEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"NRF URI","filter":"0~64","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"AUSF URI","filter":"0~64","name":"ausfUri","type":"string","value":"http://172.16.5.130:8080"},{"access":"read-write","comment":"","display":"UDM URI","filter":"0~64","name":"udmUri","type":"string","value":"http://172.16.5.140:8080"},{"access":"read-write","comment":"","display":"SMF URI","filter":"0~64","name":"smfUri","type":"string","value":"http://172.16.5.150:8080"},{"access":"read-write","comment":"","display":"PCF URI","filter":"0~64","name":"pcfUri","type":"string","value":"http://172.16.5.160:8080"},{"access":"read-write","comment":"","display":"Backup AUSF URI","filter":"0~64","name":"backupAusfUri","type":"string","value":"http://172.16.5.131:8080"},{"access":"read-write","comment":"","display":"Backup UDM URI","filter":"0~64","name":"backupUdmUri","type":"string","value":"http://172.16.5.141:8080"},{"access":"read-write","comment":"","display":"Backup SMF URI","filter":"0~64","name":"backupSmfUri","type":"string","value":"http://172.16.5.151:8080"},{"access":"read-write","comment":"","display":"Backup PCF URI","filter":"0~64","name":"backupPcfUri","type":"string","value":"http://172.16.5.161:8080"},{"access":"read-write","comment":"","display":"LMF URI","filter":"0~64","name":"lmfUri","type":"string","value":"http://172.16.5.200:8080"},{"access":"read-write","comment":"","display":"NEF URI","filter":"0~64","name":"nefUri","type":"string","value":"http://172.16.5.210:8080"},{"access":"read-write","comment":"","display":"IMEI Restriction Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"imeiRestrictionEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"Allowed IMEI Prefix","filter":"0~128","name":"allowedImeiPrefix","type":"string","value":"869583045"},{"access":"read-write","comment":"","display":"DNN Correction Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"dnnCorrectionEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"Default DNN","filter":"0~64","name":"defaultDnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"Integrity Algorithm","filter":"{\"0\":\"NIA0\",\"1\":\"NIA1\",\"2\":\"NIA2\",\"3\":\"NIA3\"}","name":"integrityAlgorithm","type":"enum","value":"2"},{"access":"read-write","comment":"","display":"Ciphering Algorithm","filter":"{\"0\":\"NEA0\",\"1\":\"NEA1\",\"2\":\"NEA2\",\"3\":\"NEA3\"}","name":"cipheringAlgorithm","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"T3502","filter":"1~65535","name":"t3502","type":"int","value":"720"},{"access":"read-write","comment":"","display":"T3512","filter":"1~65535","name":"t3512","type":"int","value":"3600"},{"access":"read-write","comment":"","display":"T3513","filter":"1~65535","name":"t3513","type":"int","value":"2"},{"access":"read-write","comment":"","display":"T3522","filter":"1~65535","name":"t3522","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3550","filter":"1~65535","name":"t3550","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3555","filter":"1~65535","name":"t3555","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3560","filter":"1~65535","name":"t3560","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3565","filter":"1~65535","name":"t3565","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3570","filter":"1~65535","name":"t3570","type":"int","value":"6"}]', 1, '', 1747384093785, 'public');
INSERT INTO "ne_config" VALUES (2, 'AMF', 'association', 'TNL Association List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"NGAP IP","filter":"0~64","name":"ngapIp","type":"string","value":"192.168.1.183"},{"access":"read-write","comment":"0~65535","display":"NGAP SCTP Port","filter":"0~65535","name":"ngapSctpPort","type":"int","value":"38412"},{"access":"read-write","comment":"0~255","display":"Weight","filter":"0~255","name":"weightFactor","type":"int","value":"255"}]', 3, '', 1747384093843, 'self');
INSERT INTO "ne_config" VALUES (3, 'AMF', 'guami', 'GUAMI List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~255","display":"Region ID","filter":"0~255","name":"regionId","type":"int","value":"1"},{"access":"read-write","comment":"0~1023","display":"Set ID","filter":"0~1023","name":"setId","type":"int","value":"1"},{"access":"read-write","comment":"0~63","display":"Pointer","filter":"0~63","name":"pointer","type":"int","value":"1"}]', 5, '', 1747384093851, 'self');
INSERT INTO "ne_config" VALUES (4, 'AMF', 'tai', 'TAI List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~8","name":"tac","type":"string","value":"1"}]', 7, '', 1747384093856, 'public');
INSERT INTO "ne_config" VALUES (5, 'AMF', 'slice', 'Slice List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~127","display":"SST","filter":"0~127","name":"sst","type":"int","value":"1"},{"access":"read-write","comment":"","display":"SD","filter":"^[A-Fa-f0-9]{6}","name":"sd","type":"regex","value":"000001"}]', 9, '', 1747384093861, 'public');
INSERT INTO "ne_config" VALUES (6, 'AMF', 'systemFeatOpt', 'System FeatOpt', 'list', '[{"access":"read-write","comment":"","display":"dnnCorrectionEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"dnnCorrectionEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"gutiReallocationInPRUEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"gutiReallocationInPRUEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"ueRadioCapabilityMatchEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"ueRadioCapabilityMatchEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"supportFollowOnRequestIndication","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportFollowOnRequestIndication","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"triggerInitCtxSetupForAllNASProc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"triggerInitCtxSetupForAllNASProc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"supportAllAllowedNssai","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportAllAllowedNssai","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"implicitUnsubscribeEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"implicitUnsubscribeEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"supportRRCInactiveReport","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportRRCInactiveReport","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"supportMappedSecurityContext","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportMappedSecurityContext","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"optimizeSignalingProcedure","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"optimizeSignalingProcedure","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"reAuthInServiceRequestProc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"reAuthInServiceRequestProc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"skipGetSubscribedNssai","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"skipGetSubscribedNssai","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"forceIdentityRequest","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"forceIdentityRequest","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"cagEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"cagEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"imeiRestrictionEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"imeiRestrictionEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"checkSliceInTaEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"checkSliceInTaEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"uePolicyEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"uePolicyEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"smsOverNasEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"smsOverNasEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"statusReportToOmc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"statusReportToOmc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"statusReportEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"statusReportEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"getTraceDataFromUdm","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"getTraceDataFromUdm","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"disableLocationReportControl","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"disableLocationReportControl","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"sendDnnOiToSmf","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"sendDnnOiToSmf","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"udsfEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"udsfEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"enableHttpPprof","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enableHttpPprof","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"enableTrace","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enableTrace","type":"bool","value":"0"}]', 11, '', 1747384093866, 'public');
INSERT INTO "ne_config" VALUES (7, 'AMF', 'gnbList', 'Gnb List Config', 'array', '[{"access":"read-only","comment":"0~128","display":"Index","filter":"0~128","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"text content length 0~64","display":"GNB Name","filter":"0~64","name":"name","type":"string","value":""},{"access":"read-write","comment":"text content length 0~64","display":"GNB Address","filter":"0~64","name":"address","type":"string","value":""},{"access":"read-write","comment":"location description. Prohibition of spaces, length of text content 0-64","display":"Position","filter":"0~64","name":"position","type":"string","value":""}]', 13, '', 1747384093871, 'hide');
INSERT INTO "ne_config" VALUES (8, 'AMF', 'imeiWhitelist', 'IMEI White List', 'array', '[{"access":"read-only","comment":"0~65535","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"IMEI Prefix","filter":"^[a-zA-Z0-9]{0,16}$","name":"imeiPrefixValue","type":"string","value":""}]', 15, '', 1747384093876, 'public');
-- 更新 AMF 配置 20250630
INSERT INTO "ne_config" VALUES (1, 'AMF', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"","display":"AMF Name","filter":"0~64","name":"amfName","type":"string","value":"AMF","visible":"self"},{"access":"read-write","comment":"0~255","display":"AMF Priority","filter":"0~255","name":"nfPriority","type":"int","value":"255","visible":"self"},{"access":"read-write","comment":"0~255","display":"SBI Relative Capacity","filter":"0~255","name":"relativeCapacity","type":"int","value":"255","visible":"self"},{"access":"read-write","comment":"","display":"SBI Scheme","filter":"{\"0\":\"http\",\"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"SBI Server IP","filter":"0~64","name":"sbiServerIp","type":"string","value":"192.168.1.183","visible":"self"},{"access":"read-write","comment":"0~65535","display":"SBI Server Port","filter":"0~65535","name":"sbiServerPort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"NRF Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"nrfEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"NF NRF URI","filter":"0~64","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"NF AUSF URI","filter":"0~64","name":"ausfUri","type":"string","value":"http://172.16.5.130:8080"},{"access":"read-write","comment":"","display":"NF UDM URI","filter":"0~64","name":"udmUri","type":"string","value":"http://172.16.5.140:8080"},{"access":"read-write","comment":"","display":"NF SMF URI","filter":"0~64","name":"smfUri","type":"string","value":"http://172.16.5.150:8080"},{"access":"read-write","comment":"","display":"NF PCF URI","filter":"0~64","name":"pcfUri","type":"string","value":"http://172.16.5.160:8080"},{"access":"read-write","comment":"","display":"NF Backup AUSF URI","filter":"0~64","name":"backupAusfUri","type":"string","value":"http://172.16.5.131:8080"},{"access":"read-write","comment":"","display":"NF Backup UDM URI","filter":"0~64","name":"backupUdmUri","type":"string","value":"http://172.16.5.141:8080"},{"access":"read-write","comment":"","display":"NF Backup SMF URI","filter":"0~64","name":"backupSmfUri","type":"string","value":"http://172.16.5.151:8080"},{"access":"read-write","comment":"","display":"NF Backup PCF URI","filter":"0~64","name":"backupPcfUri","type":"string","value":"http://172.16.5.161:8080"},{"access":"read-write","comment":"","display":"NF LMF URI","filter":"0~64","name":"lmfUri","type":"string","value":"http://172.16.5.200:8080"},{"access":"read-write","comment":"","display":"NF NEF URI","filter":"0~64","name":"nefUri","type":"string","value":"http://172.16.5.210:8080"},{"access":"read-write","comment":"","display":"Default DNN","filter":"0~64","name":"defaultDnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"AUTH Integrity Algorithm","filter":"{\"0\":\"NIA0\",\"1\":\"NIA1\",\"2\":\"NIA2\",\"3\":\"NIA3\"}","name":"integrityAlgorithm","type":"enum","value":"2"},{"access":"read-write","comment":"","display":"AUTH Ciphering Algorithm","filter":"{\"0\":\"NEA0\",\"1\":\"NEA1\",\"2\":\"NEA2\",\"3\":\"NEA3\"}","name":"cipheringAlgorithm","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"T3502","filter":"1~65535","name":"t3502","type":"int","value":"720"},{"access":"read-write","comment":"","display":"T3512","filter":"1~65535","name":"t3512","type":"int","value":"3600"},{"access":"read-write","comment":"","display":"T3513","filter":"1~65535","name":"t3513","type":"int","value":"2"},{"access":"read-write","comment":"","display":"T3522","filter":"1~65535","name":"t3522","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3550","filter":"1~65535","name":"t3550","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3555","filter":"1~65535","name":"t3555","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3560","filter":"1~65535","name":"t3560","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3565","filter":"1~65535","name":"t3565","type":"int","value":"6"},{"access":"read-write","comment":"","display":"T3570","filter":"1~65535","name":"t3570","type":"int","value":"6"}]', 1, '', 1751271230797, 'public');
INSERT INTO "ne_config" VALUES (2, 'AMF', 'systemFeatOpt', 'Enable/Disable Features', 'list', '[{"access":"read-write","comment":"","display":"DnnCorrectionEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"dnnCorrectionEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"GutiReallocationInPRUEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"gutiReallocationInPRUEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"UeRadioCapabilityMatchEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"ueRadioCapabilityMatchEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SupportFollowOnRequestIndication","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportFollowOnRequestIndication","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"TriggerInitCtxSetupForAllNASProc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"triggerInitCtxSetupForAllNASProc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SupportAllAllowedNssai","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportAllAllowedNssai","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"ImplicitUnsubscribeEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"implicitUnsubscribeEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SupportRRCInactiveReport","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportRRCInactiveReport","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SupportMappedSecurityContext","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"supportMappedSecurityContext","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"OptimizeSignalingProcedure","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"optimizeSignalingProcedure","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"ReAuthInServiceRequestProc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"reAuthInServiceRequestProc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SkipGetSubscribedNssai","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"skipGetSubscribedNssai","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"ForceIdentityRequest","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"forceIdentityRequest","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"CagEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"cagEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"CheckSliceInTaEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"checkSliceInTaEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"uePolicyEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"uePolicyEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"smsOverNasEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"smsOverNasEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"statusReportToOmc","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"statusReportToOmc","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"StatusReportEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"statusReportEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"GetTraceDataFromUdm","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"getTraceDataFromUdm","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"DisableLocationReportControl","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"disableLocationReportControl","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SendDnnOiToSmf","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"sendDnnOiToSmf","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"UdsfEnabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"udsfEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"EnableHttpPprof","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enableHttpPprof","type":"bool","value":"0"}]', 3, '', 1751271230825, 'public');
INSERT INTO "ne_config" VALUES (3, 'AMF', 'association', 'AMF TNL Association List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"NGAP IP","filter":"0~64","name":"ngapIp","type":"string","value":"192.168.1.183"},{"access":"read-write","comment":"0~65535","display":"NGAP SCTP Port","filter":"0~65535","name":"ngapSctpPort","type":"int","value":"38412"},{"access":"read-write","comment":"0~255","display":"Weight","filter":"0~255","name":"weightFactor","type":"int","value":"255"}]', 5, '', 1751271230831, 'self');
INSERT INTO "ne_config" VALUES (4, 'AMF', 'guami', 'AMF Served GUAMI List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~255","display":"Region ID","filter":"0~255","name":"regionId","type":"int","value":"1"},{"access":"read-write","comment":"0~1023","display":"Set ID","filter":"0~1023","name":"setId","type":"int","value":"1"},{"access":"read-write","comment":"0~63","display":"Pointer","filter":"0~63","name":"pointer","type":"int","value":"1"}]', 7, '', 1751271230835, 'public');
INSERT INTO "ne_config" VALUES (5, 'AMF', 'tai', 'AMF Support TAI List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~8","name":"tac","type":"string","value":"1"}]', 9, '', 1751271230838, 'public');
INSERT INTO "ne_config" VALUES (6, 'AMF', 'slice', 'AMF Support Slice List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~127","display":"SST","filter":"0~127","name":"sst","type":"int","value":"1"},{"access":"read-write","comment":"","display":"SD","filter":"^[A-Fa-f0-9]{6}","name":"sd","type":"regex","value":"000001"}]', 11, '', 1751271230843, 'public');
INSERT INTO "ne_config" VALUES (7, 'AMF', 'whiteInfo', 'Enable Whitelist Feat', 'list', '[{"access":"read-write","comment":"if set true, need to add white list content by ''WhiteList Content'' entry ","display":"IMSI/IMEI Whitelist","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enableWhitelist","type":"bool","value":"0"}]', 12, '', 1751271230847, 'public');
INSERT INTO "ne_config" VALUES (8, 'AMF', 'whitelist', ' └── WhiteList Content', 'array', '[{"access":"read-only","comment":"0~65535","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"A.if SIM and device match, IMSI value format:[0-9]{14,15} e.g: 460020021404867 B.if only check IMEI Prefix, IMSI value set ''any''","display":"IMSI Value","filter":"^(|any|[0-9]{14,16})$","name":"imsiValue","type":"regex","value":""},{"access":"read-write","comment":"A.SIM and device match: IMEI value format:[0-9]{15,16} e.g: 8695830452209078 B.if only check IMEI Prefix, IMEI value is imei prefix value[0-9]{3-16} e.g: IMSI:''any'', IMEI:''86958304522'' )","display":"IMEI Value/Prefix","filter":"^(|any|[0-9]{2,16})$","name":"imeiValue","type":"regex","value":""}]', 13, '', 1751271230851, 'public');
INSERT INTO "ne_config" VALUES (9, 'AMF', '4g5ghoN26Info', 'Enable 4G5GHO N26 Feat', 'list', '[{"access":"read-write","comment":"if set true, need to add MME List by ''4G5GHO Select MME List'' entry ","display":"enable iwkN26(open 4G/5G HO)","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"iwkN26","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"Set AMF Local N26 IP","filter":"0~64","name":"n26Ip","type":"string","value":"192.168.1.183","visible":"self"}]', 16, '', 1751271230858, 'public');
INSERT INTO "ne_config" VALUES (10, 'AMF', '4g5ghoMmeList', ' └── 4G5GHO Select MME List', 'array', '[{"access":"read-only","comment":"0~32","display":"Index","filter":"0~32","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"\u003cMCC\u003e\u003cMNC\u003e","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"","display":"Group ID","filter":"0~65535","name":"groupId","type":"int","value":"4"},{"access":"read-write","comment":"","display":"Code","filter":"0~255","name":"code","type":"int","value":"1"},{"access":"read-write","comment":"","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"4388"},{"access":"read-write","comment":"IPv4 or IPv6 address","display":"MME IP Address","filter":"^(([0-9]{1,3}\\.){3}[0-9]{1,3}|([0-9a-fA-F]{0,4}:){2,7}[0-9a-fA-F]{0,4})$","name":"ip","type":"string","value":"172.16.5.220"}]', 17, '', 1751271230862, 'public');
INSERT INTO "ne_config" VALUES (11, 'AMF', 'gnbList', 'Gnb List Config', 'array', '[{"access":"read-only","comment":"0~128","display":"Index","filter":"0~128","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"text content length 0~64","display":"GNB Name","filter":"0~64","name":"name","type":"string","value":""},{"access":"read-write","comment":"text content length 0~64","display":"GNB Address","filter":"0~64","name":"address","type":"string","value":""},{"access":"read-write","comment":"location description. Prohibition of spaces, length of text content 0-64","display":"Position","filter":"0~64","name":"position","type":"string","value":""}]', 19, '', 1751271230865, 'hide');
INSERT INTO "ne_config" VALUES (20, 'AUSF', 'system', 'System', 'list', '[{"access":"read-write","comment":"","display":"Service IP","filter":"","name":"serviceIP","type":"ipv4","value":"172.16.5.130"},{"access":"read-write","comment":"","display":"Service Port","filter":"0~65535","name":"servicePort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"Scheme","filter":"{\"0\":\"HTTP\", \"1\":\"HTTPS\"}","name":"scheme","type":"enum","value":"http"},{"access":"read-write","comment":"","display":"NRF URI","filter":"","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"UDM URI","filter":"","name":"udmUri","type":"string","value":"http://172.16.5.140:8080"},{"access":"read-write","comment":"","display":"Group ID","filter":"","name":"groupId","type":"string","value":"0"}]', 1, '', 1719831209173, 'public');
INSERT INTO "ne_config" VALUES (40, 'IMS', 'system', 'System', 'list', '[{"access":"read-write","comment":"","display":"Label","filter":"","name":"label","type":"string","value":"ims-core"},{"access":"read-only","comment":"","display":"HPLMN MCC","filter":"","name":"hplmnMCC","type":"string","value":"001"},{"access":"read-only","comment":"","display":"HPLMN MNC","filter":"","name":"hplmnMNC","type":"string","value":"01"},{"access":"read-write","comment":"","display":"Local Network IPv4","filter":"","name":"LocalNetworkIPv4","type":"ipv4","value":"172.16.5.110"},{"access":"read-write","comment":"","display":"Public Network IPv4","filter":"","name":"serviceIP","type":"ipv4","value":"172.16.5.110"},{"access":"read-write","comment":"","display":"Public Network IPv6","filter":"","name":"serviceIPv6","type":"ipv6","value":""},{"access":"read-only","comment":"","display":"Domain Name 1","filter":"","name":"domainName1","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-only","comment":"","display":"Domain Name 2","filter":"","name":"domainName2","type":"string","value":""},{"access":"read-only","comment":"","display":"Domain Name 3","filter":"","name":"domainName3","type":"string","value":""},{"access":"read-only","comment":"","display":"Domain Name 4","filter":"","name":"domainName4","type":"string","value":""},{"access":"read-write","comment":"","display":"MultiIPStack Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"multiIPStackInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Register Timer","filter":"120~1000000","name":"registerTimer","type":"int","value":"7200"},{"access":"read-write","comment":"","display":"Max Call Duration","filter":"1800~1000000","name":"maxCallDuration","type":"int","value":"43200"},{"access":"read-write","comment":"","display":"Internal SMS Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"internalSMSInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Internal CDR Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"internalCDRInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Internal KPI Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"internalKPIInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"PCF IP Address","filter":"","name":"pcfIP","type":"ipv4","value":"172.16.5.160"}]', 1, '', 1723716862092, 'public');
@@ -44,17 +47,17 @@ INSERT INTO "ne_config" VALUES (41, 'IMS', 'plmn', 'PLMN List', 'array', '[{"acc
INSERT INTO "ne_config" VALUES (42, 'IMS', 'mmtel_dialplan', 'MMTEL Dialplan', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-only","comment":"","display":"NaName","filter":"0~128","name":"naName","type":"string","value":""},{"access":"read-write","comment":"","display":"Title","filter":"0~128","name":"title","type":"string","value":""},{"access":"read-write","comment":"","display":"Method","filter":"0-2","name":"method","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Prefix","filter":"0~128","name":"prefix","type":"string","value":""},{"access":"read-write","comment":"","display":"Start","filter":"0~128","name":"start","type":"string","value":""},{"access":"read-write","comment":"","display":"End","filter":"0~128","name":"end","type":"string","value":""},{"access":"read-write","comment":"","display":"Attrib","filter":"0~128","name":"attrib","type":"string","value":""},{"access":"read-write","comment":"","display":"Number Len","filter":"0~128","name":"numberLen","type":"string","value":""},{"access":"read-write","comment":"","display":"Rsc","filter":"0~128","name":"rsc","type":"string","value":""},{"access":"read-write","comment":"","display":"E164 Nai","filter":"0~128","name":"e164Nai","type":"string","value":""},{"access":"read-write","comment":"","display":"E164 Delete","filter":"0~128","name":"e164Delete","type":"string","value":""},{"access":"read-write","comment":"","display":"E164 Insert","filter":"0~128","name":"e164Insert","type":"string","value":""},{"access":"read-write","comment":"Enable: Close/Open","display":"Admin State","filter":"{\"0\":\"Close\", \"1\":\"Open\"}","name":"adminState","type":"enum","value":"0"}]', 5, '', 1723716862110, 'public');
INSERT INTO "ne_config" VALUES (43, 'IMS', 'ds_system', 'DS System', 'list', '[{"access":"read-write","comment":"","display":"Dispatch System Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"dispatchSystemInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Transcode Indicator","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"transcodeInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Dispatch System IPv4","filter":"","name":"dispatchSystemIP","type":"ipv4","value":"1.0.0.1"},{"access":"read-write","comment":"","display":"Dispatch System Port","filter":"","name":"dispatchSystemPort","type":"int","value":"5060"}]', 7, '', 1723716862113, 'public');
-- 更新 MME 配置 20250516
INSERT INTO "ne_config" VALUES (60, 'MME', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"true|false","display":"CSFB Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"csfbEnabled","type":"bool","value":"false"},{"access":"read-write","comment":"true|false","display":"VoLTE Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"volteEnabled","type":"bool","value":"false"},{"access":"read-write","comment":"0~128","display":"ME IDENTITY CHECK PATH","filter":"0~128","name":"meIdentityCheckPath","type":"string","value":"/usr/local/etc/mme/me_identity_check.csv"},{"access":"read-write","comment":"0~128","display":"IMEI WHITE LIST PATH","filter":"0~128","name":"imeiWhiteListPath","type":"string","value":"/usr/local/etc/mme/imei_whitelist.csv"},{"access":"read-write","comment":"0~64","display":"DNS SERVER IP","filter":"0~64","name":"dnsServerIp","type":"string","value":"127.0.0.53"},{"access":"read-write","comment":"0~64","display":"S1 MME IP","filter":"0~64","name":"s1MmeIp","type":"string","value":"192.168.1.179"},{"access":"read-only","comment":"0~65535","display":"S1 MME Port","filter":"0~65535","name":"s1MmePort","type":"int","value":"36412"},{"access":"read-write","comment":"0~64","display":"S11 MME IP","filter":"0~64","name":"s11MmeIp","type":"string","value":"192.168.1.179"},{"access":"read-write","comment":"0~65535","display":"S11 MME Port","filter":"0~65535","name":"s11MmePort","type":"int","value":"2123"},{"access":"read-write","comment":"0~64","display":"S10 MME IP","filter":"0~64","name":"s10MmeIp","type":"string","value":"192.168.1.178"},{"access":"read-write","comment":"0~65535","display":"S10 MME Port","filter":"0~65535","name":"s10MmePort","type":"int","value":"2123"},{"access":"read-write","comment":"0~64","display":"SGs MME IP","filter":"0~64","name":"sgsMmeIp","type":"string","value":"192.168.1.179"},{"access":"read-only","comment":"0~65535","display":"SGs MME Port","filter":"0~65535","name":"sgsMmePort","type":"int","value":"29118"},{"access":"read-write","comment":"0~100","display":"S6A MME Identity","filter":"0~100","name":"s6aIdentity","type":"string","value":"mme.epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~20","display":"S6A MME IP","filter":"0~20","name":"s6aLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS MME IP","filter":"0~20","name":"slsLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS REMOTE IP","filter":"0~20","name":"slsRemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS REMOTE PORT","filter":"0~20","name":"slsRemotePort","type":"string","value":"9082"},{"access":"read-write","comment":"0~100","display":"SLG MME Identity","filter":"0~100","name":"slgIdentity","type":"string","value":"gmlc.epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~100","display":"SLG MME REALM","filter":"0~100","name":"slgRealm","type":"string","value":"epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~20","display":"SBC MME IP","filter":"0~20","name":"sbcLocalIp","type":"string","value":"192.168.8.220"},{"access":"read-write","comment":"0~20","display":"SV MME IP","filter":"0~20","name":"svLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SV MME PORT","filter":"0~20","name":"svLocalPort","type":"string","value":"9082"},{"access":"read-write","comment":"0~20","display":"SV REMOTE IP","filter":"0~20","name":"svRemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SV REMOTE PORT","filter":"0~20","name":"svRemotePort","type":"string","value":"9082"},{"access":"read-write","comment":"0~20","display":"S3 REMOTE IP","filter":"0~20","name":"s3RemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"S3 REMOTE PORT","filter":"0~20","name":"s3RemotePort","type":"string","value":"9082"}]', 1, '', 1747384071449, 'public');
INSERT INTO "ne_config" VALUES (61, 'MME', 'gummei', 'Gummei List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"Group ID","filter":"0~65535","name":"groupId","type":"int","value":"4"},{"access":"read-write","comment":"0~255","display":"Code","filter":"0~255","name":"code","type":"int","value":"1"}]', 3, '', 1747384071463, 'public');
INSERT INTO "ne_config" VALUES (62, 'MME', 'tai', 'TAI List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"1"}]', 5, '', 1747384071468, 'public');
INSERT INTO "ne_config" VALUES (63, 'MME', 'hss', 'HSS List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{1,15}$","display":"IMSI Prefix","filter":"^[0-9]{1,15}$","name":"imsiPre","type":"regex","value":"00101"},{"access":"read-write","comment":"0~128","display":"HSS Hostname","filter":"0~128","name":"hssHostname","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~128","display":"HSS Realm","filter":"0~128","name":"hssRealm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"SCTP|TCP","display":"Protocol","filter":"0~8","name":"protocol","type":"string","value":"SCTP"},{"access":"read-write","comment":"0~65535","display":"HSS Port","filter":"0~65535","name":"hssPort","type":"int","value":"3868"}]', 7, '', 1747384071473, 'public');
INSERT INTO "ne_config" VALUES (64, 'MME', 'sgw', 'SGW List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"1"},{"access":"read-write","comment":"0~64","display":"SGW IP","filter":"0~64","name":"sgwIp","type":"string","value":"172.16.5.150"}]', 9, '', 1747384071479, 'public');
INSERT INTO "ne_config" VALUES (65, 'MME', 'pgw', 'PGW List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~128","display":"APN","filter":"0~128","name":"apn","type":"string","value":"internet"},{"access":"read-write","comment":"0~64","display":"PGW IP","filter":"0~64","name":"pgwIp","type":"string","value":"192.168.1.181"}]', 11, '', 1747384071483, 'public');
INSERT INTO "ne_config" VALUES (66, 'MME', 'amf', 'AMF List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~16777215","name":"tac","type":"int","value":"1"},{"access":"read-write","comment":"0~255","display":"Region ID","filter":"0~255","name":"regionId","type":"int","value":"1"},{"access":"read-write","comment":"0~1023","display":"Set ID","filter":"0~1023","name":"setId","type":"int","value":"1"},{"access":"read-write","comment":"0~63","display":"Pointer","filter":"0~63","name":"pointer","type":"int","value":"1"},{"access":"read-write","comment":"0~64","display":"AMF IP","filter":"0~64","name":"amfIp","type":"string","value":"172.16.5.120"}]', 13, '', 1747384071489, 'public');
INSERT INTO "ne_config" VALUES (67, 'MME', 'white_list', 'IMEI White List', 'array', '[{"access":"read-only","comment":"0~65535","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"0~64","display":"IMEI","filter":"0~64","name":"imei","type":"string","value":"001"}]', 17, '', 1747384071498, 'public');
INSERT INTO "ne_config" VALUES (68, 'MME', 'roam_plmn', 'Roam Plmn List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"0~64","display":"MCC","filter":"0~64","name":"mcc","type":"string","value":"001"},{"access":"read-write","comment":"0~64","display":"MNC","filter":"0~64","name":"mnc","type":"string","value":"01"}]', 15, '', 1747384071493, 'public');
INSERT INTO "ne_config" VALUES (69, 'MME', 'enbList', 'Enb List Config', 'array', '[{"access":"read-only","comment":"0~128","display":"Index","filter":"0~128","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"text content length 0~64","display":"ENB Name","filter":"0~64","name":"name","type":"string","value":""},{"access":"read-write","comment":"text content length 0~64","display":"ENB Address","filter":"0~64","name":"address","type":"string","value":""},{"access":"read-write","comment":"location description. Prohibition of spaces, length of text content 0-64","display":"Position","filter":"0~64","name":"position","type":"string","value":""}]', 19, '', 1747384071502, 'hide');
-- 更新 MME 配置 20250626
INSERT INTO "ne_config" VALUES (60, 'MME', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"true|false","display":"CSFB Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"csfbEnabled","type":"bool","value":"false"},{"access":"read-write","comment":"true|false","display":"VoLTE Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"volteEnabled","type":"bool","value":"false"},{"access":"read-write","comment":"0~128","display":"ME IDENTITY CHECK PATH","filter":"0~128","name":"meIdentityCheckPath","type":"string","value":"/usr/local/etc/mme/me_identity_check.csv"},{"access":"read-write","comment":"0~128","display":"IMEI WHITE LIST PATH","filter":"0~128","name":"imeiWhiteListPath","type":"string","value":"/usr/local/etc/mme/imei_whitelist.csv"},{"access":"read-write","comment":"0~64","display":"DNS SERVER IP","filter":"0~64","name":"dnsServerIp","type":"string","value":"127.0.0.53"},{"access":"read-write","comment":"0~64","display":"S1 MME IP","filter":"0~64","name":"s1MmeIp","type":"string","value":"192.168.1.179"},{"access":"read-only","comment":"0~65535","display":"S1 MME Port","filter":"0~65535","name":"s1MmePort","type":"int","value":"36412"},{"access":"read-write","comment":"0~64","display":"S11 MME IP","filter":"0~64","name":"s11MmeIp","type":"string","value":"192.168.1.179"},{"access":"read-write","comment":"0~65535","display":"S11 MME Port","filter":"0~65535","name":"s11MmePort","type":"int","value":"2123"},{"access":"read-write","comment":"0~64","display":"S10 MME IP","filter":"0~64","name":"s10MmeIp","type":"string","value":"192.168.1.178"},{"access":"read-write","comment":"0~65535","display":"S10 MME Port","filter":"0~65535","name":"s10MmePort","type":"int","value":"2123"},{"access":"read-write","comment":"0~64","display":"SGs MME IP","filter":"0~64","name":"sgsMmeIp","type":"string","value":"192.168.1.179"},{"access":"read-only","comment":"0~65535","display":"SGs MME Port","filter":"0~65535","name":"sgsMmePort","type":"int","value":"29118"},{"access":"read-write","comment":"0~100","display":"S6A MME Identity","filter":"0~100","name":"s6aIdentity","type":"string","value":"mme.epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~20","display":"S6A MME IP","filter":"0~20","name":"s6aLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS MME IP","filter":"0~20","name":"slsLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS REMOTE IP","filter":"0~20","name":"slsRemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SLS REMOTE PORT","filter":"0~20","name":"slsRemotePort","type":"string","value":"9082"},{"access":"read-write","comment":"0~100","display":"SLG MME Identity","filter":"0~100","name":"slgIdentity","type":"string","value":"gmlc.epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~100","display":"SLG MME REALM","filter":"0~100","name":"slgRealm","type":"string","value":"epc.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~20","display":"SBC MME IP","filter":"0~20","name":"sbcLocalIp","type":"string","value":"192.168.8.220"},{"access":"read-write","comment":"0~20","display":"SV MME IP","filter":"0~20","name":"svLocalIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SV MME PORT","filter":"0~20","name":"svLocalPort","type":"string","value":"9082"},{"access":"read-write","comment":"0~20","display":"SV REMOTE IP","filter":"0~20","name":"svRemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"SV REMOTE PORT","filter":"0~20","name":"svRemotePort","type":"string","value":"9082"},{"access":"read-write","comment":"0~20","display":"S3 REMOTE IP","filter":"0~20","name":"s3RemoteIp","type":"string","value":"172.16.5.220"},{"access":"read-write","comment":"0~20","display":"S3 REMOTE PORT","filter":"0~20","name":"s3RemotePort","type":"string","value":"9082"}]', 1, '', 1750927591839, 'public');
INSERT INTO "ne_config" VALUES (61, 'MME', 'gummei', 'Gummei List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"Group ID","filter":"0~65535","name":"groupId","type":"int","value":"4"},{"access":"read-write","comment":"0~255","display":"Code","filter":"0~255","name":"code","type":"int","value":"1"}]', 3, '', 1750927591894, 'public');
INSERT INTO "ne_config" VALUES (62, 'MME', 'tai', 'TAI List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"1"}]', 5, '', 1750927591900, 'public');
INSERT INTO "ne_config" VALUES (63, 'MME', 'hss', 'HSS List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{1,15}$","display":"IMSI Prefix","filter":"^[0-9]{1,15}$","name":"imsiPre","type":"regex","value":"00101"},{"access":"read-write","comment":"0~128","display":"HSS Hostname","filter":"0~128","name":"hssHostname","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"0~128","display":"HSS Realm","filter":"0~128","name":"hssRealm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"SCTP|TCP","display":"Protocol","filter":"0~8","name":"protocol","type":"string","value":"SCTP"},{"access":"read-write","comment":"0~65535","display":"HSS Port","filter":"0~65535","name":"hssPort","type":"int","value":"3868"}]', 7, '', 1750927591923, 'public');
INSERT INTO "ne_config" VALUES (64, 'MME', 'sgw', 'SGW List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~65535","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"1"},{"access":"read-write","comment":"0~64","display":"SGW IP","filter":"0~64","name":"sgwIp","type":"string","value":"172.16.5.150"}]', 9, '', 1750927591929, 'public');
INSERT INTO "ne_config" VALUES (65, 'MME', 'pgw', 'PGW List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~128","display":"APN","filter":"0~128","name":"apn","type":"string","value":"internet"},{"access":"read-write","comment":"0~64","display":"PGW IP","filter":"0~64","name":"pgwIp","type":"string","value":"192.168.1.181"}]', 11, '', 1750927591933, 'public');
INSERT INTO "ne_config" VALUES (66, 'MME', 'amf', 'AMF List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"^[0-9]{5,6}$","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~16777215","name":"tac","type":"int","value":"1"},{"access":"read-write","comment":"0~255","display":"Region ID","filter":"0~255","name":"regionId","type":"int","value":"1"},{"access":"read-write","comment":"0~1023","display":"Set ID","filter":"0~1023","name":"setId","type":"int","value":"1"},{"access":"read-write","comment":"0~63","display":"Pointer","filter":"0~63","name":"pointer","type":"int","value":"1"},{"access":"read-write","comment":"0~64","display":"AMF IP","filter":"0~64","name":"amfIp","type":"string","value":"172.16.5.120"}]', 13, '', 1750927591939, 'public');
INSERT INTO "ne_config" VALUES (67, 'MME', 'white_list', 'IMEI White List', 'array', '[{"access":"read-only","comment":"0~65535","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"Only check IMEI Prefix, IMEI value is imei prefix value[0-9]{3-16} e.g:''86958304522'' )","display":"IMEI","filter":"^([0-9]{3,16})$","name":"imei","type":"regex","value":""}]', 17, '', 1750927592321, 'public');
INSERT INTO "ne_config" VALUES (68, 'MME', 'roam_plmn', 'Roam Plmn List', 'array', '[{"access":"read","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"0~64","display":"MCC","filter":"0~64","name":"mcc","type":"string","value":"001"},{"access":"read-write","comment":"0~64","display":"MNC","filter":"0~64","name":"mnc","type":"string","value":"01"}]', 15, '', 1750927592315, 'public');
INSERT INTO "ne_config" VALUES (69, 'MME', 'enbList', 'Enb List Config', 'array', '[{"access":"read-only","comment":"0~128","display":"Index","filter":"0~128","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"text content length 0~64","display":"ENB Name","filter":"0~64","name":"name","type":"string","value":""},{"access":"read-write","comment":"text content length 0~64","display":"ENB Address","filter":"0~64","name":"address","type":"string","value":""},{"access":"read-write","comment":"location description. Prohibition of spaces, length of text content 0-64","display":"Position","filter":"0~64","name":"position","type":"string","value":""}]', 19, '', 1750927592325, 'hide');
INSERT INTO "ne_config" VALUES (80, 'MOCNGW', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"","display":"S1AP South Address","filter":"0~64","name":"s1apSouthAddr","type":"string","value":"192.168.7.163"},{"access":"read-write","comment":"","display":"S1AP North Address","filter":"0~64","name":"s1apNorthAddr","type":"string","value":"192.168.8.163"},{"access":"read-write","comment":"0~65535","display":"TAC","filter":"0~65535","name":"tac","type":"int","value":"1"},{"access":"read-write","comment":"0~1048575","display":"ENB ID","filter":"0~1048575","name":"enbId","type":"int","value":"24"},{"access":"read-write","comment":"","display":"User Plane Enabled","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"userPlaneEnabled","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"PFCP Address","filter":"0~64","name":"pfcpAddr","type":"string","value":"192.168.7.163"}]', 1, '', 1719831210071, 'public');
INSERT INTO "ne_config" VALUES (81, 'MOCNGW', 'mme', 'MME List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"S1AP Address","filter":"0~64","name":"s1apAddr","type":"string","value":"192.168.1.161"},{"access":"read-write","comment":"0~65535","display":"S1AP Port","filter":"0~65535","name":"s1apPort","type":"int","value":"36412"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"}]', 3, '', 1719831210273, 'public');
@@ -78,31 +81,37 @@ INSERT INTO "ne_config" VALUES (168, 'PCF', 'usageMonitoringTemplate', 'Usage Mo
INSERT INTO "ne_config" VALUES (169, 'PCF', 'trafficControlTemplate', 'Traffic Control Template', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~64","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Traffic Control ID","filter":"^.{1,63}$","name":"tcId","type":"string","value":""},{"access":"read-write","comment":"","display":"Flow Status","filter":"{\"0\":\"Disable\", \"1\":\"Uplink\", \"2\":\"Downlink\", \"3\":\"Enable\", \"4\":\"Remove\"}","name":"flowStatus","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Mute Notify","filter":"false;true;","name":"muteNotif","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Route to Location DNAI","filter":"^.{1,63}$","name":"dnai","type":"string","value":""}]', 19, '', 1719831211361, 'public');
INSERT INTO "ne_config" VALUES (170, 'PCF', 'headerEnrichTemplate', 'Header Enrich Template', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Template Name","filter":"^.{1,63}$","name":"templateName","type":"string","value":""},{"access":"read-write","comment":"","display":"Header Type","filter":"{\"0\":\"GPSI\", \"1\":\"SUPI\", \"2\":\"UE IP\", \"3\":\"User Location\", \"4\":\"DNN\"}","name":"headerType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Header Name","filter":"^.{1,63}$","name":"headerName","type":"string","value":""}]', 21, '', 1719831211407, 'public');
-- 更新 SMF 配置 20250319
INSERT INTO "ne_config" VALUES (180, 'SMF', 'smfSystem', 'SMF System Config', 'list', '[{"access":"read-write","comment":"","display":"SBI IP","filter":"","name":"sbiIpAddr","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"0~65535","display":"SBI Port","filter":"0~65535","name":"sbiPort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"SBI Scheme","filter":"{\"0\":\"http\", \"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"http"},{"access":"read-write","comment":"","display":"N4 IPv4","filter":"","name":"n4Ipv4","type":"ipv4","value":"172.16.5.150"},{"access":"read-write","comment":"","display":"N4 IPv6","filter":"","name":"n4Ipv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"N4U IPv4","filter":"","name":"n4UIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"N4U IPv6","filter":"","name":"n4UIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"AMF URI","filter":"","name":"amfUri","type":"string","value":"http://172.16.5.120:8080"},{"access":"read-write","comment":"","display":"PCF Enable","filter":"","name":"pcfEnable","type":"bool","value":"true"},{"access":"read-write","comment":"URI1;URI2","display":"PCF URI","filter":"","name":"pcfUri","type":"string","value":"http://172.16.5.160:8080"},{"access":"read-write","comment":"URI1;URI2","display":"UDM URI","filter":"","name":"udmUri","type":"string","value":"http://172.16.5.140:8080"},{"access":"read-write","display":"5G Charging Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"chfEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"CHF Primary URI","filter":"","name":"chfPrimaryUri","type":"string","value":"http://172.16.5.240:8080"},{"access":"read-write","comment":"","display":"CHF Secondary URI","filter":"","name":"chfSecondaryUri","type":"string","value":""},{"access":"read-write","comment":"","display":"NRF Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"nrfEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"NRF URI","filter":"","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"Primary DNS IPv4","filter":"","name":"primaryDnsIpv4","type":"ipv4","value":"114.114.114.114"},{"access":"read-write","comment":"","display":"Secondary DNS IPv4","filter":"","name":"secondaryDnsIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Primary DNS IPv6","filter":"","name":"primaryDnsIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Secondary DNS IPv6","filter":"","name":"secondaryDnsIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Primary PCSCF IPv4","filter":"","name":"primaryPcscfIpv4","type":"ipv4","value":"172.16.5.110"},{"access":"read-write","comment":"","display":"Secondary PCSCF IPv4","filter":"","name":"secondaryPcscfIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Primary PCSCF IPv6","filter":"","name":"primaryPcscfIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Secondary PCSCF IPv6","filter":"","name":"secondaryPcscfIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Trace Enable","filter":"","name":"traceMsgEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"UE MTU","filter":"0~65535","name":"ueMtu","type":"int","value":""}]', 1, '', 1747384064532, 'public');
INSERT INTO "ne_config" VALUES (181, 'SMF', 'spgwSystem', 'SPGW Sytem Config', 'list', '[{"access":"read-write","comment":"","display":"Local S11 IP","filter":"","name":"s11Ip","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"","display":"Local Diameter IP","filter":"","name":"localDiameterIp","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"","display":"Local Diameter Host Name","filter":"","name":"localDiameterHostName","type":"string","value":"smf.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Local Diameter Realm Name","filter":"","name":"localDiameterRealmName","type":"string","value":"mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Gy Enable","filter":"false;true;","name":"peerGyEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Primary Remote Gy IP","filter":"","name":"primaryPeerGyIp","type":"string","value":""},{"access":"read-write","comment":"0~65535","display":"Primary Remote Gy Port","filter":"0~65535","name":"primaryPeerGyPort","type":"int","value":"3868"},{"access":"read-write","comment":"","display":"Secondary Remote Gy IP","filter":"","name":"secondaryPeerGyIp","type":"string","value":""},{"access":"read-write","comment":"0~65535","display":"Secondary Remote Gy Port","filter":"0~65535","name":"secondaryPeerGyPort","type":"int","value":"3868"},{"access":"read-write","comment":"","display":"Gx Enable","filter":"false;true;","name":"peerGxEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Gx Charging Enable","filter":"false;true;","name":"gxChargingEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Primary Remote Gx IP","filter":"","name":"primaryPeerGxIp","type":"string","value":""},{"access":"read-write","comment":"0~65535","display":"Primary Remote Gx Port","filter":"0~65535","name":"primaryPeerGxPort","type":"int","value":"3868"},{"access":"read-write","comment":"","display":"Secondary Remote Gx IP","filter":"","name":"secondaryPeerGxIp","type":"string","value":""},{"access":"read-write","comment":"0~65535","display":"Secondary Remote Gx Port","filter":"0~65535","name":"secondaryPeerGxPort","type":"int","value":"3868"}]', 3, '', 1747384064548, 'public');
INSERT INTO "ne_config" VALUES (182, 'SMF', 'upfConfig', 'UPF Config', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~2047","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"id","type":"string","value":""},{"access":"read-write","comment":"e.g. ip:port","display":"Address","filter":"7~45","name":"addr","type":"string","value":""},{"access":"read-write","comment":"IPv4,IPv6,IPv4v6","display":"Ip Pool Type","filter":"","name":"ipPoolType","type":"string","value":"IPv4v6"},{"access":"read-write","comment":"CIDR format, e.g. 192.168.1.0/24","display":"IPv4 Pools","filter":"10~256","name":"ipv4Pools","type":"string","value":""},{"access":"read-write","comment":"CIDR format, e.g. fe80::20c:29ff:fee4:dab7/50","display":"IPv6 Pools","filter":"5~512","name":"ipv6Pools","type":"string","value":""},{"access":"read-write","comment":"","display":"Static IPv4 Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"staticIpv4Enable","type":"bool","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 Start","filter":"","name":"staticIpv4Start","type":"ipv4","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 End","filter":"","name":"staticIpv4End","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Static IPv6 Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"staticIpv6Enable","type":"bool","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 Start","filter":"","name":"staticIpv6Start","type":"ipv6","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 End","filter":"","name":"staticIpv6End","type":"ipv6","value":""},{"array":[{"access":"read-only","comment":"","display":"Index","filter":"0~2047","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"IPv4,IPv6,IPv4v6","display":"Ip Pool Type","filter":"","name":"ipPoolType","type":"string","value":"IPv4v6"},{"access":"read-write","comment":"CIDR format, e.g. 192.168.1.0/24","display":"IPv4 Pools","filter":"10~256","name":"ipv4Pools","type":"string","value":""},{"access":"read-write","comment":"CIDR format, e.g. fe80::20c:29ff:fee4:dab7/50","display":"IPv6 Pools","filter":"5~512","name":"ipv6Pools","type":"string","value":""},{"access":"read-write","comment":"","display":"Static IPv4 Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"staticIpv4Enable","type":"bool","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 Start","filter":"","name":"staticIpv4Start","type":"ipv4","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 End","filter":"","name":"staticIpv4End","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Static IPv6 Enable","filter":"{\"0\":\"false\", \"1\":\"true\"}","name":"staticIpv6Enable","type":"bool","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 Start","filter":"","name":"staticIpv6Start","type":"ipv6","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 End","filter":"","name":"staticIpv6End","type":"ipv6","value":""}],"display":"UE DNN IP Pool","name":"ueDnnIpPool"}]', 5, '', 1747384064554, 'public');
INSERT INTO "ne_config" VALUES (183, 'SMF', 'dnnSelectUpf', 'DNN Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":""}]', 7, '', 1747384064559, 'public');
INSERT INTO "ne_config" VALUES (184, 'SMF', 'dnnTaiSelectUpf', 'DNN TAI Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"MCC+MNC+TAC","display":"TAI","filter":"1~64","name":"tai","type":"string","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":"upf2-Id"}]', 9, '', 1747384064565, 'public');
INSERT INTO "ne_config" VALUES (185, 'SMF', 'snssaiSelectUpf', 'SNSSAI Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","display":"Enable","filter":"false;true;","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"sst1-sd1;sst2-sd2;sst3-sd3","display":"SNSSAI","filter":"1~64","name":"snssai","type":"string","value":"1-000001"},{"access":"read-write","comment":"upf1-id;upf2-id;upf3-id","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":"upf1-Id"}]', 11, '', 1747384064569, 'public');
INSERT INTO "ne_config" VALUES (186, 'SMF', 'offlineChargingConfig', 'Offline Charging Config', 'list', '[{"access":"read-write","comment":"","display":"CDR File Name","filter":"1~64","name":"cdrFileName","type":"string","value":"smf.cdr"},{"access":"read-write","comment":"","display":"CDR File Path","filter":"1~256","name":"cdrFilePath","type":"string","value":"/var/log/smfCdr"},{"access":"read-write","comment":"","display":"CDR File Num","filter":"1~999999999","name":"cdrFileNum","type":"int","value":"50"},{"access":"read-write","comment":"Megabytes","display":"CDR File Size","filter":"1~999999","name":"cdrFileSize","type":"int","value":"300"},{"access":"read-write","comment":"Days","display":"CDR File Max Age","filter":"0~9999","name":"cdrFileMaxAge","type":"int","value":"30"},{"access":"read-write","comment":"","display":"Free Subscribers CDR Enable","filter":"","name":"freeSubsCdrEnable","type":"bool","value":"false"},{"access":"read-write","comment":"Seconds","display":"Time Threshold","filter":"0~999999999","name":"timeThreshold","type":"int","value":"600"},{"access":"read-write","comment":"Bytes","display":"Volume Threshold","filter":"0~999999999999999","name":"volumeThreshold","type":"int","value":"0"}]', 17, '', 1747384064583, 'public');
INSERT INTO "ne_config" VALUES (187, 'SMF', 'localDhcpCfg', 'Local DHCP Config', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Local IP","filter":"","name":"localIp","type":"string","value":""}]', 13, '', 1747384064574, 'public');
INSERT INTO "ne_config" VALUES (188, 'SMF', 'dnnselectdhcpserver', 'DNN Select DHCP Server', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"e.g. 192.168.1.1","display":"DHCP Server IP","filter":"","name":"dhcpServerAddr","type":"string","value":""}]', 15, '', 1747384064579, 'public');
-- 更新 SMF 配置 20250627
INSERT INTO "ne_config" VALUES (180, 'SMF', 'smfSystem', 'SMF System Config', 'list', '[{"access":"read-write","comment":"","display":"SBI IP","filter":"","name":"sbiIpAddr","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"0~65535","display":"SBI Port","filter":"0~65535","name":"sbiPort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"SBI Scheme","filter":"{\"0\":\"http\", \"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"http"},{"access":"read-write","comment":"","display":"N4 IPv4","filter":"","name":"n4Ipv4","type":"ipv4","value":"172.16.5.150"},{"access":"read-write","comment":"","display":"N4 IPv6","filter":"","name":"n4Ipv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"N4U IPv4","filter":"","name":"n4UIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"N4U IPv6","filter":"","name":"n4UIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"AMF URI","filter":"","name":"amfUri","type":"string","value":"http://172.16.5.120:8080"},{"access":"read-write","comment":"","display":"PCF Enable","filter":"","name":"pcfEnable","type":"bool","value":"true"},{"access":"read-write","comment":"URI1;URI2","display":"PCF URI","filter":"","name":"pcfUri","type":"string","value":"http://172.16.5.160:8080"},{"access":"read-write","comment":"URI1;URI2","display":"UDM URI","filter":"","name":"udmUri","type":"string","value":"http://172.16.5.140:8080"},{"access":"read-write","display":"5G Charging Enable","filter":"","name":"chfEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"CHF Primary URI","filter":"","name":"chfPrimaryUri","type":"string","value":"http://172.16.5.240:8080"},{"access":"read-write","comment":"","display":"CHF Secondary URI","filter":"","name":"chfSecondaryUri","type":"string","value":""},{"access":"read-write","comment":"","display":"NRF Enable","filter":"","name":"nrfEnable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"NRF URI","filter":"","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"Primary DNS IPv4","filter":"","name":"primaryDnsIpv4","type":"ipv4","value":"114.114.114.114"},{"access":"read-write","comment":"","display":"Secondary DNS IPv4","filter":"","name":"secondaryDnsIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Primary DNS IPv6","filter":"","name":"primaryDnsIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Secondary DNS IPv6","filter":"","name":"secondaryDnsIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Primary PCSCF IPv4","filter":"","name":"primaryPcscfIpv4","type":"ipv4","value":"172.16.5.110"},{"access":"read-write","comment":"","display":"Secondary PCSCF IPv4","filter":"","name":"secondaryPcscfIpv4","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Primary PCSCF IPv6","filter":"","name":"primaryPcscfIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"Secondary PCSCF IPv6","filter":"","name":"secondaryPcscfIpv6","type":"ipv6","value":""},{"access":"read-write","comment":"","display":"UE MTU","filter":"0~65535","name":"ueMtu","type":"int","value":""}]', 1, '', 1751019165523, 'public');
INSERT INTO "ne_config" VALUES (181, 'SMF', 'spgwSystem', 'SPGW Sytem Config', 'list', '[{"access":"read-write","comment":"","display":"Local S11 IP","filter":"","name":"s11Ip","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"gxgy, chfpcf","display":"Policy and Charging Interface type","filter":"","name":"policyAndChargingInterfaceType","type":"string","value":""},{"access":"read-write","comment":"","display":"Gx Policy Enable","filter":"","name":"gxEnable","type":"bool","value":""},{"access":"read-write","comment":"","display":"Gx Charging Enable","filter":"","name":"gxChargingEnable","type":"bool","value":""},{"access":"read-write","comment":"","display":"Gy Charging Enable","filter":"","name":"gyChargingEnable","type":"bool","value":""},{"access":"read-write","comment":"","display":"Chf Charging Enable","filter":"","name":"chfEnable","type":"bool","value":""},{"access":"read-write","comment":"","display":"Pcf Policy Enable","filter":"","name":"pcfEnable","type":"bool","value":""}]', 3, '', 1751019165538, 'public');
INSERT INTO "ne_config" VALUES (182, 'SMF', 'ggsnSystem', 'GGSN System Config', 'list', '[{"access":"read-write","comment":"ipv4,ipv6,ipv4v6","display":"Gn IP Address type","filter":"","name":"gnIpAddrType","type":"string","value":""},{"access":"read-write","comment":"","display":"Gn IPv4 Address","filter":"0~15","name":"gnIpv4Addr","type":"string","value":""},{"access":"read-write","comment":"","display":"Gn IPv6 Address","filter":"0~39","name":"gnIpv6Addr","type":"string","value":""},{"access":"read-write","comment":"","display":"Gy Charging Enable","filter":"","name":"gyChargingEnable","type":"bool","value":""}]', 5, '', 1751019165543, 'public');
INSERT INTO "ne_config" VALUES (183, 'SMF', 'localDiameterConfig', 'Local Diameter Config', 'list', '[{"access":"read-write","comment":"","display":"Local Diameter IP","filter":"","name":"ipAddr","type":"string","value":"172.16.5.150"},{"access":"read-write","comment":"","display":"Local Diameter Host Name","filter":"","name":"hostName","type":"string","value":"smf.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Local Diameter Realm Name","filter":"","name":"realmName","type":"string","value":"mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Local Gy Service Context ID","filter":"","name":"gyServiceContextId","type":"string","value":"gy@3gpp"},{"access":"read-write","comment":"","display":"Local Gx Service Context ID","filter":"","name":"gxServiceContextId","type":"string","value":"gx@3gpp"}]', 7, '', 1751019165548, 'public');
INSERT INTO "ne_config" VALUES (184, 'SMF', 'remoteGyCfg', 'Remote Gy Config', 'list', '[{"access":"read-write","comment":"","display":"Remote Gy Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"e.g. ipv4:port;ipv4:port;ipv4:port","display":"Remote Gy Addresses","filter":"","name":"remoteAddrs","type":"string","value":""}]', 9, '', 1751019165552, 'public');
INSERT INTO "ne_config" VALUES (185, 'SMF', 'remoteGxCfg', 'Remote Gx Config', 'list', '[{"access":"read-write","comment":"","display":"Remote Gx Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"e.g. ipv4:port;ipv4:port;ipv4:port","display":"Remote Gx Addresses","filter":"","name":"remoteAddrs","type":"string","value":""}]', 11, '', 1751019165556, 'public');
INSERT INTO "ne_config" VALUES (186, 'SMF', 'upfConfig', 'UPF Config', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~2047","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"id","type":"string","value":""},{"access":"read-write","comment":"e.g. ip:port","display":"Address","filter":"7~45","name":"addr","type":"string","value":""},{"access":"read-write","comment":"IPv4,IPv6,IPv4v6","display":"Ip Pool Type","filter":"","name":"ipPoolType","type":"string","value":"IPv4v6"},{"access":"read-write","comment":"CIDR format, e.g. 192.168.1.0/24","display":"IPv4 Pools","filter":"10~256","name":"ipv4Pools","type":"string","value":""},{"access":"read-write","comment":"CIDR format, e.g. fe80::20c:29ff:fee4:dab7/50","display":"IPv6 Pools","filter":"5~512","name":"ipv6Pools","type":"string","value":""},{"access":"read-write","comment":"","display":"Static IPv4 Enable","filter":"","name":"staticIpv4Enable","type":"bool","value":"false"},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 Start","filter":"","name":"staticIpv4Start","type":"ipv4","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 End","filter":"","name":"staticIpv4End","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Static IPv6 Enable","filter":"","name":"staticIpv6Enable","type":"bool","value":"false"},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 Start","filter":"","name":"staticIpv6Start","type":"ipv6","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 End","filter":"","name":"staticIpv6End","type":"ipv6","value":""},{"array":[{"access":"read-only","comment":"","display":"Index","filter":"0~2047","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"IPv4,IPv6,IPv4v6","display":"Ip Pool Type","filter":"","name":"ipPoolType","type":"string","value":"IPv4v6"},{"access":"read-write","comment":"CIDR format, e.g. 192.168.1.0/24","display":"IPv4 Pools","filter":"10~256","name":"ipv4Pools","type":"string","value":""},{"access":"read-write","comment":"CIDR format, e.g. fe80::20c:29ff:fee4:dab7/50","display":"IPv6 Pools","filter":"5~512","name":"ipv6Pools","type":"string","value":""},{"access":"read-write","comment":"","display":"Static IPv4 Enable","filter":"","name":"staticIpv4Enable","type":"bool","value":"false"},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 Start","filter":"","name":"staticIpv4Start","type":"ipv4","value":""},{"access":"read-write","comment":"ipv4 format","display":"Static IPv4 End","filter":"","name":"staticIpv4End","type":"ipv4","value":""},{"access":"read-write","comment":"","display":"Static IPv6 Enable","filter":"","name":"staticIpv6Enable","type":"bool","value":"false"},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 Start","filter":"","name":"staticIpv6Start","type":"ipv6","value":""},{"access":"read-write","comment":"ipv6 format","display":"Static IPv6 End","filter":"","name":"staticIpv6End","type":"ipv6","value":""}],"display":"UE DNN IP Pool","name":"ueDnnIpPool"}]', 13, '', 1751019165561, 'public');
INSERT INTO "ne_config" VALUES (187, 'SMF', 'dnnSelectUpf', 'DNN Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":""}]', 15, '', 1751019165566, 'public');
INSERT INTO "ne_config" VALUES (188, 'SMF', 'dnnTaiSelectUpf', 'DNN TAI Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"MCC+MNC+TAC","display":"TAI","filter":"1~64","name":"tai","type":"string","value":""},{"access":"read-write","comment":"","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":"upf2-Id"}]', 17, '', 1751019165571, 'public');
INSERT INTO "ne_config" VALUES (189, 'SMF', 'snssaiSelectUpf', 'SNSSAI Select UPF', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","display":"Enable","filter":"","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"sst1-sd1;sst2-sd2;sst3-sd3","display":"SNSSAI","filter":"1~64","name":"snssai","type":"string","value":"1-000001"},{"access":"read-write","comment":"upf1-id;upf2-id;upf3-id","display":"UPF ID","filter":"1~64","name":"upfId","type":"string","value":"upf1-Id"}]', 19, '', 1751019165577, 'public');
INSERT INTO "ne_config" VALUES (190, 'SMF', 'localDhcpCfg', 'Local DHCP Config', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Local IP","filter":"","name":"localIp","type":"string","value":""}]', 21, '', 1751019165582, 'public');
INSERT INTO "ne_config" VALUES (191, 'SMF', 'dnnselectdhcpserver', 'DNN Select DHCP Server', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"0~65535","name":"index","type":"int","value":""},{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"DNN","filter":"1~64","name":"dnn","type":"string","value":""},{"access":"read-write","comment":"e.g. 192.168.1.1","display":"DHCP Server IP","filter":"","name":"dhcpServerAddr","type":"string","value":""}]', 23, '', 1751019165587, 'public');
INSERT INTO "ne_config" VALUES (192, 'SMF', 'offlineChargingConfig', 'Offline Charging Config', 'list', '[{"access":"read-write","comment":"","display":"CDR File Name","filter":"1~64","name":"cdrFileName","type":"string","value":"smf.cdr"},{"access":"read-write","comment":"","display":"CDR File Path","filter":"1~256","name":"cdrFilePath","type":"string","value":"/var/log/smfCdr"},{"access":"read-write","comment":"","display":"CDR File Num","filter":"1~999999999","name":"cdrFileNum","type":"int","value":"50"},{"access":"read-write","comment":"Megabytes","display":"CDR File Size","filter":"1~999999","name":"cdrFileSize","type":"int","value":"300"},{"access":"read-write","comment":"Days","display":"CDR File Max Age","filter":"0~9999","name":"cdrFileMaxAge","type":"int","value":"30"},{"access":"read-write","comment":"","display":"Free Subscribers CDR Enable","filter":"","name":"freeSubsCdrEnable","type":"bool","value":"false"},{"access":"read-write","comment":"Seconds","display":"Time Threshold","filter":"0~999999999","name":"timeThreshold","type":"int","value":"600"},{"access":"read-write","comment":"Bytes","display":"Volume Threshold","filter":"0~999999999999999","name":"volumeThreshold","type":"int","value":"0"}]', 25, '', 1751019165593, 'public');
INSERT INTO "ne_config" VALUES (200, 'UDM', 'system', 'System', 'list', '[{"access":"read-write","comment":"","display":"Service IP","filter":"","name":"serviceIP","type":"ipv4","value":"172.16.5.140"},{"access":"read-write","comment":"","display":"Service Port","filter":"0~65535","name":"servicePort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"NRF URI","filter":"","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"AUSF IP","filter":"","name":"ausfIP","type":"ipv4","value":"172.16.5.130"},{"access":"read-write","comment":"","display":"FQDN","filter":"","name":"fqdn","type":"string","value":"omc.com"},{"access":"read-write","comment":"","display":"Priority","filter":"0~4095","name":"priority","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Capacity","filter":"0~65535","name":"capacity","type":"int","value":"4096"},{"access":"read-write","comment":"","display":"Group ID","filter":"","name":"groupId","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Supported Plmn1","filter":"^\\d{5,6}$","name":"supportedPlmn1","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn2","filter":"^\\d{5,6}$","name":"supportedPlmn2","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn3","filter":"^\\d{5,6}$","name":"supportedPlmn3","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn4","filter":"^\\d{5,6}$","name":"supportedPlmn4","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"SUPI Ranges","filter":"^imsi-\\d{15}~imsi-\\d{15}$","name":"supiRanges","type":"regex","value":"imsi-001010100080000~imsi-001010100080099"},{"access":"read-write","comment":"","display":"GPSI Ranges","filter":"^msisdn-\\d{2,15}~msisdn-\\d{2,15}$","name":"gpsiRanges","type":"regex","value":"msisdn-69072000~msisdn-69072099"},{"access":"read-write","comment":"","display":"Scheme","filter":"{\"0\":\"HTTP\", \"1\":\"HTTPS\"}","name":"scheme","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Redis Link","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"redisLink","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Redis Address","filter":"","name":"redisAddr","type":"string","value":"172.16.5.140:6379"}]', 1, '', 1719831212399, 'public');
INSERT INTO "ne_config" VALUES (201, 'UDM', 'subsUEAmbr', 'Subs UE AMBR', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_ambr"},{"access":"read-write","comment":"","display":"Uplink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"uplink","type":"regex","value":"1 Gbps"},{"access":"read-write","comment":"","display":"Downlink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"downlink","type":"regex","value":"2 Gbps"}]', 3, '', 1719831212494, 'public');
INSERT INTO "ne_config" VALUES (202, 'UDM', 'subsNssais', 'Subs NSSAIs', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_nssai"},{"access":"read-write","comment":"","display":"Supported Features","filter":"^[0-9a-fA-F]{8}$","name":"supportedFeatures","type":"regex","value":"00000001"},{"access":"read-write","comment":"","display":"Default Single NSSAIs","filter":"","name":"defaultSingleNSSAIs","type":"string","value":"1-000001"},{"access":"read-write","comment":"","display":"Single NSSAIs","filter":"","name":"singleNssais","type":"string","value":"1-000002"}]', 5, '', 1719831212590, 'public');
INSERT INTO "ne_config" VALUES (203, 'UDM', 'forbiddenAreas', 'Forbidden Areas', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_ambr"},{"access":"read-write","comment":"","display":"TACs","filter":"","name":"tacs","type":"string","value":"123"},{"access":"read-write","comment":"","display":"Area Codes","filter":"","name":"areaCodes","type":"string","value":"123456"}]', 7, '', 1719831212718, 'public');
INSERT INTO "ne_config" VALUES (204, 'UDM', 'serviceAreaRestriction', 'Service Area Restriction', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_ambr"},{"access":"read-write","comment":"","display":"Restriction Type","filter":"{\"0\":\"Allowed Areas\", \"1\":\"Not Allowed Areas\"}","name":"restrictionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"TACs","filter":"","name":"tacs","type":"string","value":"123"},{"access":"read-write","comment":"","display":"Area Codes","filter":"","name":"areaCodes","type":"string","value":"123456"},{"access":"read-write","comment":"","display":"Max TAs","filter":"^\\d{1,2}$","name":"maxTAs","type":"int","value":"1"}]', 9, '', 1719831212824, 'public');
INSERT INTO "ne_config" VALUES (205, 'UDM', 'smfSelection', 'Subs SMF Selection', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_snssai"},{"access":"read-write","comment":"","display":"SNSSAI","filter":"^\\d{1,3}[A-Fa-f0-9]{6}$","name":"snssai","type":"string","value":"1-000001"},{"access":"read-only","array":[{"access":"read-only","comment":"","display":"Index","filter":"1~4","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"DNN","filter":"^.{1,32}$","name":"dnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"Default DNN Indicator","filter":"false;true;","name":"defaultDnnInd","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"LBO Roaming Allowed","filter":"false;true;","name":"lboRoamingAllowed","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Interworking EPS Indicator","filter":"false;true;","name":"iwkEpsInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"LADN Indicator","filter":"false;true;","name":"ladnIndicator","type":"bool","value":"false"}],"comment":"","display":"DNN List","filter":"1~4","name":"dnnList","type":"int","value":"1"}]', 11, '', 1719831212979, 'public');
INSERT INTO "ne_config" VALUES (206, 'UDM', 'dnn', 'DNN Conf', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_nssai"},{"access":"read-write","comment":"","display":"Default PDU Session Type","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"Ethernet\",\"4\":\"Unstruction\"}","name":"defaultPDUSessionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Allowed PDU Session Types","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"Ethernet\",\"4\":\"Unstruction\",\"5\":\"IPv4 \u0026 IPv6\",\"6\":\"IPv4 \u0026 IPv4v6\",\"7\":\"IPv6 \u0026 IPv4v6\",\"8\":\"IPv4 \u0026 IPv6 \u0026 IPv4v6\"}","name":"allowedPDUSessionTypes","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"5QI","filter":"0~255","name":"5qi","type":"int","value":"9"},{"access":"read-write","comment":"","display":"Priority Level","filter":"1~127","name":"priorityLevel","type":"int","value":"9"},{"access":"read-write","comment":"","display":"Default SSC Mode","filter":"{\"0\":\"SSC Mode1\",\"1\":\"SSC Mode2\",\"2\":\"SSC Mode3\"}","name":"defaultSSCmode","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Allowed SSC Modes","filter":"{\"0\":\"SSC Mode1\",\"1\":\"SSC Mode2\",\"2\":\"SSC Mode3\",\"3\":\"SSC Mode1 \u0026 SSC Mode2\",\"4\":\"SSC Mode1 \u0026 SSC Mode3\",\"5\":\"SSC Mode2 \u0026 SSC Mode3\",\"6\":\"SSC Mode1 \u0026 SSC Mode2 \u0026 SSC Mode3\"}","name":"allowedSSCmodes","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Interworking EPS Indicator","filter":"","name":"interworkingEPSIndicator","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"LADN Indicator","filter":"","name":"ladnIndicator","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"Charging Characteristics","filter":"4~4","name":"chargingCharacteristics","type":"string","value":"0001"},{"access":"read-write","comment":"","display":"Subscribed Session AMBR Uplink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"subscribedSessionAmbrUL","type":"regex","value":"1 Gbps"},{"access":"read-write","comment":"","display":"Subscribed Session AMBR Downlink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"subscribedSessionAmbrDL","type":"regex","value":"2 Gbps"},{"access":"read-write","comment":"","display":"Static IP Address","filter":"","name":"staticIPAddress","type":"ipv4","value":"192.168.1.100"},{"access":"read-write","comment":"","display":"User Plane Integrity","filter":"{\"0\":\"Null\",\"1\":\"Required\",\"2\":\"Preferred\",\"3\":\"Not Needed\"}","name":"userPlaneIntegrity","type":"enum","value":"3"},{"access":"read-write","comment":"","display":"User Plane Confidentiality","filter":"{\"0\":\"Null\",\"1\":\"Required\",\"2\":\"Preferred\",\"3\":\"Not Needed\"}","name":"userPlaneConfidentiality","type":"enum","value":"3"},{"access":"read-write","comment":"","display":"ARP Priority Level","filter":"0~255","name":"arpPriorityLevel","type":"int","value":"6"},{"access":"read-write","comment":"","display":"ARP Preempt Capability","filter":"{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}","name":"arpPreemptCap","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"ARP Preempt Vulnerability","filter":"{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}","name":"arpPreemptVuln","type":"enum","value":"0"}]', 13, '', 1719831213074, 'public');
INSERT INTO "ne_config" VALUES (207, 'UDM', 'epsTemplate', 'EPS User Template', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{0,31}$","name":"name","type":"string","value":"def_eps"},{"access":"read-write","comment":"","display":"AMBR Uplink","filter":"0~4294967295","name":"ambrUplink","type":"int","value":"100000000"},{"access":"read-write","comment":"","display":"AMBR Downlink","filter":"0~4294967295","name":"ambrDownlink","type":"int","value":"200000000"},{"access":"read-write","comment":"","display":"APN OI Replacement","filter":"^.{0,31}$","name":"apnOIReplacement","type":"string","value":"money"},{"access":"read-write","comment":"","display":"RFSP","filter":"","name":"rfsp","type":"int","value":"1"},{"access":"read-write","comment":"","display":"RAU TAU Timer","filter":"","name":"rauTauTimer","type":"int","value":"120"},{"access":"read-write","comment":"","display":"Charging Characteristic","filter":"4~4","name":"chargingCharacteristic","type":"string","value":"0001"}]', 15, '', 1719831213203, 'public');
INSERT INTO "ne_config" VALUES (208, 'UDM', 'epsApn', 'EPS APN', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"DNN","filter":"^.{0,127}$","name":"dnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"PDN Type","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"IPv4 or IPv6\"}","name":"pdnType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"QCI","filter":"1~255","name":"qci","type":"int","value":"9"},{"access":"read-write","comment":"","display":"ARP Priority","filter":"1~127","name":"arpPriorityLevel","type":"int","value":"8"},{"access":"read-write","comment":"","display":"ARP Preemption Capability","filter":"{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}","name":"arpPreemptCap","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"ARP Preemption Vulnerability","filter":"{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}","name":"arpPreemptVuln","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Context Identifier","filter":"","name":"contextIdentifier","type":"int","value":"1"},{"access":"read-write","comment":"","display":"VPLMN Dynamic Address Allowed","filter":"false;true;","name":"vplmnDynamicAddressAllowed","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"PDN GW Allocation Type","filter":"{\"0\":\"Static\",\"1\":\"Dynamic\"}","name":"pdnGWAllocationType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"AMBR Uplink","filter":"0~4294967295","name":"ambrUplink","type":"int","value":"100000000"},{"access":"read-write","comment":"","display":"AMBR Downlink","filter":"0~4294967295","name":"ambrDownlink","type":"int","value":"200000000"},{"access":"read-write","comment":"","display":"Charging Characteristic","filter":"4~4","name":"chargingCharacteristic","type":"string","value":"0001"}]', 17, '', 1719831213410, 'public');
INSERT INTO "ne_config" VALUES (209, 'UDM', 'applicationServer', 'Application Server', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"AS Name","filter":"^.{1,31}$","name":"name","type":"string","value":"mmtel_as"},{"access":"read-write","comment":"","display":"Default Handling","filter":"{\"0\":\"Session Continued\",\"1\":\"Session Terminated\"}","name":"defaultHandling","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Server Name","filter":"^.{1,127}$","name":"serverName","type":"string","value":"sip:192.168.8.26:7060"},{"access":"read-write","comment":"","display":"Diameter Address","filter":"^.{1,127}$","name":"diameterAddress","type":"string","value":"mmtel.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Rep Data Size Limit","filter":"0~65535","name":"repDataSizeLimit","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Include Register Request","filter":"false;true;","name":"includeRegisterRequest","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Include Register Response","filter":"false;true;","name":"includeRegisterResponse","type":"bool","value":"false"}]', 19, '', 1719831213536, 'public');
INSERT INTO "ne_config" VALUES (210, 'UDM', 'scscfSet', 'SCSCF Set', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~8","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,31}$","name":"name","type":"string","value":"mmtel_as"},{"access":"read-write","comment":"","display":"Priority","filter":"","name":"priority","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Server Name","filter":"^.{1,127}$","name":"serverName","type":"string","value":"sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060"}]', 21, '', 1719831213732, 'public');
INSERT INTO "ne_config" VALUES (211, 'UDM', 'triggerPoint', 'Trigger Point', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_snssai"},{"access":"read-write","comment":"","display":"Condition Type CNF","filter":"0~1","name":"conditionTypeCNF","type":"int","value":"0"},{"access":"read-only","array":[{"access":"read-only","comment":"","display":"Index","filter":"1~4","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Condition Negated","filter":"0~1","name":"conditionNegated","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Group","filter":"0~4096","name":"group","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Method","filter":"^.{0,32}$","name":"method","type":"string","value":""},{"access":"read-write","comment":"","display":"SIP Header","filter":"^.{0,64}$","name":"sipHeader","type":"string","value":""},{"access":"read-write","comment":"","display":"SIP Content","filter":"^.{0,64}$","name":"sipContent","type":"string","value":""}],"comment":"","display":"SPT List","filter":"1~4","name":"sptList","type":"int","value":"1"}]', 23, '', 1719831213924, 'public');
INSERT INTO "ne_config" VALUES (212, 'UDM', 's6aServer', 'S6a Server', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"false;true;","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Link Type","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"netType","type":"enum","value":"1"},{"access":"read-write","comment":"","display":"Address","filter":"","name":"addr","type":"string","value":"172.16.5.140:3868"},{"access":"read-write","comment":"","display":"Host","filter":"^.{1,127}$","name":"host","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Realm","filter":"^.{1,127}$","name":"realm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"}]', 25, '', 1719831214313, 'public');
INSERT INTO "ne_config" VALUES (213, 'UDM', 'cxServer', 'Cx Server', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"false;true;","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Link Type","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"netType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Address","filter":"","name":"addr","type":"string","value":"172.16.5.140:3868"},{"access":"read-write","comment":"","display":"Host","filter":"^.{1,127}$","name":"host","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Realm","filter":"^.{1,127}$","name":"realm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"}]', 27, '', 1719831214393, 'public');
-- 更新 UDM 配置 20250715
INSERT INTO "ne_config" VALUES (200, 'UDM', 'system', 'System', 'list', '[{"access":"read-write","comment":"","display":"Service IP","filter":"","name":"serviceIP","type":"ipv4","value":"172.16.5.140"},{"access":"read-write","comment":"","display":"Service Port","filter":"0~65535","name":"servicePort","type":"int","value":"8080"},{"access":"read-write","comment":"","display":"NRF URI","filter":"","name":"nrfUri","type":"string","value":"http://172.16.5.180:8080"},{"access":"read-write","comment":"","display":"FQDN","filter":"","name":"fqdn","type":"string","value":"omc.com"},{"access":"read-write","comment":"","display":"Priority","filter":"0~4095","name":"priority","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Capacity","filter":"0~65535","name":"capacity","type":"int","value":"4096"},{"access":"read-write","comment":"","display":"Group ID","filter":"","name":"groupId","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Supported Plmn1","filter":"^\\d{5,6}$","name":"supportedPlmn1","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn2","filter":"^\\d{5,6}$","name":"supportedPlmn2","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn3","filter":"^\\d{5,6}$","name":"supportedPlmn3","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"Supported Plmn4","filter":"^\\d{5,6}$","name":"supportedPlmn4","type":"string","value":"00101"},{"access":"read-write","comment":"","display":"SUPI Ranges","filter":"^imsi-\\d{15}~imsi-\\d{15}$","name":"supiRanges","type":"regex","value":"imsi-001010100080000~imsi-001010100080099"},{"access":"read-write","comment":"","display":"GPSI Ranges","filter":"^msisdn-\\d{2,15}~msisdn-\\d{2,15}$","name":"gpsiRanges","type":"regex","value":"msisdn-69072000~msisdn-69072099"},{"access":"read-write","comment":"","display":"Scheme","filter":"{\"0\":\"HTTP\", \"1\":\"HTTPS\"}","name":"scheme","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Redis Link","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"redisLink","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Redis Address","filter":"","name":"redisAddr","type":"string","value":"172.16.5.140:6379"}]', 1, '', 1752577177260, 'public');
INSERT INTO "ne_config" VALUES (201, 'UDM', 'ausfCfg', 'AUSF Config', 'list', '[{"access":"read-write","comment":"","display":"AUSF enable","filter":"","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"EAP-Aka SupiOrImsi Prefix","filter":"","name":"eapAkaSupiImsiPrefix","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"AUSF FQDN","filter":"0~128","name":"ausfFqdn","type":"string","value":"ausf.5gc.com"}]', 3, '', 1752577177350, 'public');
INSERT INTO "ne_config" VALUES (202, 'UDM', 'subsUEAmbr', 'Subs UE AMBR', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_ambr"},{"access":"read-write","comment":"","display":"Uplink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"uplink","type":"regex","value":"1 Gbps"},{"access":"read-write","comment":"","display":"Downlink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"downlink","type":"regex","value":"2 Gbps"}]', 5, '', 1752577177371, 'public');
INSERT INTO "ne_config" VALUES (203, 'UDM', 'subsNssais', 'Subs NSSAIs', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_nssai"},{"access":"read-write","comment":"","display":"Supported Features","filter":"^[0-9a-fA-F]{8}$","name":"supportedFeatures","type":"regex","value":"00000001"},{"access":"read-write","comment":"","display":"Default Single NSSAIs","filter":"","name":"defaultSingleNSSAIs","type":"string","value":"1-000001"},{"access":"read-write","comment":"","display":"Single NSSAIs","filter":"","name":"singleNssais","type":"string","value":"1-000002"}]', 7, '', 1752577177376, 'public');
INSERT INTO "ne_config" VALUES (204, 'UDM', 'forbiddenAreas', 'Forbidden Areas', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_ambr"},{"access":"read-write","comment":"","display":"TACs","filter":"","name":"tacs","type":"string","value":"123"},{"access":"read-write","comment":"","display":"Area Codes","filter":"","name":"areaCodes","type":"string","value":"123456"}]', 9, '', 1752577177380, 'public');
INSERT INTO "ne_config" VALUES (205, 'UDM', 'serviceAreaRestriction', 'Service Area Restriction', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"lab_sar"},{"access":"read-write","comment":"","display":"Restriction Type","filter":"{\"0\":\"Allowed Areas\", \"1\":\"Not Allowed Areas\"}","name":"restrictionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"TACs","filter":"","name":"tacs","type":"string","value":"123"},{"access":"read-write","comment":"","display":"Area Codes","filter":"","name":"areaCodes","type":"string","value":"123456"},{"access":"read-write","comment":"","display":"Max TAs","filter":"^\\d{1,2}$","name":"maxTAs","type":"int","value":"1"}]', 11, '', 1752577177385, 'public');
INSERT INTO "ne_config" VALUES (206, 'UDM', 'smfSelection', 'Subs SMF Selection', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_snssai"},{"access":"read-write","comment":"","display":"SNSSAI","filter":"^\\d{1,3}[A-Fa-f0-9]{6}$","name":"snssai","type":"string","value":"1-000001"},{"access":"read-only","array":[{"access":"read-only","comment":"","display":"Index","filter":"1~4","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"DNN","filter":"^.{1,32}$","name":"dnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"Default DNN Indicator","filter":"false;true;","name":"defaultDnnInd","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"LBO Roaming Allowed","filter":"false;true;","name":"lboRoamingAllowed","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Interworking EPS Indicator","filter":"false;true;","name":"iwkEpsInd","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"LADN Indicator","filter":"false;true;","name":"ladnIndicator","type":"bool","value":"false"}],"comment":"","display":"DNN List","filter":"1~4","name":"dnnList","type":"int","value":"1"}]', 13, '', 1752577177391, 'public');
INSERT INTO "ne_config" VALUES (207, 'UDM', 'dnn', 'DNN Conf', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_nssai"},{"access":"read-write","comment":"","display":"Default PDU Session Type","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"Ethernet\",\"4\":\"Unstruction\"}","name":"defaultPDUSessionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Allowed PDU Session Types","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"Ethernet\",\"4\":\"Unstruction\",\"5\":\"IPv4 \u0026 IPv6\",\"6\":\"IPv4 \u0026 IPv4v6\",\"7\":\"IPv6 \u0026 IPv4v6\",\"8\":\"IPv4 \u0026 IPv6 \u0026 IPv4v6\"}","name":"allowedPDUSessionTypes","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"5QI","filter":"0~255","name":"5qi","type":"int","value":"9"},{"access":"read-write","comment":"","display":"Priority Level","filter":"1~127","name":"priorityLevel","type":"int","value":"9"},{"access":"read-write","comment":"","display":"Default SSC Mode","filter":"{\"0\":\"SSC Mode1\",\"1\":\"SSC Mode2\",\"2\":\"SSC Mode3\"}","name":"defaultSSCmode","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Allowed SSC Modes","filter":"{\"0\":\"SSC Mode1\",\"1\":\"SSC Mode2\",\"2\":\"SSC Mode3\",\"3\":\"SSC Mode1 \u0026 SSC Mode2\",\"4\":\"SSC Mode1 \u0026 SSC Mode3\",\"5\":\"SSC Mode2 \u0026 SSC Mode3\",\"6\":\"SSC Mode1 \u0026 SSC Mode2 \u0026 SSC Mode3\"}","name":"allowedSSCmodes","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Interworking EPS Indicator","filter":"","name":"interworkingEPSIndicator","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"LADN Indicator","filter":"","name":"ladnIndicator","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"Charging Characteristics","filter":"4~4","name":"chargingCharacteristics","type":"string","value":"0001"},{"access":"read-write","comment":"","display":"Subscribed Session AMBR Uplink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"subscribedSessionAmbrUL","type":"regex","value":"1 Gbps"},{"access":"read-write","comment":"","display":"Subscribed Session AMBR Downlink","filter":"^\\d+(\\.\\d+)?( ?)(bps|Kbps|Mbps|Gbps|Tbps)$","name":"subscribedSessionAmbrDL","type":"regex","value":"2 Gbps"},{"access":"read-write","comment":"","display":"Static IP Address","filter":"","name":"staticIPAddress","type":"ipv4","value":"192.168.1.100"},{"access":"read-write","comment":"","display":"User Plane Integrity","filter":"{\"0\":\"Null\",\"1\":\"Required\",\"2\":\"Preferred\",\"3\":\"Not Needed\"}","name":"userPlaneIntegrity","type":"enum","value":"3"},{"access":"read-write","comment":"","display":"User Plane Confidentiality","filter":"{\"0\":\"Null\",\"1\":\"Required\",\"2\":\"Preferred\",\"3\":\"Not Needed\"}","name":"userPlaneConfidentiality","type":"enum","value":"3"},{"access":"read-write","comment":"","display":"ARP Priority Level","filter":"0~255","name":"arpPriorityLevel","type":"int","value":"6"},{"access":"read-write","comment":"","display":"ARP Preempt Capability","filter":"{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}","name":"arpPreemptCap","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"ARP Preempt Vulnerability","filter":"{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}","name":"arpPreemptVuln","type":"enum","value":"0"}]', 15, '', 1752577177395, 'public');
INSERT INTO "ne_config" VALUES (208, 'UDM', 'epsTemplate', 'EPS User Template', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{0,31}$","name":"name","type":"string","value":"def_eps"},{"access":"read-write","comment":"","display":"AMBR Uplink","filter":"0~4294967295","name":"ambrUplink","type":"int","value":"100000000"},{"access":"read-write","comment":"","display":"AMBR Downlink","filter":"0~4294967295","name":"ambrDownlink","type":"int","value":"200000000"},{"access":"read-write","comment":"","display":"APN OI Replacement","filter":"^.{0,31}$","name":"apnOIReplacement","type":"string","value":"money"},{"access":"read-write","comment":"","display":"RFSP","filter":"","name":"rfsp","type":"int","value":"1"},{"access":"read-write","comment":"","display":"RAU TAU Timer","filter":"","name":"rauTauTimer","type":"int","value":"120"},{"access":"read-write","comment":"","display":"Charging Characteristic","filter":"4~4","name":"chargingCharacteristic","type":"string","value":"0001"}]', 17, '', 1752577177401, 'public');
INSERT INTO "ne_config" VALUES (209, 'UDM', 'epsApn', 'EPS APN', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"DNN","filter":"^.{0,127}$","name":"dnn","type":"string","value":"internet"},{"access":"read-write","comment":"","display":"PDN Type","filter":"{\"0\":\"IPv4\",\"1\":\"IPv6\",\"2\":\"IPv4v6\",\"3\":\"IPv4 or IPv6\"}","name":"pdnType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"QCI","filter":"1~255","name":"qci","type":"int","value":"9"},{"access":"read-write","comment":"","display":"ARP Priority","filter":"1~127","name":"arpPriorityLevel","type":"int","value":"8"},{"access":"read-write","comment":"","display":"ARP Preemption Capability","filter":"{\"0\":\"Not Preempt\",\"1\":\"May Preempt\"}","name":"arpPreemptCap","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"ARP Preemption Vulnerability","filter":"{\"0\":\"Not Preemptable\",\"1\":\"Preemptable\"}","name":"arpPreemptVuln","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Context Identifier","filter":"","name":"contextIdentifier","type":"int","value":"1"},{"access":"read-write","comment":"","display":"VPLMN Dynamic Address Allowed","filter":"false;true;","name":"vplmnDynamicAddressAllowed","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"PDN GW Allocation Type","filter":"{\"0\":\"Static\",\"1\":\"Dynamic\"}","name":"pdnGWAllocationType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"AMBR Uplink","filter":"0~4294967295","name":"ambrUplink","type":"int","value":"100000000"},{"access":"read-write","comment":"","display":"AMBR Downlink","filter":"0~4294967295","name":"ambrDownlink","type":"int","value":"200000000"},{"access":"read-write","comment":"","display":"Charging Characteristic","filter":"4~4","name":"chargingCharacteristic","type":"string","value":"0001"}]', 19, '', 1752577177405, 'public');
INSERT INTO "ne_config" VALUES (210, 'UDM', 'applicationServer', 'Application Server', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"AS Name","filter":"^.{1,31}$","name":"name","type":"string","value":"mmtel_as"},{"access":"read-write","comment":"","display":"Default Handling","filter":"{\"0\":\"Session Continued\",\"1\":\"Session Terminated\"}","name":"defaultHandling","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Server Name","filter":"^.{1,127}$","name":"serverName","type":"string","value":"sip:192.168.8.26:7060"},{"access":"read-write","comment":"","display":"Diameter Address","filter":"^.{1,127}$","name":"diameterAddress","type":"string","value":"mmtel.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Rep Data Size Limit","filter":"0~65535","name":"repDataSizeLimit","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Include Register Request","filter":"false;true;","name":"includeRegisterRequest","type":"bool","value":"false"},{"access":"read-write","comment":"","display":"Include Register Response","filter":"false;true;","name":"includeRegisterResponse","type":"bool","value":"false"}]', 21, '', 1752577177410, 'public');
INSERT INTO "ne_config" VALUES (211, 'UDM', 'scscfSet', 'SCSCF Set', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~8","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,31}$","name":"name","type":"string","value":"mmtel_as"},{"access":"read-write","comment":"","display":"Priority","filter":"","name":"priority","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Server Name","filter":"^.{1,127}$","name":"serverName","type":"string","value":"sip:scscf.ims.mnc001.mcc001.3gppnetwork.org:6060"}]', 23, '', 1752577177415, 'public');
INSERT INTO "ne_config" VALUES (212, 'UDM', 'triggerPoint', 'Trigger Point', 'array', '[{"access":"read-only","comment":"","display":"Index","filter":"1~16","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Name","filter":"^.{1,32}$","name":"name","type":"string","value":"def_snssai"},{"access":"read-write","comment":"","display":"Condition Type CNF","filter":"0~1","name":"conditionTypeCNF","type":"int","value":"0"},{"access":"read-only","array":[{"access":"read-only","comment":"","display":"Index","filter":"1~4","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Enable","filter":"","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Condition Negated","filter":"0~1","name":"conditionNegated","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Group","filter":"0~4096","name":"group","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Method","filter":"^.{0,32}$","name":"method","type":"string","value":""},{"access":"read-write","comment":"","display":"SIP Header","filter":"^.{0,64}$","name":"sipHeader","type":"string","value":""},{"access":"read-write","comment":"","display":"SIP Content","filter":"^.{0,64}$","name":"sipContent","type":"string","value":""}],"comment":"","display":"SPT List","filter":"1~4","name":"sptList","type":"int","value":"1"}]', 25, '', 1752577177419, 'public');
INSERT INTO "ne_config" VALUES (213, 'UDM', 's6aServer', 'S6a Server', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"false;true;","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Link Type","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"netType","type":"enum","value":"1"},{"access":"read-write","comment":"","display":"Address","filter":"","name":"addr","type":"string","value":"172.16.5.140:3868"},{"access":"read-write","comment":"","display":"Host","filter":"^.{1,127}$","name":"host","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Realm","filter":"^.{1,127}$","name":"realm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"}]', 27, '', 1752577177423, 'public');
INSERT INTO "ne_config" VALUES (214, 'UDM', 'cxServer', 'Cx Server', 'list', '[{"access":"read-write","comment":"","display":"Enable","filter":"false;true;","name":"enable","type":"bool","value":"true"},{"access":"read-write","comment":"","display":"Link Type","filter":"{\"0\":\"TCP\",\"1\":\"SCTP\"}","name":"netType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Address","filter":"","name":"addr","type":"string","value":"172.16.5.140:3868"},{"access":"read-write","comment":"","display":"Host","filter":"^.{1,127}$","name":"host","type":"string","value":"hss.ims.mnc001.mcc001.3gppnetwork.org"},{"access":"read-write","comment":"","display":"Realm","filter":"^.{1,127}$","name":"realm","type":"string","value":"ims.mnc001.mcc001.3gppnetwork.org"}]', 29, '', 1752577177427, 'public');
-- 更新 UPF 配置 20250320
INSERT INTO "ne_config" VALUES (220, 'UPF', 'general', 'General', 'list', '[{"access":"read-write","comment":"","display":"Config File Directory","filter":"","name":"configFileDirectory","type":"string","value":"/usr/local/etc/upf/"},{"access":"read-write","comment":"","display":"EXE File Directory","filter":"","name":"exeFileDirectory","type":"string","value":"/usr/local/bin/"},{"access":"read-write","comment":"1~255","display":"System ID","filter":"","name":"systemId","type":"int","value":"1"},{"access":"read-write","comment":"1~8","display":"Data Forwarder Number","filter":"1~8","name":"dataForwarderNum","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Common Statistic Interval","filter":"","name":"commonStatisticInterval","type":"int","value":"60"},{"access":"read-write","comment":"","display":"User Statistic Interval","filter":"","name":"userStatisticInterval","type":"int","value":"60"},{"access":"read-write","comment":"","display":"RX N3 OverLoad Threshold Mbps","filter":"","name":"rxN3OverLoadThresholdMbps","type":"int","value":"0"},{"access":"read-write","comment":"","display":"RX N6 OverLoad Threshold Mbps","filter":"","name":"rxN6OverLoadThresholdMbps","type":"int","value":"0"},{"access":"read-write","comment":"0~255","display":"Checksum Offload","filter":"0~255","name":"checksumOffload","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Max Downlink Buffer Num","filter":"","name":"maxDownlinkBufferNum","type":"int","value":"50"}]', 1, '', 1742469466451, 'public');
@@ -124,22 +133,22 @@ INSERT INTO "ne_config" VALUES (235, 'UPF', 'dpiHeaderEnrichInfoList', 'DPI Head
INSERT INTO "ne_config" VALUES (236, 'UPF', 'dpiAppList', 'DPI APP List', 'array', '[{"access":"read-write","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"APP Name","filter":"","name":"appName","type":"string","value":""},{"access":"read-write","comment":"","display":"Proxy Enabled","filter":"0~1","name":"proxyEnabled","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Force Check Type","filter":"0~1","name":"forceCheckType","type":"int","value":"0"},{"access":"read-write","comment":"","display":"N3 Interface ID","filter":"0~32","name":"n3InterfaceId","type":"int","value":"0"},{"access":"read-write","comment":"","display":"N6 Interface ID","filter":"0~32","name":"n6InterfaceId","type":"int","value":"0"},{"access":"read-write","array":[{"access":"read-only","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Rule ID","filter":"","name":"ruleId","type":"int","value":""},{"access":"read-write","comment":"","display":"REGEX Match","filter":"","name":"regexMatch","type":"string","value":""},{"access":"read-write","comment":"","display":"Flow Description","filter":"","name":"flowDescription","type":"string","value":""},{"access":"read-write","comment":"","display":"Custom Name","filter":"","name":"customName","type":"string","value":""}],"comment":"","display":"Rule List","filter":"0~32","name":"ruleList","type":"int","value":"1"}]', 35, '', 1742469466580, 'public');
INSERT INTO "ne_config" VALUES (237, 'UPF', 'networkControlFreeServerList', 'Free Server List', 'array', '[{"access":"read-write","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Enabled","filter":"0~1","name":"enabled","type":"int","value":"0"},{"access":"read-write","array":[{"access":"read-only","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"Server IPv4","filter":"","name":"serverIpv4","type":"string","value":"0.0.0.0"},{"access":"read-write","comment":"","display":"Server IPv4 Mask","filter":"","name":"serverIpv4Mask","type":"string","value":"255.255.255.0"},{"access":"read-write","comment":"","display":"Server IPv6","filter":"","name":"serverIpv6","type":"string","value":""},{"access":"read-write","comment":"","display":"Server IPv6 Prefix","filter":"","name":"serverIpv6Prefix","type":"int","value":"64"}],"comment":"","display":"Free Server Address List","filter":"0~32","name":"freeServerAddrList","type":"int","value":"1"}]', 27, '', 1742469466563, 'public');
-- 更新 CBC 配置 20240823
INSERT INTO "ne_config" VALUES (240, 'CBC', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"","display":"CBC Name","filter":"0~64","name":"name","type":"string","value":"CBC"},{"access":"read-write","comment":"","display":"NF Instance","filter":"0~64","name":"instance","type":"string","value":"CBC-001"},{"access":"read-write","comment":"","display":"SBI Server IP","filter":"0~64","name":"sbiIp","type":"string","value":"127.0.0.1"},{"access":"read-write","comment":"0~65535","display":"SBI Server Port","filter":"0~65535","name":"sbiPort","type":"int","value":"9090"},{"access":"read-write","comment":"http or https","display":"SBI Scheme","filter":"{\"0\":\"http\",\"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"0"}]', 1, '', 1724327154483, 'public');
INSERT INTO "ne_config" VALUES (241, 'CBC', 'amfProfile', 'AMF Profile', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"NF Name","filter":"0~64","name":"name","type":"string","value":"AMF"},{"access":"read-write","comment":"","display":"AMF URI","filter":"0~64","name":"uri","type":"string","value":"http://172.16.5.130:8080"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~8","name":"tac","type":"string","value":"1"}]', 3, '', 1724327154499, 'public');
INSERT INTO "ne_config" VALUES (242, 'CBC', 'mmeProfile', 'MME Profile', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"NF Name","filter":"0~64","name":"name","type":"string","value":"MME"},{"access":"read-write","comment":"","display":"MME URI","filter":"0~64","name":"uri","type":"string","value":"sctp://192.168.1.1:9090"},{"access":"read-write","comment":"","display":"PLMN ID","filter":"^[0-9]{5,6}$","name":"plmnId","type":"regex","value":"00101"},{"access":"read-write","comment":"0~16777215","display":"TAC","filter":"0~8","name":"tac","type":"string","value":"1"}]', 5, '', 1724327154504, 'public');
-- 更新 CBC 配置 20250715
INSERT INTO "ne_config" VALUES (240, 'CBC', 'system', 'System Config', 'list', '[{"access":"read-write","comment":"","display":"CBC Name","filter":"0~64","name":"name","type":"string","value":"CBC"},{"access":"read-write","comment":"","display":"SBI Server IP","filter":"0~64","name":"sbiIp","type":"string","value":"127.0.0.1"},{"access":"read-write","comment":"0~65535","display":"SBI Server Port","filter":"0~65535","name":"sbiPort","type":"int","value":"9090"},{"access":"read-write","comment":"","display":"SBI Scheme","filter":"{\"0\":\"http\",\"1\":\"https\"}","name":"sbiScheme","type":"enum","value":"0"},{"access":"read-write","comment":"0~65535","display":"SBI Timeout","filter":"0~65535","name":"sbiTimeout","type":"int","value":"3"}]', 1, '', 1752577098470, 'public');
INSERT INTO "ne_config" VALUES (241, 'CBC', 'amfProfile', 'AMF Profile', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"apply the current AMF NF Profile","display":"Enable AMF","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enabled","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"NF Name","filter":"0~64","name":"name","type":"string","value":"AMF"},{"access":"read-write","comment":"format: http://\u003cIP\u003e:\u003cPORT\u003e e.g: http://192.168.1.1:9090","display":"AMF URI","filter":"0~64","name":"uri","type":"string","value":"http://172.16.5.130:8080"},{"access":"read-write","array":[{"access":"read-only","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"MCC","filter":"^\\d{3,3}$","name":"mcc","type":"regex","value":"460"},{"access":"read-write","comment":"","display":"MNC","filter":"^\\d{2,3}$","name":"mnc","type":"regex","value":"00"},{"access":"read-write","comment":"(A).format is decimal string,e.g:43888 (B).Allow set multiple tac value by ; split, e:4388;4360 ","display":"TAC","filter":"^(\\d+(;\\d+)*)?$","name":"tac","type":"regex","value":"4388"}],"comment":"allow TaiList null or add more tai value","display":"Tai List","filter":"","name":"taiList","type":"regex","value":""}]', 3, '', 1752577099153, 'public');
INSERT INTO "ne_config" VALUES (242, 'CBC', 'mmeProfile', 'MME Profile', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"apply the current MME NF Profile","display":"Enable MME","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enabled","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"NF Name","filter":"0~64","name":"name","type":"string","value":"MME"},{"access":"read-write","comment":"format: sctp://\u003cIP\u003e:\u003cPORT\u003e e.g: sctp://192.168.1.1:9090","display":"MME URI","filter":"0~64","name":"uri","type":"string","value":"sctp://192.168.1.1:9090"},{"access":"read-write","array":[{"access":"read-only","comment":"1~32","display":"Index","filter":"1~32","name":"index","type":"int","value":"1"},{"access":"read-write","comment":"","display":"MCC","filter":"^\\d{3,3}$","name":"mcc","type":"regex","value":"460"},{"access":"read-write","comment":"","display":"MNC","filter":"^\\d{2,3}$","name":"mnc","type":"regex","value":"00"},{"access":"read-write","comment":"(A).format is decimal string,e.g:43888 (B).Allow set multiple tac value by ; split, e:4388;4360 ","display":"TAC","filter":"^(\\d+(;\\d+)*)?$","name":"tac","type":"regex","value":"4388"}],"comment":"allow TaiList null or add more tai value","display":"Tai List","filter":"","name":"taiList","type":"regex","value":""}]', 5, '', 1752577099228, 'public');
-- OMC parameter config
INSERT INTO "ne_config" VALUES (260, 'OMC', 'alarmEmailForward', 'Alarm Email Forward Interface', 'list', '[{"access":"rw","comment":"Is it enabled forward alarm with Email interface","display":"Enable","filter":"true;false","name":"enable","type":"bool","value":"true"},{"access":"rw","comment":"","display":"Email List","filter":"","name":"emailList","type":"string","value":""},{"access":"rw","comment":"Email SMTP server","display":"SMTP Server","filter":"","name":"smtp","type":"string","value":""},{"access":"rw","comment":"","display":"Port","filter":"0~65535","name":"port","type":"int","value":""},{"access":"rw","comment":"","display":"User","filter":"","name":"user","type":"string","value":""},{"access":"rw","comment":"","display":"Password","filter":"","name":"password","type":"string","value":""},{"access":"rw","comment":"If skip TLS verify (true/false)","display":"TLS Skip Verify","filter":"true;false","name":"tlsSkipVerify","type":"bool","value":"true"}]', 3, '', 1725505025649, 'public');
INSERT INTO "ne_config" VALUES (261, 'OMC', 'alarmSMSForward', 'Alarm SMS Forward Interface', 'list', '[{"access":"rw","comment":"Is it enabled forward alarm with SMS interface","display":"Enable","filter":"true;false","name":"enable","type":"bool","value":"true"},{"access":"rw","comment":"Multiple mobile separated by commas","display":"Mobile List","filter":"","name":"mobileList","type":"string","value":""},{"access":"rw","comment":"The SMSC SMPP Address","display":"SMSC Address","filter":"","name":"smscAddr","type":"string","value":""},{"access":"rw","comment":"","display":"System ID","filter":"","name":"systemID","type":"string","value":""},{"access":"rw","comment":"","display":"Password","filter":"","name":"password","type":"string","value":""},{"access":"rw","comment":"","display":"System Type","filter":"","name":"systemType","type":"string","value":""},{"access":"rw","comment":"Short message coding type","display":"Data Coding","filter":"{\"0\":\"GSM7BIT\",\"1\":\"ASCII\",\"2\":\"BINARY8BIT1\",\"3\":\"LATIN1\",\"4\":\"BINARY8BIT2\",\"6\":\"CYRILLIC\",\"7\":\"HEBREW\",\"8\":\"UCS2\"}","name":"dataCoding","type":"enum","value":"GSM7BIT"},{"access":"rw","comment":"It is the source address, the length is between 3 and 20","display":"Service Number","filter":"3~20","name":"serviceNumber","type":"string","value":"OMC"}]', 4, '', 1727664057261, 'public');
INSERT INTO "ne_config" VALUES (262, 'OMC', 'trace', 'NE Signaling Trace', 'list', '[{\"access\":\"read-write\",\"comment\":\"enable or disable NE signaling trace creation\",\"display\":\"Enable\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"enabled\",\"type\":\"bool\",\"value\":\"false\"},{\"access\":\"read-write\",\"comment\":\"NE signaling trace host address\",\"display\":\"Host\",\"filter\":\"0~128\",\"name\":\"host\",\"type\":\"ipv4\",\"value\":\"172.16.5.100\"},{\"access\":\"read-write\",\"comment\":\"NE signaling trace port\",\"display\":\"Port\",\"filter\":\"3000~65530\",\"name\":\"port\",\"type\":\"int\",\"value\":\"33033\"}]', 1, '', 1748570559170, 'public');
-- 更新 OMC 配置 20250715
INSERT INTO "ne_config" VALUES (260, 'OMC', 'trace', 'NE Signaling Trace', 'list', '[{"access":"read-write","comment":"enable or disable NE signaling trace creation","display":"Enable","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enabled","type":"bool","value":"false"},{"access":"read-write","comment":"NE signaling trace host address","display":"Host","filter":"0~128","name":"host","type":"ipv4","value":"172.16.5.100"},{"access":"read-write","comment":"NE signaling trace port","display":"Port","filter":"3000~65530","name":"port","type":"int","value":"33033"}]', 1, '', 1752576919477, 'public');
INSERT INTO "ne_config" VALUES (261, 'OMC', 'notificationEmail', 'Alarm Email Forward Interface', 'list', '[{"access":"rw","comment":"Is it enabled forward alarm with Email interface","display":"Enable","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enable","type":"bool","value":"true"},{"access":"rw","comment":"","display":"Email List","filter":"","name":"list","type":"string","value":""},{"access":"rw","comment":"string, no variable support","display":"Email Title","filter":"","name":"title","type":"string","value":""},{"access":"rw","comment":"Email SMTP server","display":"SMTP Server","filter":"","name":"smtp","type":"string","value":""},{"access":"rw","comment":"","display":"Port","filter":"0~65535","name":"port","type":"int","value":""},{"access":"rw","comment":"","display":"User","filter":"","name":"user","type":"string","value":""},{"access":"rw","comment":"","display":"Password","filter":"","name":"password","type":"string","value":""}]', 3, '', 1752576919810, 'public');
INSERT INTO "ne_config" VALUES (262, 'OMC', 'notificationSMSC', 'Alarm SMS Forward Interface', 'list', '[{"access":"rw","comment":"Is it enabled forward alarm with SMS interface","display":"Enable","filter":"true;false","name":"enable","type":"bool","value":"true"},{"access":"rw","comment":"Multiple mobile separated by commas","display":"Mobile List","filter":"","name":"list","type":"string","value":""},{"access":"rw","comment":"The SMSC SMPP Address","display":"SMSC Address","filter":"","name":"addr","type":"string","value":""},{"access":"rw","comment":"","display":"System ID","filter":"","name":"systemid","type":"string","value":""},{"access":"rw","comment":"","display":"System Type","filter":"","name":"systemtype","type":"string","value":""},{"access":"rw","comment":"","display":"Password","filter":"","name":"password","type":"string","value":""},{"access":"rw","comment":"Short message coding type","display":"Data Coding","filter":"{\"0\":\"GSM7BIT\",\"1\":\"ASCII\",\"2\":\"BINARY8BIT1\",\"3\":\"LATIN1\",\"4\":\"BINARY8BIT2\",\"6\":\"CYRILLIC\",\"7\":\"HEBREW\",\"8\":\"UCS2\"}","name":"coding","type":"enum","value":"GSM7BIT"},{"access":"rw","comment":"It is the source address, the length is between 3 and 20","display":"Service Number","filter":"3~20","name":"servicenumber","type":"string","value":"OMC"}]', 4, '', 1752576919817, 'public');
-- 更新 SMSC 配置 2025521
INSERT INTO "ne_config" VALUES (280, 'SMSC', 'system', 'System', 'list', '[{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"CDR Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"cdrFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"SM Validity\",\"filter\":\"0-2147483647\",\"name\":\"smValidity\",\"type\":\"int\",\"value\":\"259200\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Log Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"logFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Enable or disable resend pending SMS to unattainable local users.\",\"display\":\"Local Polling Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"localPollingFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Enable or disable resend pending SMS to unattainable outbound roaming users.\",\"display\":\"Local Roaming Out Polling Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"localRoamingOutPollingFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Enable or disable resend pending SMS to unattainable inbound roaming users.\",\"display\":\"Visitor Roaming In Polling Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"visitorRoamingInPollingFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Enable or disable resend pending SMS to other unattainable users.\",\"display\":\"Other Polling Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"otherPollingFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Define the maximum port number that the queue of pending SMS may grow to.\",\"display\":\"Polling Number\",\"filter\":\"0-64\",\"name\":\"pollingNumber\",\"type\":\"int\",\"value\":\"64\"},{\"access\":\"read-write\",\"comment\":\"Specify the priority parameter of SM_RP_PRI. true = High; false = Low.\",\"display\":\"Priority Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"priorityFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"Enable or disable TP-Reply-Path parameter in the SMS-DELIVER data unit.\",\"display\":\"TP Reply Path Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"tpReplyPathFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"SMSC Number\",\"filter\":\"0~32\",\"name\":\"smscNumber\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"SMSC Domain\",\"filter\":\"0~16\",\"name\":\"smscDomain\",\"type\":\"string\",\"value\":\"0.0.0.0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"CSFB VoLTE Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"csfbVolteFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Camel Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"camelFlag\",\"type\":\"bool\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"SCF Address\",\"filter\":\"0~16\",\"name\":\"scfAddress\",\"type\":\"string\",\"value\":\"0.0.0.0\"},{\"access\":\"read-write\",\"comment\":\"If add plus then set false\",\"display\":\"MT Id Format Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"mtIdFormatFlag\",\"type\":\"bool\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"enable mcast sms\",\"display\":\"Mcast Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"mcastFlag\",\"type\":\"bool\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Log Level\",\"filter\":\"{\\\"0\\\":\\\"none\\\",\\\"1\\\":\\\"error\\\",\\\"2\\\":\\\"debug\\\"}\",\"name\":\"logLevel\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"The MB sizeof log file\",\"display\":\"Log Size\",\"filter\":\"1-1000\",\"name\":\"logSize\",\"type\":\"int\",\"value\":\"200\"},{\"access\":\"read-write\",\"comment\":\"The number of log file\",\"display\":\"Log Number\",\"filter\":\"1-20\",\"name\":\"logNum\",\"type\":\"int\",\"value\":\"10\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Log Directory\",\"filter\":\"0~128\",\"name\":\"logDir\",\"type\":\"string\",\"value\":\"/var/log/\"}]', 1, '', 1747799255683, 'public');
INSERT INTO "ne_config" VALUES (281, 'SMSC', 'msisdnsegment', 'MSISDN Segment List', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~15\",\"display\":\"Index\",\"filter\":\"0~15\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Start MSISDN\",\"filter\":\"0~32\",\"name\":\"startMSISDN\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"End MSISDN\",\"filter\":\"0~32\",\"name\":\"endMSISDN\",\"type\":\"string\",\"value\":\"0\"}]', 3, 'put', 1747799256006, 'public');
INSERT INTO "ne_config" VALUES (282, 'SMSC', 'smpplink', 'SMPP Link List', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~63\",\"display\":\"Index\",\"filter\":\"0~63\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Link Alias\",\"filter\":\"0~32\",\"name\":\"linkAlias\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Session Type\",\"filter\":\"{\\\"0\\\":\\\"bindTX\\\",\\\"1\\\":\\\"bindRX\\\",\\\"2\\\":\\\"bindTRX\\\"}\",\"name\":\"sessionType\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Service Number\",\"filter\":\"0~32\",\"name\":\"serviceNumber\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Data Coding Scheme\",\"filter\":\"{\\\"0\\\":\\\"smpp7def7\\\",\\\"1\\\":\\\"smpp8dcs4def7\\\",\\\"2\\\":\\\"smpp8dcs0def7\\\",\\\"16\\\":\\\"smpp7def8\\\",\\\"17\\\":\\\"smpp8dcs4def8\\\",\\\"18\\\":\\\"smpp8dcs0def8\\\",\\\"19\\\":\\\"smpp8dcs0Unpack7\\\",\\\"20\\\":\\\"smpp8dcs0ISO8859\\\"}\",\"name\":\"dataCodingScheme\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Platform Num\",\"filter\":\"{\\\"0\\\":\\\"plat0\\\",\\\"1\\\":\\\"plat1\\\",\\\"2\\\":\\\"ignore\\\"}\",\"name\":\"platformNum\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Time To Live\",\"filter\":\"0-2147483647\",\"name\":\"timeToLive\",\"type\":\"int\",\"value\":\"604800\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Manipulation Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"manipulationFlag\",\"type\":\"bool\",\"value\":\"1\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Type of Number\",\"filter\":\"{\\\"0\\\":\\\"unknown\\\",\\\"1\\\":\\\"international\\\",\\\"2\\\":\\\"national\\\",\\\"3\\\":\\\"networkSpecific\\\",\\\"4\\\":\\\"subscriberNumber\\\",\\\"5\\\":\\\"alphanumeric\\\",\\\"6\\\":\\\"abbreviated\\\"}\",\"name\":\"ton\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Number Plan Indicator\",\"filter\":\"{\\\"0\\\":\\\"unknown\\\",\\\"1\\\":\\\"isdn\\\",\\\"3\\\":\\\"data\\\",\\\"4\\\":\\\"telex\\\",\\\"6\\\":\\\"landMobile\\\",\\\"8\\\":\\\"national\\\",\\\"9\\\":\\\"private\\\",\\\"10\\\":\\\"ermes\\\",\\\"14\\\":\\\"internet\\\",\\\"18\\\":\\\"wapClientID\\\"}\",\"name\":\"npi\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Role Type\",\"filter\":\"{\\\"0\\\":\\\"server\\\",\\\"1\\\":\\\"client\\\"}\",\"name\":\"roleType\",\"type\":\"enum\",\"value\":\"0\"}]', 5, 'post,put,delete', 1747799256626, 'public');
INSERT INTO "ne_config" VALUES (283, 'SMSC', 'convprefix', 'Conv Prefix List', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~127\",\"display\":\"Index\",\"filter\":\"0~127\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Prefix\",\"filter\":\"0~16\",\"name\":\"prefix\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Delete Length\",\"filter\":\"0-16\",\"name\":\"deleteLength\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Add Length\",\"filter\":\"0-16\",\"name\":\"addLength\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Add Digits\",\"filter\":\"0~16\",\"name\":\"addDigits\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Number Length\",\"filter\":\"0-32\",\"name\":\"numberLength\",\"type\":\"int\",\"value\":\"0\"}]', 7, 'post,put,delete', 1747799256855, 'public');
INSERT INTO "ne_config" VALUES (284, 'SMSC', 'smppparam', 'SMPP Param List', 'array', '[{\"access\":\"read-only\",\"comment\":\"0~31\",\"display\":\"Index\",\"filter\":\"0~31\",\"name\":\"index\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Link Alias\",\"filter\":\"0-8\",\"name\":\"linkAlias\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Link Type\",\"filter\":\"{\\\"0\\\":\\\"udp\\\",\\\"1\\\":\\\"tcp\\\"}\",\"name\":\"linkType\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Server Type\",\"filter\":\"{\\\"0\\\":\\\"client\\\",\\\"1\\\":\\\"server\\\"}\",\"name\":\"serverType\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Session Type\",\"filter\":\"{\\\"0\\\":\\\"bindTX\\\",\\\"1\\\":\\\"bindRX\\\",\\\"2\\\":\\\"bindTRX\\\"}\",\"name\":\"sessionType\",\"type\":\"enum\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"System ID\",\"filter\":\"0-16\",\"name\":\"systemID\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Password\",\"filter\":\"0-8\",\"name\":\"password\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"System Type\",\"filter\":\"0-12\",\"name\":\"systemType\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Local GTT\",\"filter\":\"0-16\",\"name\":\"localGTT\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Remote GTT\",\"filter\":\"0-16\",\"name\":\"remoteGTT\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Local IP\",\"filter\":\"0-32\",\"name\":\"localIP\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Remote IP\",\"filter\":\"0-32\",\"name\":\"remoteIP\",\"type\":\"string\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Session Init Timer\",\"filter\":\"0-65535\",\"name\":\"sessionInitTimer\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Enquire Link Timer\",\"filter\":\"0-65535\",\"name\":\"enquireLinkTimer\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Inactivity Timer\",\"filter\":\"0-65535\",\"name\":\"inactivityTimer\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Response Timer\",\"filter\":\"0-65535\",\"name\":\"responseTimer\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Local SSN\",\"filter\":\"0-255\",\"name\":\"localSSN\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Remote SSN\",\"filter\":\"0-255\",\"name\":\"remoteSSN\",\"type\":\"int\",\"value\":\"0\"},{\"access\":\"read-write\",\"comment\":\"\",\"display\":\"Enable Flag\",\"filter\":\"{\\\"0\\\":\\\"false\\\",\\\"1\\\":\\\"true\\\"}\",\"name\":\"enable\",\"type\":\"bool\",\"value\":\"1\"}]', 9, 'put', 1747799257026, 'public');
INSERT INTO "ne_config" VALUES (280, 'SMSC', 'system', 'System', 'list', '[{"access":"read-write","comment":"","display":"CDR Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"cdrFlag","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"SM Validity","filter":"0-2147483647","name":"smValidity","type":"int","value":"259200"},{"access":"read-write","comment":"","display":"Log Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"logFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Enable or disable resend pending SMS to unattainable local users.","display":"Local Polling Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"localPollingFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Enable or disable resend pending SMS to unattainable outbound roaming users.","display":"Local Roaming Out Polling Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"localRoamingOutPollingFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Enable or disable resend pending SMS to unattainable inbound roaming users.","display":"Visitor Roaming In Polling Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"visitorRoamingInPollingFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Enable or disable resend pending SMS to other unattainable users.","display":"Other Polling Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"otherPollingFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Define the maximum port number that the queue of pending SMS may grow to.","display":"Polling Number","filter":"0-64","name":"pollingNumber","type":"int","value":"64"},{"access":"read-write","comment":"Specify the priority parameter of SM_RP_PRI. true = High; false = Low.","display":"Priority Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"priorityFlag","type":"bool","value":"1"},{"access":"read-write","comment":"Enable or disable TP-Reply-Path parameter in the SMS-DELIVER data unit.","display":"TP Reply Path Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"tpReplyPathFlag","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"SMSC Number","filter":"0~32","name":"smscNumber","type":"string","value":"0"},{"access":"read-write","comment":"","display":"SMSC Domain","filter":"0~16","name":"smscDomain","type":"string","value":"0.0.0.0"},{"access":"read-write","comment":"","display":"CSFB VoLTE Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"csfbVolteFlag","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"Camel Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"camelFlag","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"SCF Address","filter":"0~16","name":"scfAddress","type":"string","value":"0.0.0.0"},{"access":"read-write","comment":"If add plus then set false","display":"MT Id Format Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"mtIdFormatFlag","type":"bool","value":"0"},{"access":"read-write","comment":"enable mcast sms","display":"Mcast Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"mcastFlag","type":"bool","value":"0"},{"access":"read-write","comment":"","display":"Log Level","filter":"{\"0\":\"none\",\"1\":\"error\",\"2\":\"debug\"}","name":"logLevel","type":"enum","value":"0"},{"access":"read-write","comment":"The MB sizeof log file","display":"Log Size","filter":"1-1000","name":"logSize","type":"int","value":"200"},{"access":"read-write","comment":"The number of log file","display":"Log Number","filter":"1-20","name":"logNum","type":"int","value":"10"},{"access":"read-write","comment":"","display":"Log Directory","filter":"0~128","name":"logDir","type":"string","value":"/var/log/"}]', 1, '', 1751438862010, 'public');
INSERT INTO "ne_config" VALUES (281, 'SMSC', 'msisdnsegment', 'MSISDN Segment List', 'array', '[{"access":"read-only","comment":"0~15","display":"Index","filter":"0~15","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Start MSISDN","filter":"0~32","name":"startMSISDN","type":"string","value":"0"},{"access":"read-write","comment":"","display":"End MSISDN","filter":"0~32","name":"endMSISDN","type":"string","value":"0"}]', 3, 'put', 1751438862028, 'public');
INSERT INTO "ne_config" VALUES (282, 'SMSC', 'smpplink', 'SMPP Link List', 'array', '[{"access":"read-only","comment":"0~63","display":"Index","filter":"0~63","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Link Alias","filter":"0~32","name":"linkAlias","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Session Type","filter":"{\"0\":\"bindTX\",\"1\":\"bindRX\",\"2\":\"bindTRX\"}","name":"sessionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Service Number","filter":"0~32","name":"serviceNumber","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Data Coding Scheme","filter":"{\"0\":\"smpp7def7\",\"1\":\"smpp8dcs4def7\",\"2\":\"smpp8dcs0def7\",\"16\":\"smpp7def8\",\"17\":\"smpp8dcs4def8\",\"18\":\"smpp8dcs0def8\",\"19\":\"smpp8dcs0Unpack7\",\"20\":\"smpp8dcs0ISO8859\"}","name":"dataCodingScheme","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Platform Num","filter":"{\"0\":\"plat0\",\"1\":\"plat1\",\"2\":\"ignore\"}","name":"platformNum","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Time To Live","filter":"0-2147483647","name":"timeToLive","type":"int","value":"604800"},{"access":"read-write","comment":"","display":"Manipulation Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"manipulationFlag","type":"bool","value":"1"},{"access":"read-write","comment":"","display":"Type of Number","filter":"{\"0\":\"unknown\",\"1\":\"international\",\"2\":\"national\",\"3\":\"networkSpecific\",\"4\":\"subscriberNumber\",\"5\":\"alphanumeric\",\"6\":\"abbreviated\"}","name":"ton","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Number Plan Indicator","filter":"{\"0\":\"unknown\",\"1\":\"isdn\",\"3\":\"data\",\"4\":\"telex\",\"6\":\"landMobile\",\"8\":\"national\",\"9\":\"private\",\"10\":\"ermes\",\"14\":\"internet\",\"18\":\"wapClientID\"}","name":"npi","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Role Type","filter":"{\"0\":\"server\",\"1\":\"client\"}","name":"roleType","type":"enum","value":"0"}]', 5, 'post,put,delete', 1751438862033, 'public');
INSERT INTO "ne_config" VALUES (283, 'SMSC', 'convprefix', 'Conv Prefix List', 'array', '[{"access":"read-only","comment":"0~127","display":"Index","filter":"0~127","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Prefix","filter":"0~16","name":"prefix","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Delete Length","filter":"0-16","name":"deleteLength","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Add Length","filter":"0-16","name":"addLength","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Add Digits","filter":"0~16","name":"addDigits","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Number Length","filter":"0-32","name":"numberLength","type":"int","value":"0"}]', 7, 'post,put,delete', 1751438862037, 'public');
INSERT INTO "ne_config" VALUES (284, 'SMSC', 'smppparam', 'SMPP Param List', 'array', '[{"access":"read-only","comment":"0~31","display":"Index","filter":"0~31","name":"index","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Link Alias","filter":"0-8","name":"linkAlias","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Link Type","filter":"{\"0\":\"udp\",\"1\":\"tcp\"}","name":"linkType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Server Type","filter":"{\"0\":\"client\",\"1\":\"server\"}","name":"serverType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"Session Type","filter":"{\"0\":\"bindTX\",\"1\":\"bindRX\",\"2\":\"bindTRX\"}","name":"sessionType","type":"enum","value":"0"},{"access":"read-write","comment":"","display":"System ID","filter":"0-16","name":"systemID","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Password","filter":"0-8","name":"password","type":"string","value":"0"},{"access":"read-write","comment":"","display":"System Type","filter":"0-12","name":"systemType","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Local GTT","filter":"0-16","name":"localGTT","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Remote GTT","filter":"0-16","name":"remoteGTT","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Local IP","filter":"0-32","name":"localIP","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Remote IP","filter":"0-32","name":"remoteIP","type":"string","value":"0"},{"access":"read-write","comment":"","display":"Session Init Timer","filter":"0-65535","name":"sessionInitTimer","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Enquire Link Timer","filter":"0-65535","name":"enquireLinkTimer","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Inactivity Timer","filter":"0-65535","name":"inactivityTimer","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Response Timer","filter":"0-65535","name":"responseTimer","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Local SSN","filter":"0-255","name":"localSSN","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Remote SSN","filter":"0-255","name":"remoteSSN","type":"int","value":"0"},{"access":"read-write","comment":"","display":"Enable Flag","filter":"{\"0\":\"false\",\"1\":\"true\"}","name":"enable","type":"bool","value":"1"}]', 9, 'put', 1751438862041, 'public');
-- 更新 SGWC 配置 20241219
INSERT INTO "ne_config" VALUES (300, 'SGWC', 'sgwcSystem', 'System Config', 'list', '[{"access":"read-write","comment":"IPv4/IPv6/IPv4v6","display":"Local S11 IP Type","filter":"^(IPv4|IPv6|IPv4v6)$","name":"s11IpType","type":"string","value":""},{"access":"read-write","comment":"IPv4 Format","display":"Local S11 IPv4","filter":"","name":"s11Ipv4","type":"string","value":"172.16.5.80"},{"access":"read-write","comment":"IPv6 Format","display":"Local S11 IPv6","filter":"","name":"s11Ipv6","type":"string","value":""},{"access":"read-write","comment":"IPv4/IPv6/IPv4v6","display":"Local S5/S8 IP Type","filter":"^(IPv4|IPv6|IPv4v6)$","name":"s58IpType","type":"string","value":""},{"access":"read-write","comment":"IPv4 Format","display":"Local S5/S8 IPv4","filter":"","name":"s58Ipv4","type":"string","value":"172.16.5.81"},{"access":"read-write","comment":"IPv6 Format","display":"Local S5/S8 IPv6","filter":"","name":"s58Ipv6","type":"string","value":""},{"access":"read-write","comment":"IPv4/IPv6/IPv4v6","display":"Local Sx IP Type","filter":"^(IPv4|IPv6|IPv4v6)$","name":"sxIpType","type":"string","value":""},{"access":"read-write","comment":"IPv4 Format","display":"Local Sx IPv4","filter":"","name":"sxIpv4","type":"string","value":"172.16.5.81"},{"access":"read-write","comment":"IPv6 Format","display":"Local Sx IPv6","filter":"","name":"sxIpv6","type":"string","value":""}]', 1, '', 1734512800790, 'public');

View File

@@ -15,22 +15,22 @@ CREATE TABLE "alarm" (
"alarm_code" integer(11),
"event_time" integer(20),
"alarm_type" text(64),
"orig_severity" text(10),
"perceived_severity" text(10),
"orig_severity" text(64),
"perceived_severity" text(64),
"object_uid" text(64),
"object_name" text(64),
"object_type" text(20),
"location_info" text(2048),
"alarm_status" text(10),
"alarm_status" text(64),
"specific_problem" text(255),
"specific_problem_id" text(100),
"add_info" text(2048),
"ack_state" integer(11),
"ack_state" text(64),
"ack_time" integer(20),
"ack_user" text(16),
"clear_type" integer(11),
"ack_user" text(64),
"clear_type" text(64),
"clear_time" integer(20),
"clear_user" text(16),
"clear_user" text(64),
"timestamp" integer(20),
PRIMARY KEY ("id")
);
@@ -44,12 +44,11 @@ ON "alarm" (
"orig_severity" ASC,
"event_time" ASC
);
CREATE UNIQUE INDEX "uk_uni_aid_ne_aseq"
CREATE UNIQUE INDEX "uk_uni_ne_aid"
ON "alarm" (
"ne_type" ASC,
"ne_id" ASC,
"alarm_id" ASC,
"alarm_seq" ASC
"alarm_id" ASC
);
-- ----------------------------

View File

@@ -15,13 +15,13 @@ CREATE TABLE "alarm_event" (
"object_name" text(64),
"object_type" text(20),
"location_info" text(2048),
"alarm_status" text(10),
"alarm_status" text(64),
"specific_problem" text(255),
"specific_problem_id" text(100),
"add_info" text(2048),
"clear_type" integer(11),
"clear_type" text(64),
"clear_time" integer(20),
"clear_user" text(16),
"clear_user" text(64),
"timestamp" integer(20),
PRIMARY KEY ("id")
);
@@ -34,12 +34,11 @@ ON "alarm_event" (
"alarm_status" ASC,
"event_time" ASC
);
CREATE UNIQUE INDEX "uk_ti_aid_aseq"
CREATE UNIQUE INDEX "uk_ti_aid"
ON "alarm_event" (
"ne_type" ASC,
"ne_id" ASC,
"alarm_id" ASC,
"alarm_seq" ASC
"alarm_id" ASC
);
-- ----------------------------

View File

@@ -10,8 +10,8 @@ CREATE TABLE "alarm_forward_log" (
"alarm_id" text(32),
"alarm_code" integer(11),
"alarm_title" text(255),
"alarm_status" text(10),
"alarm_type" text(10),
"alarm_status" text(64),
"alarm_type" text(64),
"orig_severity" text(10),
"event_time" integer(20),
"created_at" integer(20),

View File

@@ -10,9 +10,9 @@ CREATE TABLE "alarm_log" (
"alarm_id" text(32),
"alarm_code" integer(11),
"alarm_title" text(255),
"alarm_status" text(10),
"alarm_type" text(10),
"orig_severity" text(10),
"alarm_status" text(64),
"alarm_type" text(64),
"orig_severity" text(64),
"event_time" integer(20),
"created_at" integer(20),
PRIMARY KEY ("id")

View File

@@ -0,0 +1,21 @@
-- ----------------------------
-- Table structure for cbc_message
-- ----------------------------
-- ----------------------------
-- Table structure for cbc_message
-- ----------------------------
DROP TABLE IF EXISTS `cbc_message`;
CREATE TABLE `cbc_message` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`ne_type` TEXT,
`ne_id` TEXT,
`message_json` TEXT,
`status` TEXT DEFAULT 'INACTIVE' CHECK(`status` IN ('ACTIVE', 'INACTIVE')),
`detail` TEXT,
`created_at` INTEGER DEFAULT (strftime('%s', 'now') * 1000000),
`updated_at` INTEGER
);
-- Create indexes
CREATE INDEX `idx_id` ON `cbc_message`(`id`);
CREATE INDEX `idx_ne_time` ON `cbc_message`(`ne_type`, `ne_id`, `created_at`);

View File

@@ -32,20 +32,25 @@ INSERT INTO "kpi_c_title" VALUES (1, 'AMF', 'AMF.C.01', 'Regstration Success Rat
INSERT INTO "kpi_c_title" VALUES (2, 'AMF', 'AMF.C.02', 'Paging Success Rate', '((''AMF.15''+''AMF.16'')/''AMF.17'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (3, 'AMF', 'AMF.C.03', 'Service Request Success Rate', '(1-''AMF.18''/''AMF.19'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (4, 'AMF', 'AMF.C.04', '5G Register Subscriber', '''AMF.01''', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (5, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '''SMF.01''', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (6, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(''SMF.02''/''SMF.03'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (7, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(''SMF.04''/''SMF.05'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (8, 'MME', 'MME.C.01', 'Attach Success Rate ', '(''MME.A.02''/''MME.A.01'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (9, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate ', '(''UPF.01''/''UPF.02'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (10, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(''UPF.03'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (11, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(''UPF.06'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (12, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate ', '(''UDM.03''/''UDM.02'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (13, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate ', '(''UDM.04''/''UDM.05'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (14, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(''SCSCF.03''/''SCSCF.04'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (15, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(''SCSCF.05''/''SCSCF.06'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (16, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(''SCSCF.07''/''SCSCF.08'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (17, 'IMS', 'IMS.C.04', 'Service_Success_Rate ', '((''SCSCF.05''+''SCSCF.07'')/(''SCSCF.06''+''SCSCF.08''))*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (18, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate ', '(''SMF.13''/''SMF.14'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (19, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((''SMF.09''+''SMF.11'')/(''SMF.10''+''SMF.12'') )*100', '%', '', '2', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (22, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(''UPF.05'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (23, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(''UPF.04'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (20, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '''SMF.01''', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (21, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(''SMF.02''/''SMF.03'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (22, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(''SMF.04''/''SMF.05'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (23, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate', '(''SMF.13''/''SMF.14'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (24, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((''SMF.09''+''SMF.11'')/(''SMF.10''+''SMF.12'') )*100', '%', '', '0', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (40, 'MME', 'MME.C.01', 'Combine Attach Success Rate', '(''MME.A.05''/''MME.A.04'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (41, 'MME', 'MME.C.02', 'Attach Success Rate', '(''MME.A.02''/''MME.A.01'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (60, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate', '(''UPF.01''/''UPF.02'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (61, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(''UPF.03'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (62, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(''UPF.05'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (63, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(''UPF.06'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (64, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(''UPF.04'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (65, 'UPF', 'UPF.C.08', 'Uplink Packet Loss Rate', '(((''UPF.05'')*8/5/1000/1000) - ((''UPF.03'')*8/5/1000/1000)) / ((''UPF.05'')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (66, 'UPF', 'UPF.C.09', 'Downlink Packet Loss Rate', '(((''UPF.04'')*8/5/1000/1000) - ((''UPF.06'')*8/5/1000/1000)) / ((''UPF.04'')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (80, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate', '(''UDM.03''/''UDM.02'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (81, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate', '(''UDM.04''/''UDM.05'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (90, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(''SCSCF.03''/''SCSCF.04'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (91, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(''SCSCF.05''/''SCSCF.06'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (92, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(''SCSCF.07''/''SCSCF.08'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (93, 'IMS', 'IMS.C.04', 'Service_Success_Rate', '((''SCSCF.05''+''SCSCF.07'')/(''SCSCF.06''+''SCSCF.08''))*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (94, 'IMS', 'IMS.C.05', 'IDDOutgoing_Success_Rate', '(''IDD.03''/''IDD.01'')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO "kpi_c_title" VALUES (95, 'IMS', 'IMS.C.06', 'IDDIncoming_Success_Rate', '(''IDD.06''/''IDD.04'')*100', '%', '', '1', 'admin', 1739362260083);

View File

@@ -60,21 +60,21 @@ INSERT INTO "sys_dict_data" VALUES (34, 'sys_role_datascope', 'dictData.datascop
INSERT INTO "sys_dict_data" VALUES (35, 'sys_role_datascope', 'dictData.datascope.dept', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (36, 'sys_role_datascope', 'dictData.datascope.deptAndChid', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (37, 'sys_role_datascope', 'dictData.datascope.self', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', '2', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', 'CommunicationAlarm', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', 'EquipmentAlarm', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', 'ProcessingFailure', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', 'EnvironmentalAlarm', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', 'QualityOfServiceAlarm', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', 'NotClear', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', 'AutoClear', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', 'ManualClear', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', 'NotAck', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', 'Ack', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', 'Critical', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', 'Major', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', 'Minor', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', 'Warning', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', 'Event', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (53, 'index_status', 'dictType.index_status.normal', 'normal', 1, '#91cc75', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (54, 'index_status', 'dictType.index_status.abnormal', 'abnormal', 2, '#ee6666', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (55, 'cdr_sip_code', 'dictData.cdr_sip_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -91,9 +91,9 @@ INSERT INTO "sys_dict_data" VALUES (65, 'ue_auth_code', 'dictData.ue_auth_code.0
INSERT INTO "sys_dict_data" VALUES (66, 'ue_auth_code', 'dictData.ue_auth_code.005', '005', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (67, 'ue_auth_code', 'dictData.ue_auth_code.006', '006', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (68, 'ue_auth_code', 'dictData.ue_auth_code.007', '007', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'auth-result', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'cm-state', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'Auth', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'Detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'CM', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (72, 'ue_event_cm_state', 'dictData.ue_event_cm_state.connected', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (73, 'ue_event_cm_state', 'dictData.ue_event_cm_state.idle', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (74, 'ue_event_cm_state', 'dictData.ue_event_cm_state.inactive', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -190,4 +190,6 @@ INSERT INTO "sys_dict_data" VALUES (164, 'cdr_sip_code_cause', 'dictData.cdr_sip
INSERT INTO "sys_dict_data" VALUES (165, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (166, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (167, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (168, 'trace_interfaces', 'dictData.trace_interfaces.14', 'N14', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO "sys_dict_data" VALUES (169, 'trace_interfaces', 'dictData.trace_interfaces.5', 'N5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');

View File

@@ -611,7 +611,7 @@ INSERT INTO "sys_i18n" VALUES (541, 'dictData.cdr_sip_code.404', '404 找不到'
INSERT INTO "sys_i18n" VALUES (542, 'dictData.cdr_sip_code.487', '487 请求已终止', '487 Request Terminated');
INSERT INTO "sys_i18n" VALUES (543, 'dictData.cdr_sip_code.503', '503 服务不可用', '503 Service Unavailable');
INSERT INTO "sys_i18n" VALUES (544, 'dictData.cdr_sip_code.504', '504 服务器超时', '504 Server Timeout');
INSERT INTO "sys_i18n" VALUES (545, 'dictData.cdr_sip_code.603', '603 下降', '603 Decline');
INSERT INTO "sys_i18n" VALUES (545, 'dictData.cdr_sip_code.603', '603 拒绝', '603 Decline');
INSERT INTO "sys_i18n" VALUES (546, 'dictData.cdr_sip_code.606', '606 不可接受', '606 Not Acceptable');
INSERT INTO "sys_i18n" VALUES (547, 'cache.name.token', '用户令牌', 'User Token');
INSERT INTO "sys_i18n" VALUES (548, 'cache.name.sys_config', '参数管理', 'Parameters Management');
@@ -833,13 +833,13 @@ INSERT INTO "sys_i18n" VALUES (729, 'dictData.cdr_sip_code_cause.200', '正常
INSERT INTO "sys_i18n" VALUES (730, 'dictData.cdr_sip_code_cause.202', '申请已被接受处理,但尚未完成 ', 'The request has been accepted for processing, but it hasn it completed yet');
INSERT INTO "sys_i18n" VALUES (731, 'dictData.cdr_sip_code_cause.302', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO "sys_i18n" VALUES (732, 'dictData.cdr_sip_code_cause.402', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO "sys_i18n" VALUES (733, 'dictData.cdr_sip_code_cause.403', '绝 MO 用户', 'MO User Rejected');
INSERT INTO "sys_i18n" VALUES (734, 'dictData.cdr_sip_code_cause.404', 'MT 用户离线', 'MT User Offline');
INSERT INTO "sys_i18n" VALUES (733, 'dictData.cdr_sip_code_cause.403', '接主叫用户', 'MO User Rejected');
INSERT INTO "sys_i18n" VALUES (734, 'dictData.cdr_sip_code_cause.404', '被叫用户离线', 'MT User Offline');
INSERT INTO "sys_i18n" VALUES (735, 'dictData.cdr_sip_code_cause.480', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO "sys_i18n" VALUES (736, 'dictData.cdr_sip_code_cause.481', '电话无法拨出', 'Call cannot be dialed');
INSERT INTO "sys_i18n" VALUES (737, 'dictData.cdr_sip_code_cause.482', '闪断', 'Flashback');
INSERT INTO "sys_i18n" VALUES (738, 'dictData.cdr_sip_code_cause.486', 'MT 用户忙', 'MT User Busy');
INSERT INTO "sys_i18n" VALUES (739, 'dictData.cdr_sip_code_cause.487', 'MO 用户断线', 'MO User Disconnected');
INSERT INTO "sys_i18n" VALUES (738, 'dictData.cdr_sip_code_cause.486', '被叫用户忙', 'MT User Busy');
INSERT INTO "sys_i18n" VALUES (739, 'dictData.cdr_sip_code_cause.487', '主叫挂断', 'MO User Disconnected');
INSERT INTO "sys_i18n" VALUES (740, 'dictData.cdr_sip_code_cause.408', '服务器等待响应的时间过长', 'The server waits too long for a response');
INSERT INTO "sys_i18n" VALUES (741, 'dictData.cdr_sip_code_cause.488', '媒体详细信息与服务器支持的内容不匹配', 'Media details didnt match what the server supports');
INSERT INTO "sys_i18n" VALUES (742, 'dictData.cdr_sip_code_cause.489', '因其他原因呼叫失败', 'Call failure for other reason');
@@ -847,7 +847,7 @@ INSERT INTO "sys_i18n" VALUES (743, 'dictData.cdr_sip_code_cause.500', '服务
INSERT INTO "sys_i18n" VALUES (744, 'dictData.cdr_sip_code_cause.503', '服务器超载或因维护而停机,无法处理呼叫', 'The server is overloaded or down for maintenance and can it process the call');
INSERT INTO "sys_i18n" VALUES (745, 'dictData.cdr_sip_code_cause.504', '服务器尝试以您的名义与另一台服务器通信,但未及时收到回复,并超时了', 'The server tried to talk to another server on your behalf, didnt get a reply in time, and timed out');
INSERT INTO "sys_i18n" VALUES (746, 'dictData.cdr_sip_code_cause.580', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO "sys_i18n" VALUES (747, 'dictData.cdr_sip_code_cause.603', 'MT 明确拒绝通话', 'MT explicitly rejected the call');
INSERT INTO "sys_i18n" VALUES (747, 'dictData.cdr_sip_code_cause.603', '被叫拒接', 'MT explicitly rejected the call');
INSERT INTO "sys_i18n" VALUES (748, 'dictData.cdr_sip_code_cause.606', '呼叫已到达用户设备,但会话设置的某些部分不可接受', 'The call reached the users device, but some parts of the session setup weren it acceptable');
INSERT INTO "sys_i18n" VALUES (749, 'dictType.cdr_sip_code_cause', 'IMS-Voice-SIP响应代码类别类型原因', 'IMS-Voice-SIP Response Code Category Type Cause');
INSERT INTO "sys_i18n" VALUES (750, 'job.backup_export_log', '备份-日志数据定期导出', 'Backup-Periodic export of Log Data');
@@ -928,3 +928,26 @@ Warning=4
AddInfo: Additional information on alarms
dayLt: Days less than, default 30 days');
INSERT INTO "sys_i18n" VALUES (756, 'dictData.trace_interfaces.14', 'N14', 'N14');
INSERT INTO "sys_i18n" VALUES (757, 'dictData.trace_interfaces.5', 'N5', 'N5');
INSERT INTO "sys_i18n" VALUES (758, "alarm.export.alarmCode", "告警编码", "Alarm Code");
INSERT INTO "sys_i18n" VALUES (759, "config.sys.user.fristPasswdChangeRemark", "关闭改为false 开启改为true, 建议同时设置密码有效期", "Off to false On to true, it is recommended to set the password expiration date at the same time.");
INSERT INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent');
INSERT INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information');
INSERT INTO `sys_i18n` VALUES (2002, 'menu.psap.agent.callback', '回拨管理', 'Callback Management');
INSERT INTO `sys_i18n` VALUES (2003, 'callback.status.NEW', '新建', 'New');
INSERT INTO `sys_i18n` VALUES (2004, 'callback.status.IN_PROGRESS', '处理中', 'In Progress');
INSERT INTO `sys_i18n` VALUES (2005, 'callback.status.NO_ANSWER_1', '未应答1', 'No Answer 1');
INSERT INTO `sys_i18n` VALUES (2006, 'callback.status.NO_ANSWER_2', '未应答2', 'No Answer 2');
INSERT INTO `sys_i18n` VALUES (2007, 'callback.status.TIMEOUT', '超时', 'Timeout');
INSERT INTO `sys_i18n` VALUES (2008, 'callback.status.PENDING', '挂起', 'Pending');
INSERT INTO `sys_i18n` VALUES (2009, 'callback.status.CLOSED', '关闭', 'Closed');
INSERT INTO `sys_i18n` VALUES (2010, 'job.export.cdr.mf', '定期导出MF话单', 'Periodic Export of MF Call Records');
INSERT INTO `sys_i18n` VALUES (2011, 'job.psap.ticket.monitor', '回拨工单监控', 'Callback Ticket Monitoring');
INSERT INTO `sys_i18n` VALUES (2012, 'menu.omc.cdr', '话单', 'Call Records');
INSERT INTO `sys_i18n` VALUES (2013, 'menu.omc.cdr.mf', '紧急呼叫话单', 'Emergency Call Records');
INSERT INTO `sys_i18n` VALUES (2014, 'menu.omc.cdr.crbt', '彩铃话单', 'Color Ring Back Tone Records');
INSERT INTO `sys_i18n` VALUES (2015, 'menu.omc.cdr.mms', '彩信话单', 'Multimedia Message Service Records');
INSERT INTO `sys_i18n` VALUES (2016, 'menu.ue.cbc.cbe', '广播', 'Broadcast');
INSERT INTO `sys_i18n` VALUES (2017, 'log.operate.title.cbcMessage', '广播事件', 'Broadcast Event');

View File

@@ -41,9 +41,9 @@ INSERT INTO "sys_job" VALUES (10, 'job.delete_ne_config_backup', 'SYSTEM', 'dele
INSERT INTO "sys_job" VALUES (11, 'job.delete_alarm_record', 'SYSTEM', 'delete_alarm_record', '{"storeDays":7}', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_alarm_record_remark');
INSERT INTO "sys_job" VALUES (12, 'job.delete_kpi_record', 'SYSTEM', 'delete_kpi_record', '{"storeDays":7,"neList":["IMS","AMF","UDM","UPF","MME","SMSC","SMF","MME"]}', '0 20 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_kpi_record_remark');
INSERT INTO "sys_job" VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{"alarmTitle":"NE State Check Alarm","alarmType":"2","origSeverity":"2","specificProblem":"alarm cause: the system state of target NE has not been received","specificProblemId":"AC10000","addInfo":""}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
INSERT INTO "sys_job" VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{"alarmTitle":"NE State Check Alarm CPU/Menory/Disk","alarmType":"2","origSeverity":"2","specificProblem":"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold","specificProblemId":"AC10100","addInfo":"","cpuUseGt":70,"memUseGt":70,"diskUseGt":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
INSERT INTO "sys_job" VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{"alarmTitle":"NE State Check Alarm License","alarmType":"2","origSeverity":"2","specificProblem":"Alarm Cause: License received from target NE is about to expire","specificProblemId":"AC10200","addInfo":"","dayLt":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
INSERT INTO "sys_job" VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{"alarmTitle":"NE State Check Alarm","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"alarm cause: the system state of target NE has not been received","specificProblemId":"AC10000","addInfo":""}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
INSERT INTO "sys_job" VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{"alarmTitle":"NE State Check Alarm CPU/Menory/Disk","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold","specificProblemId":"AC10100","addInfo":"","cpuUseGt":70,"memUseGt":70,"diskUseGt":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
INSERT INTO "sys_job" VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{"alarmTitle":"NE State Check Alarm License","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"Alarm Cause: License received from target NE is about to expire","specificProblemId":"AC10200","addInfo":"","dayLt":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
INSERT INTO "sys_job" VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{"backupPath":"/udm_data/auth","storeDays":30},{"backupPath":"/udm_data/sub","storeDays":30},{"backupPath":"/udm_data/voip","storeDays":30},{"backupPath":"/udm_data/volte","storeDays":30},{"backupPath":"/cdr/ims_cdr_event","storeDays":30},{"backupPath":"/cdr/smsc_cdr_event","storeDays":30},{"backupPath":"/cdr/smf_cdr_event","storeDays":30},{"backupPath":"/cdr/sgwc_cdr_event","storeDays":30},{"backupPath":"/log/sys_log_operate","storeDays":30,"storeNum":7},{"backupPath":"/log/sys_log_login","storeDays":30,"storeNum":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
INSERT INTO "sys_job" VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{"dataType":["auth","sub","voip","volte"],"fileType":"txt"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');

View File

@@ -146,8 +146,8 @@ INSERT INTO "sys_menu" VALUES (2106, 'menu.perf.kpiKeyTarget', 2099, 12, 'kpiKey
INSERT INTO "sys_menu" VALUES (2107, 'menu.mml', 0, 8, 'mmlManage', '', '1', '0', 'D', '1', '1', '', 'icon-zhizuoliucheng', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mmlRemark');
INSERT INTO "sys_menu" VALUES (2108, 'menu.mml.ne', 2107, 1, 'neOperate', 'mmlManage/neOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:neOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.neRemark');
INSERT INTO "sys_menu" VALUES (2109, 'menu.mml.udm', 2107, 2, 'udmOperate', 'mmlManage/udmOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:udmOperate:index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.udmRemark');
INSERT INTO "sys_menu" VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '1', '1', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.setRemark');
INSERT INTO "sys_menu" VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.omcRemark');
INSERT INTO "sys_menu" VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '0', '0', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.setRemark');
INSERT INTO "sys_menu" VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '0', '0', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.omcRemark');
INSERT INTO "sys_menu" VALUES (2112, 'menu.dashboard.sgwcCDR', 2140, 12, 'sgwcCDR', 'dashboard/sgwcCDR/index', '1', '0', 'M', '1', '1', 'sgwc#cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2113, 'menu.security', 0, 14, 'security', '', '1', '0', 'D', '1', '1', '', 'icon-suofang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.securityRemark');
INSERT INTO "sys_menu" VALUES (2114, 'menu.system.systemSet', 1, 60, 'setting', 'system/setting/index', '1', '1', 'M', '1', '1', 'system:setting:index', 'icon-piliang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemSetRemark');
@@ -155,6 +155,8 @@ INSERT INTO "sys_menu" VALUES (2115, 'menu.system.systemResource', 1, 6, 'monito
INSERT INTO "sys_menu" VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:smsc:content', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2118, 'menu.dashboard.smfCDRByIMSI', 2140, 7, 'smfCDRByIMSI', 'dashboard/smfCDRByIMSI/index', '1', '0', 'M', '1', '1', 'smf#cdr:index', 'icon-gerenzhanghu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2119, 'Alarm Overview', 2129, 6, 'alarm-overview', 'faultManage/alarm-overview/index', '1', '1', 'M', '1', '1', 'faultManage:active-overview:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2120, 'Dashboard2', 2131, 8, 'dashboard2', 'dashboard/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview2:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2121, 'menu.system.user.editRole', 100, 8, '', '', '1', '1', 'B', '1', '1', 'system:user:editRole', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2122, 'menu.system.setting.i18n', 2114, 1, '', '', '1', '1', 'B', '1', '1', 'system:setting:i18n', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.setting.i18nRemark');
INSERT INTO "sys_menu" VALUES (2123, 'menu.log.neFile', 2089, 9, 'neFile', 'ne/neFile/index', '1', '0', 'M', '1', '1', 'ne:neFile:index', 'icon-tubiaohuizhi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
@@ -170,6 +172,7 @@ INSERT INTO "sys_menu" VALUES (2135, 'menu.ne.neHost', 4, 15, 'neHost', 'ne/neHo
INSERT INTO "sys_menu" VALUES (2136, 'menu.ne.neHostCommand', 4, 18, 'neHostCommand', 'ne/neHostCommand/index', '1', '0', 'M', '1', '0', 'ne:neHostCommand:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2137, 'menu.ne.neInfo', 4, 10, 'neInfo', 'ne/neInfo/index', '1', '0', 'M', '1', '1', 'ne:neInfo:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amfUE', 'dashboard/amfUE/index', '1', '0', 'M', '1', '1', 'amf#ue:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2139, 'Key Performance Dashboard', 2099, 8, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2140, 'menu.monitor.cdr', 2089, 10, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2141, 'menu.monitor.event', 2089, 20, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2142, 'menu.ne.neQuickSetup', 4, 40, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
@@ -200,3 +203,5 @@ INSERT INTO "sys_menu" VALUES (2166, 'menu.dashboard.overview.smfUeNum', 2132, 4
INSERT INTO "sys_menu" VALUES (2167, 'menu.dashboard.overview.imsUeNum', 2132, 2, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:imsUeNum', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2168, 'menu.dashboard.overview.gnbBase', 2132, 6, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:gnbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO "sys_menu" VALUES (2169, 'menu.dashboard.overview.enbBase', 2132, 8, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:enbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (20000, 'menu.ue.cbc.cbe', 5, 20, 'cbe', 'cbc/cbe/index', '1', '0', 'M', '1', '1', 'cbc#dashboard:cdr:index', 'icon-tubiaoku', '0', 'system', 1711352709786, 'system', 1747796007372, '');

View File

@@ -157,6 +157,7 @@ INSERT INTO "sys_role_menu" VALUES (2, 2166);
INSERT INTO "sys_role_menu" VALUES (2, 2167);
INSERT INTO "sys_role_menu" VALUES (2, 2168);
INSERT INTO "sys_role_menu" VALUES (2, 2169);
INSERT INTO "sys_role_menu" VALUES (2, 20000);
INSERT INTO "sys_role_menu" VALUES (3, 1);
INSERT INTO "sys_role_menu" VALUES (3, 4);
@@ -198,7 +199,6 @@ INSERT INTO "sys_role_menu" VALUES (3, 2097);
INSERT INTO "sys_role_menu" VALUES (3, 2107);
INSERT INTO "sys_role_menu" VALUES (3, 2108);
INSERT INTO "sys_role_menu" VALUES (3, 2109);
INSERT INTO "sys_role_menu" VALUES (3, 2111);
INSERT INTO "sys_role_menu" VALUES (3, 2113);
INSERT INTO "sys_role_menu" VALUES (3, 2114);
INSERT INTO "sys_role_menu" VALUES (3, 2115);
@@ -233,6 +233,7 @@ INSERT INTO "sys_role_menu" VALUES (3, 2166);
INSERT INTO "sys_role_menu" VALUES (3, 2167);
INSERT INTO "sys_role_menu" VALUES (3, 2168);
INSERT INTO "sys_role_menu" VALUES (3, 2169);
INSERT INTO "sys_role_menu" VALUES (3, 20000);
INSERT INTO "sys_role_menu" VALUES (4, 1);
INSERT INTO "sys_role_menu" VALUES (4, 4);

View File

@@ -0,0 +1,75 @@
-- ----------------------------
-- Table structure for alarm
-- ----------------------------
UPDATE "alarm" SET "alarm_type" = 'CommunicationAlarm' WHERE "alarm_type" = '1';
UPDATE "alarm" SET "alarm_type" = 'EquipmentAlarm' WHERE "alarm_type" = '2';
UPDATE "alarm" SET "alarm_type" = 'ProcessingFailure' WHERE "alarm_type" = '3';
UPDATE "alarm" SET "alarm_type" = 'EnvironmentalAlarm' WHERE "alarm_type" = '4';
UPDATE "alarm" SET "alarm_type" = 'QualityOfServiceAlarm' WHERE "alarm_type" = '5';
UPDATE "alarm" SET "orig_severity" = 'Critical', "perceived_severity" = 'Critical' WHERE "orig_severity" = '1';
UPDATE "alarm" SET "orig_severity" = 'Major', "perceived_severity" = 'Major' WHERE "orig_severity" = '2';
UPDATE "alarm" SET "orig_severity" = 'Minor', "perceived_severity" = 'Minor' WHERE "orig_severity" = '3';
UPDATE "alarm" SET "orig_severity" = 'Warning', "perceived_severity" = 'Warning' WHERE "orig_severity" = '4';
UPDATE "alarm" SET "orig_severity" = 'Event', "perceived_severity" = 'Event' WHERE "orig_severity" = '5';
UPDATE "alarm" SET "alarm_status" = 'Clear' WHERE "alarm_status" = '0';
UPDATE "alarm" SET "alarm_status" = 'Active' WHERE "alarm_status" = '1';
UPDATE "alarm" SET "ack_state" = 'NotAck' WHERE "ack_state" = '0';
UPDATE "alarm" SET "ack_state" = 'Ack' WHERE "ack_state" = '1';
UPDATE "alarm" SET "clear_type" = 'NotClear' WHERE "clear_type" = '0';
UPDATE "alarm" SET "clear_type" = 'AutoClear' WHERE "clear_type" = '1';
UPDATE "alarm" SET "clear_type" = 'ManualClear' WHERE "clear_type" = '2';
ALTER TABLE "alarm" RENAME TO "alarm_old";
CREATE TABLE "alarm" (
"id" integer NOT NULL,
"ne_type" text(32) NOT NULL,
"ne_id" text(64) NOT NULL,
"ne_name" text(32),
"province" text(32),
"pv_flag" text(10),
"alarm_seq" integer(11),
"alarm_id" text(32) NOT NULL,
"alarm_title" text(255),
"alarm_code" integer(11),
"event_time" integer(20),
"alarm_type" text(64),
"orig_severity" text(64),
"perceived_severity" text(64),
"object_uid" text(64),
"object_name" text(64),
"object_type" text(20),
"location_info" text(2048),
"alarm_status" text(64),
"specific_problem" text(255),
"specific_problem_id" text(100),
"add_info" text(2048),
"ack_state" text(64),
"ack_time" integer(20),
"ack_user" text(64),
"clear_type" text(64),
"clear_time" integer(20),
"clear_user" text(64),
"timestamp" integer(20),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Indexes structure for table alarm
-- ----------------------------
CREATE INDEX IF NOT EXISTS "idx_status_severity_time"
ON "alarm" (
"alarm_status" ASC,
"orig_severity" ASC,
"event_time" ASC
);
CREATE UNIQUE INDEX IF NOT EXISTS "uk_uni_ne_aid"
ON "alarm" (
"ne_type" ASC,
"ne_id" ASC,
"alarm_id" ASC
);
-- ----------------------------
-- Records of alarm
-- ----------------------------
INSERT INTO "alarm" ("id", "ne_type", "ne_id", "ne_name", "province", "pv_flag", "alarm_seq", "alarm_id", "alarm_title", "alarm_code", "event_time", "alarm_type", "orig_severity", "perceived_severity", "object_uid", "object_name", "object_type", "location_info", "alarm_status", "specific_problem", "specific_problem_id", "add_info", "ack_state", "ack_time", "ack_user", "clear_type", "clear_time", "clear_user", "timestamp") SELECT "id", "ne_type", "ne_id", "ne_name", "province", "pv_flag", "alarm_seq", "alarm_id", "alarm_title", "alarm_code", "event_time", "alarm_type", "orig_severity", "perceived_severity", "object_uid", "object_name", "object_type", "location_info", "alarm_status", "specific_problem", "specific_problem_id", "add_info", "ack_state", "ack_time", "ack_user", "clear_type", "clear_time", "clear_user", "timestamp" FROM "alarm_old";
DROP TABLE IF EXISTS "alarm_old";

View File

@@ -0,0 +1,53 @@
-- ----------------------------
-- Table structure for alarm_event
-- ----------------------------
UPDATE "alarm_event" SET "alarm_status" = 'Clear' WHERE "alarm_status" = '0';
UPDATE "alarm_event" SET "alarm_status" = 'Active' WHERE "alarm_status" = '1';
UPDATE "alarm_event" SET "clear_type" = 'NotClear' WHERE "clear_type" = '0';
UPDATE "alarm_event" SET "clear_type" = 'AutoClear' WHERE "clear_type" = '1';
UPDATE "alarm_event" SET "clear_type" = 'ManualClear' WHERE "clear_type" = '2';
ALTER TABLE "alarm_event" RENAME TO "alarm_event_old";
CREATE TABLE "alarm_event" (
"id" integer NOT NULL,
"ne_type" text(32) NOT NULL,
"ne_id" text(64) NOT NULL,
"alarm_seq" integer(11),
"alarm_id" text(32) NOT NULL,
"alarm_title" text(255),
"alarm_code" integer(11),
"event_time" integer(20),
"object_uid" text(64),
"object_name" text(64),
"object_type" text(20),
"location_info" text(2048),
"alarm_status" text(64),
"specific_problem" text(255),
"specific_problem_id" text(100),
"add_info" text(2048),
"clear_type" text(64),
"clear_time" integer(20),
"clear_user" text(64),
"timestamp" integer(20),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Indexes structure for table alarm_event
-- ----------------------------
CREATE INDEX IF NOT EXISTS "idx_astatus_etime"
ON "alarm_event" (
"alarm_status" ASC,
"event_time" ASC
);
CREATE UNIQUE INDEX IF NOT EXISTS "uk_ti_aid"
ON "alarm_event" (
"ne_type" ASC,
"ne_id" ASC,
"alarm_id" ASC
);
-- ----------------------------
-- Records of alarm_event
-- ----------------------------
INSERT INTO "alarm_event" ("id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_title", "alarm_code", "event_time", "object_uid", "object_name", "object_type", "location_info", "alarm_status", "specific_problem", "specific_problem_id", "add_info", "clear_type", "clear_time", "clear_user", "timestamp") SELECT "id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_title", "alarm_code", "event_time", "object_uid", "object_name", "object_type", "location_info", "alarm_status", "specific_problem", "specific_problem_id", "add_info", "clear_type", "clear_time", "clear_user", "timestamp" FROM "alarm_event_old";
DROP TABLE IF EXISTS "alarm_event_old";

View File

@@ -0,0 +1,40 @@
-- ----------------------------
-- Table structure for alarm_forward_log
-- ----------------------------
UPDATE "alarm_forward_log" SET "alarm_type" = 'CommunicationAlarm' WHERE "alarm_type" = '1';
UPDATE "alarm_forward_log" SET "alarm_type" = 'EquipmentAlarm' WHERE "alarm_type" = '2';
UPDATE "alarm_forward_log" SET "alarm_type" = 'ProcessingFailure' WHERE "alarm_type" = '3';
UPDATE "alarm_forward_log" SET "alarm_type" = 'EnvironmentalAlarm' WHERE "alarm_type" = '4';
UPDATE "alarm_forward_log" SET "alarm_type" = 'QualityOfServiceAlarm' WHERE "alarm_type" = '5';
UPDATE "alarm_forward_log" SET "orig_severity" = 'Critical' WHERE "orig_severity" = '1';
UPDATE "alarm_forward_log" SET "orig_severity" = 'Major' WHERE "orig_severity" = '2';
UPDATE "alarm_forward_log" SET "orig_severity" = 'Minor' WHERE "orig_severity" = '3';
UPDATE "alarm_forward_log" SET "orig_severity" = 'Warning' WHERE "orig_severity" = '4';
UPDATE "alarm_forward_log" SET "orig_severity" = 'Event' WHERE "orig_severity" = '5';
UPDATE "alarm_forward_log" SET "alarm_status" = 'Clear' WHERE "alarm_status" = '0';
UPDATE "alarm_forward_log" SET "alarm_status" = 'Active' WHERE "alarm_status" = '1';
ALTER TABLE "alarm_forward_log" RENAME TO "alarm_forward_log_old";
CREATE TABLE "alarm_forward_log" (
"id" integer NOT NULL,
"ne_type" text(16),
"ne_id" text(64) NOT NULL,
"alarm_seq" integer(11),
"alarm_id" text(32),
"alarm_code" integer(11),
"alarm_title" text(255),
"alarm_status" text(64),
"alarm_type" text(64),
"orig_severity" text(10),
"event_time" integer(20),
"created_at" integer(20),
"type" text(255),
"target" text(255),
"result" text(255),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Records of alarm_forward_log
-- ----------------------------
INSERT INTO "alarm_forward_log" ("id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_code", "alarm_title", "alarm_status", "alarm_type", "orig_severity", "event_time", "created_at", "type", "target", "result") SELECT "id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_code", "alarm_title", "alarm_status", "alarm_type", "orig_severity", "event_time", "created_at", "type", "target", "result" FROM "alarm_forward_log_old";
DROP TABLE IF EXISTS "alarm_forward_log_old";

View File

@@ -0,0 +1,37 @@
-- ----------------------------
-- Table structure for alarm_log
-- ----------------------------
UPDATE "alarm_log" SET "alarm_type" = 'CommunicationAlarm' WHERE "alarm_type" = '1';
UPDATE "alarm_log" SET "alarm_type" = 'EquipmentAlarm' WHERE "alarm_type" = '2';
UPDATE "alarm_log" SET "alarm_type" = 'ProcessingFailure' WHERE "alarm_type" = '3';
UPDATE "alarm_log" SET "alarm_type" = 'EnvironmentalAlarm' WHERE "alarm_type" = '4';
UPDATE "alarm_log" SET "alarm_type" = 'QualityOfServiceAlarm' WHERE "alarm_type" = '5';
UPDATE "alarm_log" SET "orig_severity" = 'Critical' WHERE "orig_severity" = '1';
UPDATE "alarm_log" SET "orig_severity" = 'Major' WHERE "orig_severity" = '2';
UPDATE "alarm_log" SET "orig_severity" = 'Minor' WHERE "orig_severity" = '3';
UPDATE "alarm_log" SET "orig_severity" = 'Warning' WHERE "orig_severity" = '4';
UPDATE "alarm_log" SET "orig_severity" = 'Event' WHERE "orig_severity" = '5';
UPDATE "alarm_log" SET "alarm_status" = 'Clear' WHERE "alarm_status" = '0';
UPDATE "alarm_log" SET "alarm_status" = 'Active' WHERE "alarm_status" = '1';
ALTER TABLE "alarm_log" RENAME TO "alarm_log_old";
CREATE TABLE "alarm_log" (
"id" integer NOT NULL,
"ne_type" text(16),
"ne_id" text(64) NOT NULL,
"alarm_seq" integer(11),
"alarm_id" text(32),
"alarm_code" integer(11),
"alarm_title" text(255),
"alarm_status" text(64),
"alarm_type" text(64),
"orig_severity" text(64),
"event_time" integer(20),
"created_at" integer(20),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Records of alarm_log
-- ----------------------------
INSERT INTO "alarm_log" ("id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_code", "alarm_title", "alarm_status", "alarm_type", "orig_severity", "event_time", "created_at") SELECT "id", "ne_type", "ne_id", "alarm_seq", "alarm_id", "alarm_code", "alarm_title", "alarm_status", "alarm_type", "orig_severity", "event_time", "created_at" FROM "alarm_log_old";
DROP TABLE IF EXISTS "alarm_log_old";

View File

@@ -0,0 +1,17 @@
-- ----------------------------
-- Table structure for cbc_message
-- ----------------------------
CREATE TABLE IF NOT EXISTS `cbc_message` (
`id` INTEGER PRIMARY KEY AUTOINCREMENT,
`ne_type` TEXT,
`ne_id` TEXT,
`message_json` TEXT,
`status` TEXT DEFAULT 'INACTIVE' CHECK(`status` IN ('ACTIVE', 'INACTIVE')),
`detail` TEXT,
`created_at` INTEGER DEFAULT (strftime('%s', 'now') * 1000000),
`updated_at` INTEGER
);
-- Create indexes
CREATE INDEX IF NOT EXISTS `idx_id` ON `cbc_message`(`id`);
CREATE INDEX IF NOT EXISTS `idx_ne_time` ON `cbc_message`(`ne_type`, `ne_id`, `created_at`);

View File

@@ -0,0 +1,57 @@
-- ----------------------------
-- Table structure for kpi_c_title
-- ----------------------------
DROP TABLE IF EXISTS "kpi_c_title";
CREATE TABLE IF NOT EXISTS "kpi_c_title" (
"id" integer NOT NULL,
"ne_type" text(16),
"kpi_id" text(16),
"title" text(255),
"expression" text(1024),
"unit" text(16),
"description" text(255),
"status" text(16),
"created_by" text(32),
"updated_at" integer(20),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Indexes structure for table kpi_c_title
-- ----------------------------
CREATE UNIQUE INDEX IF NOT EXISTS "idx_ne_kpi_id"
ON "kpi_c_title" (
"ne_type" ASC,
"kpi_id" ASC
);
-- ----------------------------
-- Records of kpi_c_title
-- ----------------------------
DELETE FROM "kpi_c_title" WHERE "id"<=23;
REPLACE INTO "kpi_c_title" VALUES (1, 'AMF', 'AMF.C.01', 'Regstration Success Rate', '(''AMF.03''/''AMF.02'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (2, 'AMF', 'AMF.C.02', 'Paging Success Rate', '((''AMF.15''+''AMF.16'')/''AMF.17'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (3, 'AMF', 'AMF.C.03', 'Service Request Success Rate', '(1-''AMF.18''/''AMF.19'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (4, 'AMF', 'AMF.C.04', '5G Register Subscriber', '''AMF.01''', ' ', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (20, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '''SMF.01''', ' ', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (21, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(''SMF.02''/''SMF.03'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (22, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(''SMF.04''/''SMF.05'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (23, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate', '(''SMF.13''/''SMF.14'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (24, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((''SMF.09''+''SMF.11'')/(''SMF.10''+''SMF.12'') )*100', '%', '', '0', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (40, 'MME', 'MME.C.01', 'Combine Attach Success Rate', '(''MME.A.05''/''MME.A.04'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (41, 'MME', 'MME.C.02', 'Attach Success Rate', '(''MME.A.02''/''MME.A.01'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (60, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate', '(''UPF.01''/''UPF.02'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (61, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(''UPF.03'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (62, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(''UPF.05'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (63, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(''UPF.06'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (64, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(''UPF.04'')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (65, 'UPF', 'UPF.C.08', 'Uplink Packet Loss Rate', '(((''UPF.05'')*8/5/1000/1000) - ((''UPF.03'')*8/5/1000/1000)) / ((''UPF.05'')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (66, 'UPF', 'UPF.C.09', 'Downlink Packet Loss Rate', '(((''UPF.04'')*8/5/1000/1000) - ((''UPF.06'')*8/5/1000/1000)) / ((''UPF.04'')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (80, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate', '(''UDM.03''/''UDM.02'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (81, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate', '(''UDM.04''/''UDM.05'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (90, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(''SCSCF.03''/''SCSCF.04'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (91, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(''SCSCF.05''/''SCSCF.06'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (92, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(''SCSCF.07''/''SCSCF.08'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (93, 'IMS', 'IMS.C.04', 'Service_Success_Rate', '((''SCSCF.05''+''SCSCF.07'')/(''SCSCF.06''+''SCSCF.08''))*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (94, 'IMS', 'IMS.C.05', 'IDDOutgoing_Success_Rate', '(''IDD.03''/''IDD.01'')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO "kpi_c_title" VALUES (95, 'IMS', 'IMS.C.06', 'IDDIncoming_Success_Rate', '(''IDD.06''/''IDD.04'')*100', '%', '', '1', 'admin', 1739362260083);

View File

@@ -0,0 +1,194 @@
-- ----------------------------
-- Table structure for sys_dict_data
-- ----------------------------
CREATE TABLE IF NOT EXISTS "sys_dict_data" (
"data_id" integer NOT NULL,
"dict_type" text(64) NOT NULL,
"data_label" text(255) NOT NULL,
"data_value" text(512) NOT NULL,
"data_sort" integer(11),
"tag_class" text(64),
"tag_type" text(12),
"status_flag" text(1),
"del_flag" text(1),
"create_by" text(64),
"create_time" integer(20),
"update_by" text(64),
"update_time" integer(20),
"remark" text(500),
PRIMARY KEY ("data_id")
);
-- ----------------------------
-- Records of sys_dict_data
-- ----------------------------
REPLACE INTO "sys_dict_data" VALUES (1, 'sys_user_sex', 'dictData.sex.un', '0', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (2, 'sys_user_sex', 'dictData.sex.male', '1', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (3, 'sys_user_sex', 'dictData.sex.female', '2', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (4, 'sys_show_hide', 'dictData.show', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (5, 'sys_show_hide', 'dictData.hide', '0', 2, '', 'error', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (6, 'sys_normal_disable', 'dictData.normal', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (7, 'sys_normal_disable', 'dictData.disable', '0', 2, '', 'error', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (8, 'sys_yes_no', 'dictData.yes', 'Y', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (9, 'sys_yes_no', 'dictData.no', 'N', 2, '', 'error', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (10, 'sys_common_status', 'dictData.success', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (11, 'sys_common_status', 'dictData.fail', '0', 2, '', 'error', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (12, 'sys_job_status', 'dictData.jobStatus.normal', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (13, 'sys_job_status', 'dictData.jobStatus.pause', '0', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (14, 'sys_job_group', 'dictData.jobGroup.Default', 'DEFAULT', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (15, 'sys_job_group', 'dictData.jobGroup.System', 'SYSTEM', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (16, 'sys_oper_type', 'dictData.operType.other', '0', 1, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (17, 'sys_oper_type', 'dictData.operType.add', '1', 2, '', 'blue', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (18, 'sys_oper_type', 'dictData.operType.edit', '2', 3, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (19, 'sys_oper_type', 'dictData.operType.delete', '3', 4, '', 'red', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (20, 'sys_oper_type', 'dictData.operType.auth', '4', 5, '', '#108ee9', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (21, 'sys_oper_type', 'dictData.operType.export', '5', 6, '', 'orange', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (22, 'sys_oper_type', 'dictData.operType.import', '6', 7, '', 'orange', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (23, 'sys_oper_type', 'dictData.operType.forced quit', '7', 8, '', 'default', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (24, 'sys_oper_type', 'dictData.operType.clear', '8', 9, '', '#f50', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (25, 'trace_type', 'dictData.trace.interface', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (26, 'trace_type', 'dictData.trace.device', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (27, 'trace_type', 'dictData.trace.user', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (28, 'sys_job_save_log', 'dictData.jobSaveLog.no', '0', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (29, 'sys_job_save_log', 'dictData.jobSaveLog.yes', '1', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (30, 'ne_host_type', 'dictData.ne_host_type.redis', 'redis', 2, '', 'magenta', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (31, 'alarm_status', 'dictData.alarmStatus.history', '0', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (32, 'alarm_status', 'dictData.alarmStatus.active', '1', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (33, 'sys_role_datascope', 'dictData.datascope.all', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (34, 'sys_role_datascope', 'dictData.datascope.custom', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (35, 'sys_role_datascope', 'dictData.datascope.dept', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (36, 'sys_role_datascope', 'dictData.datascope.deptAndChid', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (37, 'sys_role_datascope', 'dictData.datascope.self', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', 'CommunicationAlarm', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', 'EquipmentAlarm', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', 'ProcessingFailure', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', 'EnvironmentalAlarm', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', 'QualityOfServiceAlarm', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', 'NotClear', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', 'AutoClear', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', 'ManualClear', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', 'NotAck', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', 'Ack', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', 'Critical', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', 'Major', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', 'Minor', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', 'Warning', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', 'Event', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (53, 'index_status', 'dictType.index_status.normal', 'normal', 1, '#91cc75', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (54, 'index_status', 'dictType.index_status.abnormal', 'abnormal', 2, '#ee6666', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (55, 'cdr_sip_code', 'dictData.cdr_sip_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (56, 'cdr_sip_code', 'dictData.cdr_sip_code.403', '403', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (57, 'cdr_sip_code', 'dictData.cdr_sip_code.408', '408', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (58, 'cdr_sip_code', 'dictData.cdr_sip_code.500', '500', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (59, 'cdr_call_type', 'dictData.cdr_call_type.audio', 'audio', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (60, 'cdr_call_type', 'dictData.cdr_call_type.video', 'video', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (61, 'ue_auth_code', 'dictData.ue_auth_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (62, 'ue_auth_code', 'dictData.ue_auth_code.001', '001', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (63, 'ue_auth_code', 'dictData.ue_auth_code.002', '002', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (64, 'ue_auth_code', 'dictData.ue_auth_code.003', '003', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (65, 'ue_auth_code', 'dictData.ue_auth_code.004', '004', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (66, 'ue_auth_code', 'dictData.ue_auth_code.005', '005', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (67, 'ue_auth_code', 'dictData.ue_auth_code.006', '006', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (68, 'ue_auth_code', 'dictData.ue_auth_code.007', '007', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'Auth', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'Detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'CM', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (72, 'ue_event_cm_state', 'dictData.ue_event_cm_state.connected', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (73, 'ue_event_cm_state', 'dictData.ue_event_cm_state.idle', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (74, 'ue_event_cm_state', 'dictData.ue_event_cm_state.inactive', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (75, 'cdr_sip_code', 'dictData.cdr_sip_code.404', '404', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (76, 'cdr_sip_code', 'dictData.cdr_sip_code.487', '487', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (77, 'cdr_sip_code', 'dictData.cdr_sip_code.503', '503', 17, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (78, 'cdr_sip_code', 'dictData.cdr_sip_code.504', '504', 18, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (79, 'cdr_sip_code', 'dictData.cdr_sip_code.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (80, 'cdr_sip_code', 'dictData.cdr_sip_code.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (81, 'cdr_sip_code', 'dictData.cdr_sip_code.202', '202', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (82, 'cdr_call_type', 'dictData.cdr_call_type.sms', 'sms', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (83, 'cdr_sip_code', 'dictData.cdr_sip_code.488', '488', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (84, 'cdr_sip_code', 'dictData.cdr_sip_code.0', '0', 99, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (85, 'ne_host_type', 'dictData.ne_host_type.ssh', 'ssh', 0, '', 'blue', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (86, 'ne_host_type', 'dictData.ne_host_type.telnet', 'telnet', 1, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (87, 'ne_host_groupId', 'dictData.ne_host_groupId.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (88, 'ne_host_groupId', 'dictData.ne_host_groupId.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (89, 'ne_host_groupId', 'dictData.ne_host_groupId.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (90, 'ne_host_authMode', 'dictData.ne_host_authMode.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (91, 'ne_host_authMode', 'dictData.ne_host_authMode.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (92, 'ne_host_cmd_groupId', 'dictData.ne_host_cmd_groupId.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (93, 'ne_host_cmd_groupId', 'dictData.ne_host_cmd_groupId.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (94, 'ne_info_status', 'dictData.ne_info_status.0', '0', 0, '', 'error', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (95, 'ne_info_status', 'dictData.ne_info_status.1', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (96, 'ne_info_status', 'dictData.ne_info_status.2', '2', 2, '', 'orange', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (97, 'ne_info_status', 'dictData.ne_info_status.3', '3', 3, '', 'blue', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (98, 'ne_license_status', 'dictData.ne_license_status.0', '0', 0, '', 'warning', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (99, 'ne_license_status', 'dictData.ne_license_status.1', '1', 1, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (100, 'ne_host_authMode', 'dictData.ne_host_authMode.2', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (101, 'ne_version_status', 'dictData.ne_version_status.0', '0', 0, '', 'default', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (102, 'ne_version_status', 'dictData.ne_version_status.1', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (103, 'ne_version_status', 'dictData.ne_version_status.2', '2', 1, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (104, 'ne_version_status', 'dictData.ne_version_status.3', '3', 1, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (105, 'cdr_cause_code', 'dictData.cdr_cause_code.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (106, 'cdr_cause_code', 'dictData.cdr_cause_code.8', '8', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (107, 'cdr_cause_code', 'dictData.cdr_cause_code.10', '10', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (108, 'cdr_cause_code', 'dictData.cdr_cause_code.21', '21', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (109, 'cdr_cause_code', 'dictData.cdr_cause_code.22', '22', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (110, 'cdr_cause_code', 'dictData.cdr_cause_code.27', '27', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (111, 'cdr_cause_code', 'dictData.cdr_cause_code.28', '28', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (112, 'cdr_cause_code', 'dictData.cdr_cause_code.29', '29', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (113, 'cdr_cause_code', 'dictData.cdr_cause_code.30', '30', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (114, 'cdr_cause_code', 'dictData.cdr_cause_code.38', '38', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (115, 'cdr_cause_code', 'dictData.cdr_cause_code.41', '41', 20, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (116, 'cdr_cause_code', 'dictData.cdr_cause_code.41', '41', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (117, 'cdr_cause_code', 'dictData.cdr_cause_code.42', '42', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (118, 'cdr_cause_code', 'dictData.cdr_cause_code.47', '47', 23, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (119, 'cdr_cause_code', 'dictData.cdr_cause_code.50', '50', 30, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (120, 'trace_msg_type', 'dictData.trace_msg_type.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (121, 'trace_msg_type', 'dictData.trace_msg_type.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (122, 'trace_msg_direct', 'dictData.trace_msg_direct.0', '0', 0, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (123, 'trace_msg_direct', 'dictData.trace_msg_direct.1', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (124, 'trace_interfaces', 'dictData.trace_interfaces.1', 'N1', 1, '', '', '0', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (125, 'trace_interfaces', 'dictData.trace_interfaces.2', 'N2', 2, '', '', '0', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (126, 'trace_interfaces', 'dictData.trace_interfaces.3', 'N1/N2', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (127, 'trace_interfaces', 'dictData.trace_interfaces.4', 'N4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (128, 'trace_interfaces', 'dictData.trace_interfaces.8', 'N8', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (129, 'trace_interfaces', 'dictData.trace_interfaces.10', 'N10', 10, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (130, 'trace_interfaces', 'dictData.trace_interfaces.11', 'N11', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (131, 'trace_interfaces', 'dictData.trace_interfaces.12', 'N12', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (132, 'trace_interfaces', 'dictData.trace_interfaces.13', 'N13', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (133, 'trace_interfaces', 'dictData.trace_interfaces.7', 'N7', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (134, 'trace_interfaces', 'dictData.trace_interfaces.15', 'N15', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (135, 'trace_interfaces', 'dictData.trace_interfaces.17', 'N17', 17, '', '', '0', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (136, 'trace_interfaces', 'dictData.trace_interfaces.20', 'N20', 20, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (137, 'trace_interfaces', 'dictData.trace_interfaces.22', 'N22', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (138, 'trace_interfaces', 'dictData.trace_interfaces.40', 'N40', 40, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (139, 'cdr_sip_code', 'dictData.cdr_sip_code.302', '302', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (140, 'cdr_sip_code', 'dictData.cdr_sip_code.402', '402', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (141, 'cdr_sip_code', 'dictData.cdr_sip_code.480', '480', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (142, 'cdr_sip_code', 'dictData.cdr_sip_code.481', '481', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (143, 'cdr_sip_code', 'dictData.cdr_sip_code.482', '482', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (144, 'cdr_sip_code', 'dictData.cdr_sip_code.486', '486', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (145, 'cdr_sip_code', 'dictData.cdr_sip_code.489', '489', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (146, 'cdr_sip_code', 'dictData.cdr_sip_code.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (147, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.0', '0', 99, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (148, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (149, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.202', '202', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (150, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.302', '302', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (151, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.402', '402', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (152, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.403', '403', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (153, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.404', '404', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (154, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.480', '480', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (155, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.481', '481', 8, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (156, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.482', '482', 9, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (157, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.486', '486', 11, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (158, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.487', '487', 12, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (159, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.408', '408', 13, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (160, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.488', '488', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (161, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.489', '489', 15, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (162, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.500', '500', 16, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (163, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.503', '503', 17, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (164, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.504', '504', 18, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (165, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (166, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (167, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (168, 'trace_interfaces', 'dictData.trace_interfaces.14', 'N14', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO "sys_dict_data" VALUES (169, 'trace_interfaces', 'dictData.trace_interfaces.5', 'N5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');

View File

@@ -0,0 +1,952 @@
-- ----------------------------
-- Table structure for sys_i18n
-- ----------------------------
CREATE TABLE IF NOT EXISTS "sys_i18n" (
"id" integer NOT NULL,
"key_lable" text(255) NOT NULL,
"value_zh" text(2048),
"value_en" text(2048),
PRIMARY KEY ("id")
);
-- ----------------------------
-- Records of sys_i18n
-- ----------------------------
REPLACE INTO "sys_i18n" VALUES (1, 'i18n', '中文', 'English');
REPLACE INTO "sys_i18n" VALUES (2, 'hello', '你好', 'Hello');
REPLACE INTO "sys_i18n" VALUES (3, 'menu.system', '系统', 'System');
REPLACE INTO "sys_i18n" VALUES (4, 'menu.monitor', '监控', 'Monitor');
REPLACE INTO "sys_i18n" VALUES (5, 'menu.tools', '工具', 'Tools');
REPLACE INTO "sys_i18n" VALUES (6, 'menu.ne', '网元', 'NE');
REPLACE INTO "sys_i18n" VALUES (7, 'menu.ue', '终端', 'UE');
REPLACE INTO "sys_i18n" VALUES (8, 'menu.systemRemark', '系统管理目录', 'System Management Catalog');
REPLACE INTO "sys_i18n" VALUES (9, 'menu.monitorRemark', '系统监控目录', 'System Monitor Catalog');
REPLACE INTO "sys_i18n" VALUES (10, 'menu.toolsRemark', '系统工具目录', 'System Tools Catalog');
REPLACE INTO "sys_i18n" VALUES (11, 'menu.neRemark', '网元配置管理目录', 'NE Configuration Management Catalog');
REPLACE INTO "sys_i18n" VALUES (12, 'menu.ueRemark', '网元终端信息目录', 'Network Element Terminal Information Catalog');
REPLACE INTO "sys_i18n" VALUES (13, 'menu.security.user', '用户管理', 'User Management');
REPLACE INTO "sys_i18n" VALUES (14, 'menu.security.role', '角色管理', 'Role Management');
REPLACE INTO "sys_i18n" VALUES (15, 'menu.security.roleUser', '分配角色', 'Assigning Roles');
REPLACE INTO "sys_i18n" VALUES (16, 'menu.system.menu', '菜单管理', 'Menu Management');
REPLACE INTO "sys_i18n" VALUES (17, 'menu.security.dept', '部门管理', 'Department Management');
REPLACE INTO "sys_i18n" VALUES (18, 'menu.security.post', '岗位管理', 'Position Management');
REPLACE INTO "sys_i18n" VALUES (19, 'menu.system.dictType', '字典管理', 'Dictionary Management');
REPLACE INTO "sys_i18n" VALUES (20, 'menu.system.dictData', '字典数据', 'Dictionary Data');
REPLACE INTO "sys_i18n" VALUES (21, 'menu.system.paramSet', '参数设置', 'Parameter Settings');
REPLACE INTO "sys_i18n" VALUES (22, 'menu.system.systemLog', '系统日志', 'System Log');
REPLACE INTO "sys_i18n" VALUES (23, 'menu.system.systemInfo', '系统信息', 'System Information');
REPLACE INTO "sys_i18n" VALUES (24, 'menu.system.cacheInfo', '缓存信息', 'Cache Information');
REPLACE INTO "sys_i18n" VALUES (25, 'menu.system.cache', '缓存管理', 'Cache Management');
REPLACE INTO "sys_i18n" VALUES (26, 'menu.security.onlineUser', '在线用户', 'Online Users');
REPLACE INTO "sys_i18n" VALUES (27, 'menu.system.job', '调度任务', 'Scheduling Tasks');
REPLACE INTO "sys_i18n" VALUES (28, 'menu.system.jobLog', '调度日志', 'Scheduling Logs');
REPLACE INTO "sys_i18n" VALUES (29, 'menu.tools.help', '帮助文档', 'Help Documentation');
REPLACE INTO "sys_i18n" VALUES (30, 'menu.log.operat', '操作日志', 'Operation logs');
REPLACE INTO "sys_i18n" VALUES (31, 'menu.log.login', '安全日志', 'Security logs');
REPLACE INTO "sys_i18n" VALUES (32, 'menu.security.userRemark', '用户管理菜单', 'User Management Menu');
REPLACE INTO "sys_i18n" VALUES (33, 'menu.security.roleRemark', '角色管理菜单', 'Role Management Menu');
REPLACE INTO "sys_i18n" VALUES (34, 'menu.security.roleUserRemark', '分配角色内嵌隐藏菜单', 'Assign Roles Embedded Hidden Menu');
REPLACE INTO "sys_i18n" VALUES (35, 'menu.system.menuRemark', '菜单管理菜单', 'Menu Management Menu');
REPLACE INTO "sys_i18n" VALUES (36, 'menu.security.deptRemark', '部门管理菜单', 'Department management menu');
REPLACE INTO "sys_i18n" VALUES (37, 'menu.security.postRemark', '岗位管理菜单', 'Job Management Menu');
REPLACE INTO "sys_i18n" VALUES (38, 'menu.system.dictTypeRemark', '字典管理菜单', 'Dictionary management menu');
REPLACE INTO "sys_i18n" VALUES (39, 'menu.system.dictDataRemark', '字典数据内嵌隐藏菜单', 'Dictionary data embedded hidden menu');
REPLACE INTO "sys_i18n" VALUES (40, 'menu.system.paramSetRemark', '参数设置菜单', 'Parameter setting menu');
REPLACE INTO "sys_i18n" VALUES (41, 'menu.system.systemLogRemark', '系统日志目录', 'System Log Catalog');
REPLACE INTO "sys_i18n" VALUES (42, 'menu.system.systemInfoRemark', '系统信息菜单', 'System information menu');
REPLACE INTO "sys_i18n" VALUES (43, 'menu.system.cacheInfoRemark', '缓存信息菜单', 'Cache Information Menu');
REPLACE INTO "sys_i18n" VALUES (44, 'menu.system.cacheRemark', '缓存列表菜单', 'Cache List Menu');
REPLACE INTO "sys_i18n" VALUES (45, 'menu.security.onlineUserRemark', '在线用户菜单', 'Online User Menu');
REPLACE INTO "sys_i18n" VALUES (46, 'menu.system.jobRemark', '调度任务菜单', 'Scheduling Tasks menu');
REPLACE INTO "sys_i18n" VALUES (47, 'menu.system.jobLogRemark', '调度日志内嵌隐藏菜单', 'Scheduling Log Embedded Hidden Menu');
REPLACE INTO "sys_i18n" VALUES (48, 'menu.tools.helpRemark', '帮助文档菜单', 'Help file menu');
REPLACE INTO "sys_i18n" VALUES (49, 'menu.log.operatRemark', '操作日志菜单', 'Operation log menu');
REPLACE INTO "sys_i18n" VALUES (50, 'menu.log.loginRemark', '登录日志菜单', 'Login log menu');
REPLACE INTO "sys_i18n" VALUES (51, 'menu.common.query', '查询', 'Inquiry');
REPLACE INTO "sys_i18n" VALUES (52, 'menu.common.add', '新增', 'Add');
REPLACE INTO "sys_i18n" VALUES (53, 'menu.common.edit', '修改', 'Modify');
REPLACE INTO "sys_i18n" VALUES (54, 'menu.common.delete', '删除', 'Delete');
REPLACE INTO "sys_i18n" VALUES (55, 'menu.common.export', '导出', 'Export');
REPLACE INTO "sys_i18n" VALUES (56, 'menu.common.import', '导入', 'Import');
REPLACE INTO "sys_i18n" VALUES (57, 'menu.common.resetPwd', '重置密码', 'Reset Password');
REPLACE INTO "sys_i18n" VALUES (58, 'menu.common.unlock', '账户解锁', 'Account Unlock');
REPLACE INTO "sys_i18n" VALUES (59, 'menu.forcedQuit.batch ', '批量强退', 'Batch Undo');
REPLACE INTO "sys_i18n" VALUES (60, 'menu.forcedQuit.single', '单条强退', 'Individual Forced Retirement');
REPLACE INTO "sys_i18n" VALUES (61, 'menu.neData.udmAuth', 'UDM鉴权用户', 'UDM Authentication');
REPLACE INTO "sys_i18n" VALUES (62, 'menu.neData.udmSub', 'UDM签约用户', 'UDM Subscribers');
REPLACE INTO "sys_i18n" VALUES (63, 'menu.neData.udmVOIP', 'VOIP鉴权用户', 'VOIP Authentication');
REPLACE INTO "sys_i18n" VALUES (64, 'menu.neData.udmVolte', 'IMS签约用户', 'IMS Subscribers');
REPLACE INTO "sys_i18n" VALUES (65, 'menu.neData.imsSub', 'IMS在线用户', 'IMS Online Users');
REPLACE INTO "sys_i18n" VALUES (66, 'menu.neData.smfSub', 'UE在线信息', 'UE Online Information');
REPLACE INTO "sys_i18n" VALUES (67, 'menu.neData.baseOnline', '基站在线', 'Radio Online');
REPLACE INTO "sys_i18n" VALUES (68, 'menu.trace', '跟踪', 'Trace');
REPLACE INTO "sys_i18n" VALUES (69, 'menu.trace.task', '网元跟踪任务', 'NE Trace Task');
REPLACE INTO "sys_i18n" VALUES (70, 'menu.trace.taskData', '网元跟踪任务数据', 'NE Trace Task Data');
REPLACE INTO "sys_i18n" VALUES (71, 'menu.trace.pcap', '信令抓包', 'Signaling Capture');
REPLACE INTO "sys_i18n" VALUES (72, 'menu.fault', '监控', 'Monitor');
REPLACE INTO "sys_i18n" VALUES (73, 'config.neData.backupDataFTP', '备份网元数据-同步FTP服务', 'Backup NE Data - Sync Data FTP Service');
REPLACE INTO "sys_i18n" VALUES (74, 'config.neData.backupDataFTPRemark', '请通过系统页面进行设置FTP信息', 'Please set the FTP information through the system page.');
REPLACE INTO "sys_i18n" VALUES (75, 'job.backup_export_table_sys_log_operate_remark', 'hour: 数据时间从任务执行时间前的小时数
tableName: 数据表名
columns: 支持字段
backupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time
tableName: data table name
columns: support fields
backupPath: backup output path /usr/local/omc/backup/{backupPath}');
REPLACE INTO "sys_i18n" VALUES (76, 'job.backup_export_table_cdr_event_ims_remark', 'hour: 数据时间从任务执行时间前的小时数
tableName: 数据表名
columns: 支持字段
backupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time
tableName: data table name
columns: support fields
backupPath: backup output path /usr/local/omc/backup/{backupPath}');
REPLACE INTO "sys_i18n" VALUES (77, 'job.backup_export_table_cdr_event_smf_remark', 'hour: 数据时间从任务执行时间前的小时数
tableName: 数据表名
columns: 支持字段
backupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time
tableName: data table name
columns: support fields
backupPath: backup output path /usr/local/omc/backup/{backupPath}');
REPLACE INTO "sys_i18n" VALUES (78, 'menu.traceRemark', '跟踪管理目录', 'Tracking Management Menu');
REPLACE INTO "sys_i18n" VALUES (79, 'menu.trace.taskRemark', '跟踪任务菜单', 'Tracking Task Menu');
REPLACE INTO "sys_i18n" VALUES (80, 'config.sys.user.fristPasswdChange', '用户管理-首次登录密码修改', 'User Management-First Login Password Change');
REPLACE INTO "sys_i18n" VALUES (81, 'menu.trace.pcapRemark', '信令抓包菜单', 'Signaling Capture Menu');
REPLACE INTO "sys_i18n" VALUES (82, 'menu.faultRemark', '故障管理目录', 'Fault Management Catalog');
REPLACE INTO "sys_i18n" VALUES (83, 'menu.fault.active', '活动告警', 'Active Alarms');
REPLACE INTO "sys_i18n" VALUES (84, 'menu.log', '日志', 'Logs');
REPLACE INTO "sys_i18n" VALUES (85, 'menu.log.mml', 'MML日志', 'MML Logs');
REPLACE INTO "sys_i18n" VALUES (86, 'menu.log.alarm', '告警日志', 'Alarm Logs');
REPLACE INTO "sys_i18n" VALUES (87, 'menu.log.forwarding', '告警前转日志', 'Alarm Forwarding Logs');
REPLACE INTO "sys_i18n" VALUES (88, 'menu.log.set', '日志设置', 'Log Settings');
REPLACE INTO "sys_i18n" VALUES (89, 'menu.monitor.sessionUser', '用户会话', 'User Sessions');
REPLACE INTO "sys_i18n" VALUES (90, 'menu.fault.history', '历史告警', 'Historical Alarms');
REPLACE INTO "sys_i18n" VALUES (91, 'menu.fault.set', '设置', 'Settings');
REPLACE INTO "sys_i18n" VALUES (92, 'menu.perf', '性能', 'Performance');
REPLACE INTO "sys_i18n" VALUES (93, 'menu.fault.activemRemark', '活动告警菜单', 'Active Alarm Menu');
REPLACE INTO "sys_i18n" VALUES (94, 'menu.logRemark', '日志管理目录', 'Log Management Catalog');
REPLACE INTO "sys_i18n" VALUES (95, 'menu.log.operatOldRemark', '操作日志旧layui菜单', 'Operation log old layui menu');
REPLACE INTO "sys_i18n" VALUES (96, 'menu.log.mmlRemark', '操作MML日志', 'Operation MML Log');
REPLACE INTO "sys_i18n" VALUES (97, 'menu.log.alarmRemark', '告警日志菜单', 'Alarm Log Menu');
REPLACE INTO "sys_i18n" VALUES (98, 'menu.log.securityOldRemark', '安全日志旧layui菜单', 'Security Log Old Layui Menu');
REPLACE INTO "sys_i18n" VALUES (99, 'menu.log.forwardingRemark', '告警前转日志菜单', 'Alarm forward log menu');
REPLACE INTO "sys_i18n" VALUES (100, 'menu.log.setRemark', '日志设置菜单', 'Log Settings menu');
REPLACE INTO "sys_i18n" VALUES (101, 'menu.monitor.sessionUserRemark', '用户会话旧layui菜单', 'User Session Old Layui Menu');
REPLACE INTO "sys_i18n" VALUES (102, 'menu.fault.historyRemark', '历史告警菜单', 'Alarm history menu');
REPLACE INTO "sys_i18n" VALUES (103, 'menu.fault.setRemark', '故障通用设置菜单', 'Fault General Setup Menu');
REPLACE INTO "sys_i18n" VALUES (104, 'menu.perfRemark', '性能目录', 'Performance Catalog');
REPLACE INTO "sys_i18n" VALUES (105, 'menu.perf.task', '任务管理', 'Performance Tasks');
REPLACE INTO "sys_i18n" VALUES (106, 'menu.perf.data', '性能数据', 'Performance Data');
REPLACE INTO "sys_i18n" VALUES (107, 'menu.perf.kpiOverView', '关键指标概览', 'Key Performance Overview');
REPLACE INTO "sys_i18n" VALUES (108, 'menu.perf.threshold', '性能门限', 'Performance Thresholds');
REPLACE INTO "sys_i18n" VALUES (109, 'menu.perf.kpi', '关键指标', 'Key Performance Indicators');
REPLACE INTO "sys_i18n" VALUES (110, 'menu.perf.customTarget', '自定义指标', 'Custom Indicator Management');
REPLACE INTO "sys_i18n" VALUES (111, 'menu.perf.kpiKeyTarget', '关键指标报表', 'Key Performance Reports');
REPLACE INTO "sys_i18n" VALUES (112, 'menu.mml', 'MML', 'MML');
REPLACE INTO "sys_i18n" VALUES (113, 'menu.mml.ne', '网元操作', 'NE Operation');
REPLACE INTO "sys_i18n" VALUES (114, 'menu.mml.udm', 'UDM操作', 'UDM Operation');
REPLACE INTO "sys_i18n" VALUES (115, 'menu.mml.set', 'MML设置', 'MML Settings');
REPLACE INTO "sys_i18n" VALUES (116, 'menu.mml.omc', 'OMC操作', 'OMC Operation');
REPLACE INTO "sys_i18n" VALUES (117, 'menu.perf.taskRemark', '任务管理菜单', 'Task Management Menu');
REPLACE INTO "sys_i18n" VALUES (118, 'menu.perf.dataRemark', '性能数据菜单', 'Performance Data Menu');
REPLACE INTO "sys_i18n" VALUES (119, 'menu.dashboard.smscCDR.content', '可见短信内容', 'Visible SMS content');
REPLACE INTO "sys_i18n" VALUES (120, 'menu.perf.thresholdRemark', '性能门限菜单', 'Performance Threshold Menu');
REPLACE INTO "sys_i18n" VALUES (121, 'menu.perf.kpiRemark', '黄金指标菜单', 'Key Performance Indicator Menu');
REPLACE INTO "sys_i18n" VALUES (122, 'menu.perf.customTargetRemark', '自定义指标菜单', 'Custom Indicator Management Menu');
REPLACE INTO "sys_i18n" VALUES (123, 'menu.dashboard.smfCDRByIMSI', '数据流量报表', 'Data Usage Report');
REPLACE INTO "sys_i18n" VALUES (124, 'menu.mmlRemark', 'MML管理目录', 'MML Management Catalog');
REPLACE INTO "sys_i18n" VALUES (125, 'menu.mml.neRemark', '网元操作菜单', 'Network Element Operations Menu');
REPLACE INTO "sys_i18n" VALUES (126, 'menu.mml.udmRemark', '网元UDM用户数据菜单', 'Network Element UDM User Data Menu');
REPLACE INTO "sys_i18n" VALUES (127, 'menu.mml.setRemark', 'MML设置菜单', 'MML Setup Menu');
REPLACE INTO "sys_i18n" VALUES (128, 'menu.mml.omcRemark', 'OMC操作菜单', 'OMC Operation Menu');
REPLACE INTO "sys_i18n" VALUES (129, 'menu.dashboard.sgwcCDR', '漫游数据话单', 'Roaming Data CDR');
REPLACE INTO "sys_i18n" VALUES (130, 'menu.security', '安全', 'Security');
REPLACE INTO "sys_i18n" VALUES (131, 'menu.system.systemSet', '系统设置', 'System Settings');
REPLACE INTO "sys_i18n" VALUES (132, 'menu.system.systemResource', '系统资源', 'System Resources');
REPLACE INTO "sys_i18n" VALUES (133, 'log.operate.title.sgwcCDR', '漫游数据话单', 'Roaming Data CDR');
REPLACE INTO "sys_i18n" VALUES (134, 'menu.securityRemark', '安全管理目录', 'Security Management Catalog');
REPLACE INTO "sys_i18n" VALUES (135, 'menu.system.systemSetRemark', '系统设置菜单', 'System Settings Menu');
REPLACE INTO "sys_i18n" VALUES (136, 'menu.system.systemResourceRemark', '系统资源 cpu io network菜单', 'System Resources cpu io network menu');
REPLACE INTO "sys_i18n" VALUES (137, 'dictData.offline', '离线', 'Offline');
REPLACE INTO "sys_i18n" VALUES (138, 'dictData.online', '在线', 'Online');
REPLACE INTO "sys_i18n" VALUES (139, 'menu.neData.baseStation', '基站状态', 'Radio State');
REPLACE INTO "sys_i18n" VALUES (140, 'menu.noData', '没有可访问菜单数据!', 'There is no accessible menu data!');
REPLACE INTO "sys_i18n" VALUES (141, 'menu.errNameExists', '操作菜单【{name}】失败,菜单名称已存在', 'Failed to operate menu [{name}], menu name already exists!');
REPLACE INTO "sys_i18n" VALUES (142, 'menu.errPathExists', '操作菜单【{name}】失败,菜单路由地址已存在', 'Failed to operate menu [{name}], menu routing address already exists!');
REPLACE INTO "sys_i18n" VALUES (143, 'menu.errFramePath', '操作菜单【{name}】失败非内部地址请以http(s)://开头', 'Failed to manipulate menu [{name}], non-internal address should start with http(s)://');
REPLACE INTO "sys_i18n" VALUES (144, 'menu.errParentStatus', '上级菜单未启用!', 'The parent menu is not enabled!');
REPLACE INTO "sys_i18n" VALUES (145, 'menu.errHasChildUse', '操作菜单【{name}】失败,存在使用子菜单数:{num}', 'Operation menu [{name}] failed, number of submenus in use exists: {num}');
REPLACE INTO "sys_i18n" VALUES (146, 'menu.errHasRoleUse', '操作菜单【{name}】失败,菜单已分配给角色数:{num}', 'Operation menu [{name}] failed, number of roles the menu has been assigned to: {num}');
REPLACE INTO "sys_i18n" VALUES (147, 'dictData.sex.un', '未选择', 'Not Selected');
REPLACE INTO "sys_i18n" VALUES (148, 'dictData.sex.male', '', 'Male');
REPLACE INTO "sys_i18n" VALUES (149, 'dictData.sex.female', '', 'Female');
REPLACE INTO "sys_i18n" VALUES (150, 'dictData.show', '显示', 'Show');
REPLACE INTO "sys_i18n" VALUES (151, 'dictData.hide', '隐藏', 'Hide');
REPLACE INTO "sys_i18n" VALUES (152, 'dictData.normal', '正常', 'Active');
REPLACE INTO "sys_i18n" VALUES (153, 'dictData.disable', '停用', 'Inactive');
REPLACE INTO "sys_i18n" VALUES (154, 'dictData.yes', '', 'Yes');
REPLACE INTO "sys_i18n" VALUES (155, 'dictData.no', '', 'No');
REPLACE INTO "sys_i18n" VALUES (156, 'dictData.success', '成功', 'Successful');
REPLACE INTO "sys_i18n" VALUES (157, 'dictData.fail', '失败', 'Failed');
REPLACE INTO "sys_i18n" VALUES (158, 'dictData.jobStatus.normal', '正常', 'Active');
REPLACE INTO "sys_i18n" VALUES (159, 'dictData.jobStatus.pause', '暂停', 'Inactive');
REPLACE INTO "sys_i18n" VALUES (160, 'dictData.jobGroup.Default', '默认', 'Default');
REPLACE INTO "sys_i18n" VALUES (161, 'dictData.jobGroup.System', '系统', 'System');
REPLACE INTO "sys_i18n" VALUES (162, 'dictData.operType.other', '其他', 'Other');
REPLACE INTO "sys_i18n" VALUES (163, 'dictData.operType.add', '新增', 'New');
REPLACE INTO "sys_i18n" VALUES (164, 'dictData.operType.edit', '修改', 'Modify');
REPLACE INTO "sys_i18n" VALUES (165, 'dictData.operType.delete', '删除', 'Delete');
REPLACE INTO "sys_i18n" VALUES (166, 'dictData.operType.auth', '授权', 'Authorization');
REPLACE INTO "sys_i18n" VALUES (167, 'dictData.operType.export', '导出', 'Export');
REPLACE INTO "sys_i18n" VALUES (168, 'dictData.operType.import', '导入', 'Import');
REPLACE INTO "sys_i18n" VALUES (169, 'dictData.operType.forced quit', '强退', 'Forced Retirement');
REPLACE INTO "sys_i18n" VALUES (170, 'dictData.operType.clear', '清空', 'Clear');
REPLACE INTO "sys_i18n" VALUES (171, 'dictData.trace.interface', '接口跟踪', 'Interface Tracing');
REPLACE INTO "sys_i18n" VALUES (172, 'dictData.trace.device', '设备跟踪', 'Module Tracing');
REPLACE INTO "sys_i18n" VALUES (173, 'dictData.trace.user', '用户跟踪', 'User Tracing');
REPLACE INTO "sys_i18n" VALUES (174, 'nbState.export.id', '编号', 'ID');
REPLACE INTO "sys_i18n" VALUES (175, 'nbState.export.name', '基站名称', 'Name');
REPLACE INTO "sys_i18n" VALUES (176, 'nbState.export.position', '基站位置', 'Position');
REPLACE INTO "sys_i18n" VALUES (177, 'nbState.export.address', 'IP地址', 'IP Address');
REPLACE INTO "sys_i18n" VALUES (178, 'nbState.export.nbName', '设备名称', 'RanNodeName');
REPLACE INTO "sys_i18n" VALUES (179, 'nbState.export.ueNum', '在线用户数', 'UE Number');
REPLACE INTO "sys_i18n" VALUES (180, 'nbState.export.state', '基站状态', 'State');
REPLACE INTO "sys_i18n" VALUES (181, 'nbState.export.time', '变更时间', 'Change Time');
REPLACE INTO "sys_i18n" VALUES (182, 'neHost.okBySSHLink', '设置免密直连成功', 'Setting up a password-free direct connection is successful');
REPLACE INTO "sys_i18n" VALUES (183, 'neHost.banNE', '禁止操作网元', 'Do not operate the NE');
REPLACE INTO "sys_i18n" VALUES (184, 'dictData.ne_host_type.redis', 'Redis', 'Redis');
REPLACE INTO "sys_i18n" VALUES (185, 'menu.tools.ping', '网络探测测试', 'Net Probing Test');
REPLACE INTO "sys_i18n" VALUES (186, 'menu.tools.iperf', '网络性能测试', 'Net Performance Test');
REPLACE INTO "sys_i18n" VALUES (187, 'dictData.jobSaveLog.no', '不记录', 'No Record');
REPLACE INTO "sys_i18n" VALUES (188, 'dictData.jobSaveLog.yes', '记录', 'Recorded');
REPLACE INTO "sys_i18n" VALUES (189, 'dictData.neVersionStatus.upload', '已上传', 'Uploaded');
REPLACE INTO "sys_i18n" VALUES (190, 'dictData.neVersionStatus.inactive', '未激活', 'Inactivated');
REPLACE INTO "sys_i18n" VALUES (191, 'dictData.neVersionStatus.active', '已激活', 'Activated');
REPLACE INTO "sys_i18n" VALUES (192, 'dictData.alarmStatus.history', '历史告警', 'Historical Alarm');
REPLACE INTO "sys_i18n" VALUES (193, 'dictData.alarmStatus.active', '活动告警', 'Active Alarm');
REPLACE INTO "sys_i18n" VALUES (194, 'dictData.export.code', '数据代码', 'Data Code');
REPLACE INTO "sys_i18n" VALUES (195, 'dictData.export.sort', '数据排序', 'Data Sort');
REPLACE INTO "sys_i18n" VALUES (196, 'dictData.export.label', '数据标签', 'Data Key');
REPLACE INTO "sys_i18n" VALUES (197, 'dictData.export.value', '数据键值', 'Data Value');
REPLACE INTO "sys_i18n" VALUES (198, 'dictData.export.type', '数据排序', 'Data Type');
REPLACE INTO "sys_i18n" VALUES (199, 'dictData.export.status', '数据状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (200, 'dictData.datascope.all', '全部数据权限', 'All data permissions');
REPLACE INTO "sys_i18n" VALUES (201, 'dictData.datascope.custom', '自定数据权限', 'Customized Data Rights');
REPLACE INTO "sys_i18n" VALUES (202, 'dictData.datascope.dept', '部门数据权限', 'Departmental Data Permissions');
REPLACE INTO "sys_i18n" VALUES (203, 'dictData.datascope.deptAndChid', '部门及以下数据权限', 'Department and below');
REPLACE INTO "sys_i18n" VALUES (204, 'dictData.datascope.self', '仅本人数据权限', 'Personal data access only');
REPLACE INTO "sys_i18n" VALUES (205, 'dictData.noData', '没有可访问字典编码数据!', 'There is no accessible dictionary code data!');
REPLACE INTO "sys_i18n" VALUES (206, 'dictData.errLabelExists', '操作数据【{name}】失败,该字典类型下标签名已存在', 'Failed to manipulate data [{name}], tag name already exists under this dictionary type!');
REPLACE INTO "sys_i18n" VALUES (207, 'dictType.sys_user_sex', '用户性别', 'User Gender');
REPLACE INTO "sys_i18n" VALUES (208, 'dictType.sys_show_hide', '菜单状态', 'Menu Status');
REPLACE INTO "sys_i18n" VALUES (209, 'dictType.sys_normal_disable', '系统开关', 'System switches');
REPLACE INTO "sys_i18n" VALUES (210, 'dictType.sys_job_status', '任务状态', 'Task Status');
REPLACE INTO "sys_i18n" VALUES (211, 'dictType.sys_job_group', '任务分组', 'Task Grouping');
REPLACE INTO "sys_i18n" VALUES (212, 'dictType.sys_yes_no', '系统是否', 'System or not');
REPLACE INTO "sys_i18n" VALUES (213, 'dictType.sys_oper_type', '操作类型', 'Operation Type');
REPLACE INTO "sys_i18n" VALUES (214, 'dictType.sys_common_status', '系统状态', 'System Status');
REPLACE INTO "sys_i18n" VALUES (215, 'dictType.trace_type', '跟踪类型', 'Trace Types');
REPLACE INTO "sys_i18n" VALUES (216, 'menu.tools.ps', '进程运行程序', 'Process Running Program');
REPLACE INTO "sys_i18n" VALUES (217, 'dictType.alarm_status', '告警日志类型', 'Alarm Log Type');
REPLACE INTO "sys_i18n" VALUES (218, 'menu.tools.net', '进程网络连接', 'Process Net Connection');
REPLACE INTO "sys_i18n" VALUES (219, 'dictType.ne_version_status', '网元软件版本状态', 'Network element software version status');
REPLACE INTO "sys_i18n" VALUES (220, 'dictType.sys_user_sex_remark', '用户性别列表', 'User gender list');
REPLACE INTO "sys_i18n" VALUES (221, 'dictType.sys_show_hide_remark', '菜单状态列表', 'Menu Status List');
REPLACE INTO "sys_i18n" VALUES (222, 'dictType.sys_normal_disable_remark', '系统开关列表', 'System switch list');
REPLACE INTO "sys_i18n" VALUES (223, 'dictType.sys_job_status_remark', '任务状态列表', 'Task Status List');
REPLACE INTO "sys_i18n" VALUES (224, 'dictType.sys_job_group_remark', '任务分组列表', 'Task Grouping List');
REPLACE INTO "sys_i18n" VALUES (225, 'dictType.sys_yes_no_remark', '系统是否列表', 'System whether list');
REPLACE INTO "sys_i18n" VALUES (226, 'dictType.sys_oper_type_remark', '操作类型列表', 'Operation type list');
REPLACE INTO "sys_i18n" VALUES (227, 'dictType.sys_common_status_remark', '登录状态列表', 'Login Status List');
REPLACE INTO "sys_i18n" VALUES (228, 'dictType.trace_type_remark', '跟踪类型', 'Trace Types');
REPLACE INTO "sys_i18n" VALUES (229, 'dictType.alarm_status_remark', '告警日志状态类型', 'Alarm Log Status Type');
REPLACE INTO "sys_i18n" VALUES (230, 'menu.trace.tshark', '信令分析', 'Signaling Analysis');
REPLACE INTO "sys_i18n" VALUES (231, 'menu.trace.wireshark', '信令跟踪', 'Signaling Trace');
REPLACE INTO "sys_i18n" VALUES (232, 'dictType.ne_version_status_remark', '网元软件版本状态', 'Network element software version status');
REPLACE INTO "sys_i18n" VALUES (233, 'dictType.export.id', '字典编号', 'Dictionary Number');
REPLACE INTO "sys_i18n" VALUES (234, 'dictType.export.name', '字典名称', 'Dictionary Name');
REPLACE INTO "sys_i18n" VALUES (235, 'dictType.export.type', '字典类型', 'Dictionary Type');
REPLACE INTO "sys_i18n" VALUES (236, 'dictType.export.status', '字典状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (237, 'dictType.sys_role_datascope', '系统角色数据范围', 'System Role Data Range');
REPLACE INTO "sys_i18n" VALUES (238, 'dictType.sys_role_datascope_remark', '系统角色数据范围映射', 'System Role Data Range Mapping');
REPLACE INTO "sys_i18n" VALUES (239, 'dictType.noData', '没有可访问字典类型数据!', 'There is no accessible dictionary type data!');
REPLACE INTO "sys_i18n" VALUES (240, 'dictType.errNameExists', '操作字典【{name}】失败,字典名称已存在', 'Failed to manipulate dictionary [{name}], dictionary name already exists!');
REPLACE INTO "sys_i18n" VALUES (241, 'dictType.errTypeExists', '操作字典【{name}】失败,字典类型已存在', 'Failed to manipulate dictionary [{name}], dictionary type already exists!');
REPLACE INTO "sys_i18n" VALUES (242, 'dept.root', '系统', 'System');
REPLACE INTO "sys_i18n" VALUES (243, 'dept.root.item1', '未分配', 'Unallocated');
REPLACE INTO "sys_i18n" VALUES (244, 'dept.noData', '没有可访问部门数据!', 'There is no accessible department data!');
REPLACE INTO "sys_i18n" VALUES (245, 'dept.errParentDelFlag', '上级部门【{name}】已删除,不允许新增', 'The parent department [{name}] has been deleted and is not allowed to be added.');
REPLACE INTO "sys_i18n" VALUES (246, 'dept.errParentStatus', '上级部门【{name}】停用,不允许新增', 'Parent department [{name}] is deactivated, additions are not allowed!');
REPLACE INTO "sys_i18n" VALUES (247, 'dept.errNameExists', '操作部门【{name}】失败,部门名称已存在', 'Manipulate department [{name}] failed, department name already exists!');
REPLACE INTO "sys_i18n" VALUES (248, 'dept.errParentID', '操作部门【{name}】失败,上级部门不能是自己', 'Failed to operate department [{name}], the parent department cannot be itself.');
REPLACE INTO "sys_i18n" VALUES (249, 'dept.errHasChildUse', '操作失败,该部门包含未停用的子部门数量:{num}', 'Operation failed, the department contains undeactivated sub-departments number: {num}');
REPLACE INTO "sys_i18n" VALUES (250, 'dept.errHasUserUse', '不允许删除,部门已分配给用户数:{num}', 'Deletion is not allowed, number of users the department has been assigned to: {num}');
REPLACE INTO "sys_i18n" VALUES (251, 'config.sys.user.initPassword', '用户管理-账号初始密码', 'User Management-Account Initial Password');
REPLACE INTO "sys_i18n" VALUES (252, 'config.sys.account.captchaEnabled', '账号自助-验证码开关', 'Account self-help-Certification code switch');
REPLACE INTO "sys_i18n" VALUES (253, 'config.sys.account.registerUser', '账号自助-是否开启用户注册功能', 'Account self-service-Whether to enable the user registration function');
REPLACE INTO "sys_i18n" VALUES (254, 'config.sys.user.maxRetryCount', '用户管理-密码最大错误次数', 'User Management-Maximum number of password errors');
REPLACE INTO "sys_i18n" VALUES (255, 'config.sys.user.lockTime', '用户管理-密码锁定时间', 'User Management-Password Lock Time');
REPLACE INTO "sys_i18n" VALUES (256, 'config.monitor.sysResource.storeDays', '监控-系统资源-数据保留时长', 'Monitor-System Resources-Data retention time');
REPLACE INTO "sys_i18n" VALUES (257, 'config.sys.logo.type', '系统设置-LOGO类型', 'System Settings-Logo Type');
REPLACE INTO "sys_i18n" VALUES (258, 'config.sys.logo.filePathIcon', '系统设置-LOGO文件icon', 'System Settings-Logo File icon');
REPLACE INTO "sys_i18n" VALUES (259, 'config.sys.logo.filePathBrand', '系统设置-LOGO文件brand', 'System Settings-Logo File Brand');
REPLACE INTO "sys_i18n" VALUES (260, 'config.sys.loginBackground', '系统设置-登录界面背景', 'System Settings-Login Interface Background');
REPLACE INTO "sys_i18n" VALUES (261, 'config.sys.title', '系统设置-系统名称', 'System Settings-System Name');
REPLACE INTO "sys_i18n" VALUES (262, 'config.sys.copyright', '系统设置-版权声明', 'System Settings-Copyright Notice');
REPLACE INTO "sys_i18n" VALUES (263, 'config.sys.user.initPasswordRemark', '导入用户初始化密码', 'Import user initialization password');
REPLACE INTO "sys_i18n" VALUES (264, 'config.sys.account.captchaEnabledRemark', '是否开启验证码功能true开启false关闭', 'Whether to enable the verification code function (true on, false off)');
REPLACE INTO "sys_i18n" VALUES (265, 'config.sys.account.registerUserRemark', '是否开启注册用户功能true开启false关闭', 'Whether to enable the function of registered users (true on, false off)');
REPLACE INTO "sys_i18n" VALUES (266, 'config.sys.user.maxRetryCountRemark', '密码最大错误次数', 'Maximum number of password errors');
REPLACE INTO "sys_i18n" VALUES (267, 'config.sys.user.lockTimeRemark', '密码锁定时间,单位分钟默认10分钟', 'Password lock time in minutes (default 10 minutes)');
REPLACE INTO "sys_i18n" VALUES (268, 'config.monitor.sysResource.storeDaysRemark', '监控-系统资源-数据保留时长,单位天。根据当前日期,删除超过保留时长的日期数据信息。', 'Monitor-System Resources-Data retention time, in days. According to the current date, delete the date data information that exceeds the retention time.');
REPLACE INTO "sys_i18n" VALUES (269, 'config.sys.logo.typeRemark', '全图brand
小图icon', 'Full image: brand
Small image: icon');
REPLACE INTO "sys_i18n" VALUES (270, 'config.sys.logo.filePathIconRemark', '文件支持网络地址图片和内部上传的文件路径', 'File support for web address images and file paths for internal uploads');
REPLACE INTO "sys_i18n" VALUES (271, 'config.sys.logo.filePathBrandRemark', '文件支持网络地址图片和内部上传的文件路径', 'File support for web address images and paths to internally uploaded files');
REPLACE INTO "sys_i18n" VALUES (272, 'config.sys.loginBackgroundRemark', '文件支持网络地址图片和内部上传的文件路径,默认背景用#号', 'The file supports web address images and internal upload file paths with a # in the default background');
REPLACE INTO "sys_i18n" VALUES (273, 'config.sys.titleRemark', '系统名称长度限制20位字符串', 'System name length limit of 20-digit string');
REPLACE INTO "sys_i18n" VALUES (274, 'config.sys.copyrightRemark', '底脚固定条,左侧放置版权声明', 'Footer fixing strip with copyright notice on the left side');
REPLACE INTO "sys_i18n" VALUES (275, 'config..export.id', '参数编号', 'ID');
REPLACE INTO "sys_i18n" VALUES (276, 'config..export.name', '参数名称', 'Config Name');
REPLACE INTO "sys_i18n" VALUES (277, 'config..export.key', '参数键名', 'Config Key');
REPLACE INTO "sys_i18n" VALUES (278, 'config..export.value', '参数键值', 'Config Value');
REPLACE INTO "sys_i18n" VALUES (279, 'config..export.type', '系统内置', 'Built In');
REPLACE INTO "sys_i18n" VALUES (280, 'config..export.remark', '参数说明', 'Config Description');
REPLACE INTO "sys_i18n" VALUES (281, 'config.sys.titleValue', 'Core Network', 'Core Network');
REPLACE INTO "sys_i18n" VALUES (282, 'config.sys.copyrightValue', 'Copyright ©2025 Core Network', 'Copyright ©2025 Core Network');
REPLACE INTO "sys_i18n" VALUES (283, 'config.noData', '没有可访问参数配置数据!', 'No parameter configuration data is accessible!');
REPLACE INTO "sys_i18n" VALUES (284, 'config.errKey', '无效 key', 'Invalid key');
REPLACE INTO "sys_i18n" VALUES (285, 'config.errValueEq', '变更状态与旧值相等!', 'Change state is equal to the old value!');
REPLACE INTO "sys_i18n" VALUES (286, 'config.errKeyExists', '操作参数配置【{name}】失败,参数键名已存在', 'Failed to manipulate parameter configuration [{name}], parameter key name already exists!');
REPLACE INTO "sys_i18n" VALUES (287, 'config.errDelete', '删除参数配置信息失败!', 'Deletion of parameter configuration information failed!');
REPLACE INTO "sys_i18n" VALUES (288, 'config.errType', '操作含有内置参数,禁止删除!', 'The operation contains built-in parameters and deletion is prohibited!');
REPLACE INTO "sys_i18n" VALUES (289, 'job.monitor_sys_resource', '监控-系统资源', 'Monitor-System Resources');
REPLACE INTO "sys_i18n" VALUES (290, 'job.monitor_sys_resource_remark', '系统资源CPU/IO/Netword收集
interval单位分钟平均分钟资源情况
请根据cron表达式的时间单位分钟传入参数interva值', 'System Resource CPU/IO/Netword Collection
interval unit minutes, average minute resource situation
Note: Please pass the value of the parameter interva according to the time unit minutes of the cron expression');
REPLACE INTO "sys_i18n" VALUES (291, 'job.delete_ne_config_backup', '删除-过期配置文件备份', 'Delete-Expired NE ETC Backup File');
REPLACE INTO "sys_i18n" VALUES (292, 'job.delete_ne_config_backup_remark', 'storeDays表示保留最近天数的数据记录', 'storeDays: indicates that the most recent days of data records are kept.');
REPLACE INTO "sys_i18n" VALUES (293, 'job.delete_alarm_record', '删除-过期告警记录', 'Delete-Expired Alarm Records');
REPLACE INTO "sys_i18n" VALUES (294, 'job.delete_alarm_record_remark', 'storeDays表示保留最近天数的数据记录
storeNum保留数量默认保留7个', 'storeDays: indicates that the most recent days of data records are kept.
storeNum: the number of reservations, the default reservation is 7.');
REPLACE INTO "sys_i18n" VALUES (295, 'job.delete_kpi_record', '删除-过期指标记录', 'Delete-Expired KPI Records');
REPLACE INTO "sys_i18n" VALUES (296, 'job.delete_kpi_record_remark', 'storeDays表示保留最近天数的数据记录
neList表示匹配的网元类型', 'storeDays: Indicates the most recent days of data records retained
neList: Indicates the type of network elements matched');
REPLACE INTO "sys_i18n" VALUES (297, 'menu.neData.backupData', '导出文件', 'Exponted File');
REPLACE INTO "sys_i18n" VALUES (298, 'config.sys.user.passwordPolicyNot', '未配置密码策略', 'Password policy not configured');
REPLACE INTO "sys_i18n" VALUES (299, 'job.export.jobID', '任务编号', 'ID');
REPLACE INTO "sys_i18n" VALUES (300, 'job.export.jobName', '任务名称', 'Name');
REPLACE INTO "sys_i18n" VALUES (301, 'job.export.jobGroupName', '任务组名', 'Group');
REPLACE INTO "sys_i18n" VALUES (302, 'job.export.invokeTarget', '调用目标', 'Invoke');
REPLACE INTO "sys_i18n" VALUES (303, 'job.export.targetParams', '传入参数', 'Incoming Parameters');
REPLACE INTO "sys_i18n" VALUES (304, 'job.export.cronExpression', 'cron表达式', 'Cron');
REPLACE INTO "sys_i18n" VALUES (305, 'job.export.status', '状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (306, 'job.export.remark', '备注说明', 'Description');
REPLACE INTO "sys_i18n" VALUES (307, 'job.export.jobLogID', '任务日志编号', 'ID');
REPLACE INTO "sys_i18n" VALUES (308, 'job.export.jobLogStatus', '任务日志状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (309, 'job.export.jobLogTime', '任务日志时间', 'Time');
REPLACE INTO "sys_i18n" VALUES (310, 'job.noData', '没有可访问调度任务数据!', 'There is no accessible scheduling task data!');
REPLACE INTO "sys_i18n" VALUES (311, 'job.errTargetParams', '操作调度任务【{name}】失败任务传入参数json字符串不正确', 'Failed to operate scheduling task [{name}] with incorrect task incoming parameter json string!');
REPLACE INTO "sys_i18n" VALUES (312, 'job.errCronExpression', '操作调度任务【{name}】失败Cron表达式不正确', 'Scheduled task [{name}] failed with incorrect Cron expression!');
REPLACE INTO "sys_i18n" VALUES (313, 'job.errJobExists', '调度任务新增【{name}】失败,同任务组内有相同任务名称', 'Failed to add a new task [{name}] to a scheduling task, same task name in the same task group');
REPLACE INTO "sys_i18n" VALUES (314, 'job.statusEq', '变更状态与旧值相等!', 'The change state is equal to the old value!');
REPLACE INTO "sys_i18n" VALUES (315, 'role.system', '系统', 'System');
REPLACE INTO "sys_i18n" VALUES (316, 'role.admin', '管理人员', 'Administrator');
REPLACE INTO "sys_i18n" VALUES (317, 'role.operator', '运维人员', 'Operators');
REPLACE INTO "sys_i18n" VALUES (318, 'role.monitor', '监控人员', 'Monitor');
REPLACE INTO "sys_i18n" VALUES (319, 'role.vistor', '普通用户', 'General Users');
REPLACE INTO "sys_i18n" VALUES (320, 'role.systemRemark', '系统,无法修改删除', 'System, cannot modify or delete');
REPLACE INTO "sys_i18n" VALUES (321, 'role.adminRemark', '管理人员 可以对设备进行任何操作', 'Administrators can perform any operation on the device');
REPLACE INTO "sys_i18n" VALUES (322, 'role.operatorRemark', '运维人员 可以从设备读取数据,并对设备进行配置,但是不能对设备进行软件升级操作。', 'Operation and maintenance personnel can read data from the device and configure the device, but cannot perform software upgrade operations on the device.');
REPLACE INTO "sys_i18n" VALUES (323, 'role.monitorRemark', '监控人员 只能从设备读取数据,而不能对设备进行任何设置', 'Monitoring personnel Can only read data from the device, but cannot make any settings on the device');
REPLACE INTO "sys_i18n" VALUES (324, 'role.vistorRemark', '普通用户 只可看系统相关信息', 'Ordinary users can only see system-related information');
REPLACE INTO "sys_i18n" VALUES (325, 'role.export.id', '角色编号', 'Role Number');
REPLACE INTO "sys_i18n" VALUES (326, 'role.export.name', '角色名称 ', 'Role Name');
REPLACE INTO "sys_i18n" VALUES (327, 'role.export.key', '角色键值', 'Role Key');
REPLACE INTO "sys_i18n" VALUES (328, 'role.export.sort', '角色顺序', 'Role Sort');
REPLACE INTO "sys_i18n" VALUES (329, 'role.export.dataScope', '角色数据范围', 'Role Data Range');
REPLACE INTO "sys_i18n" VALUES (330, 'role.export.status', '角色状态', 'Role Status');
REPLACE INTO "sys_i18n" VALUES (331, 'role.noData', '没有可访问角色数据!', 'There is no accessible role data!');
REPLACE INTO "sys_i18n" VALUES (332, 'role.statusEq', '变更状态与旧值相等!', 'The change status is equal to the old value!');
REPLACE INTO "sys_i18n" VALUES (333, 'role.errNameExists', '操作角色【{name}】失败,角色名称已存在', 'Manipulating role [{name}] failed, role name already exists!');
REPLACE INTO "sys_i18n" VALUES (334, 'role.errKeyExists', '操作角色【{name}】失败,角色键值已存在', 'Failed to manipulate role [{name}], role key already exists!');
REPLACE INTO "sys_i18n" VALUES (335, 'post.admin', '系统', 'Systems');
REPLACE INTO "sys_i18n" VALUES (336, 'post.operator', '管理', 'Management');
REPLACE INTO "sys_i18n" VALUES (337, 'post.monitor', '运维', 'Operation & Maintenance');
REPLACE INTO "sys_i18n" VALUES (338, 'post.visitor', '监控', 'Monitoring');
REPLACE INTO "sys_i18n" VALUES (339, 'post.export.id', '岗位编号 ', 'Position Number');
REPLACE INTO "sys_i18n" VALUES (340, 'post.export.code', '岗位编码', 'Position Code');
REPLACE INTO "sys_i18n" VALUES (341, 'post.export.name', '岗位名称', 'Position Name');
REPLACE INTO "sys_i18n" VALUES (342, 'post.export.sort', '岗位排序', 'Position Sort');
REPLACE INTO "sys_i18n" VALUES (343, 'post.export.status', '岗位状态', 'Position Status');
REPLACE INTO "sys_i18n" VALUES (344, 'post.noData', '没有可访问岗位数据!', 'There is no accessible post data!');
REPLACE INTO "sys_i18n" VALUES (345, 'post.errNameExists', '操作岗位【{name}】失败,岗位名称已存在已存在', 'Failed to manipulate post [{name}], post name already exists already exists');
REPLACE INTO "sys_i18n" VALUES (346, 'post.errCodeExists', '操作角色【{name}】失败,角色键值已存在', 'Failed to manipulate role [{name}], role key already exists.');
REPLACE INTO "sys_i18n" VALUES (347, 'user.export.id', '用户编号', 'User Number');
REPLACE INTO "sys_i18n" VALUES (348, 'user.export.name', '登录账号', 'Account');
REPLACE INTO "sys_i18n" VALUES (349, 'user.export.nick', '用户昵称', 'Nick Name');
REPLACE INTO "sys_i18n" VALUES (350, 'user.export.email', '电子邮箱', 'E-Mail');
REPLACE INTO "sys_i18n" VALUES (351, 'user.export.phone', '手机号码', 'Cell phone number');
REPLACE INTO "sys_i18n" VALUES (352, 'user.export.sex', '用户性别', 'Gender');
REPLACE INTO "sys_i18n" VALUES (353, 'user.export.status', '用户状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (354, 'user.export.deptID', '部门编号', 'Department number');
REPLACE INTO "sys_i18n" VALUES (355, 'user.export.deptName', '部门名称', 'Department');
REPLACE INTO "sys_i18n" VALUES (356, 'user.export.deptLeader', '部门负责人', 'Department Head');
REPLACE INTO "sys_i18n" VALUES (357, 'user.export.loginIP', '用户登录IP', 'Login Address');
REPLACE INTO "sys_i18n" VALUES (358, 'user.export.loginDate', '用户登录时间', 'Login Time');
REPLACE INTO "sys_i18n" VALUES (359, 'user.noData', '没有可访问用户数据!', 'No accessible user data!');
REPLACE INTO "sys_i18n" VALUES (360, 'user.statusEq', '变更状态与旧值相等!', 'The change status is equal to the old value!');
REPLACE INTO "sys_i18n" VALUES (361, 'user.errPasswdOld', '修改密码失败,旧密码错误', 'Change password failed, old password is wrong');
REPLACE INTO "sys_i18n" VALUES (362, 'user.errPasswdEqOld', '新密码不能与旧密码相同', 'New password cannot be the same as the old one');
REPLACE INTO "sys_i18n" VALUES (363, 'config.sys.user.passwordPolicyError', '密码至少{minLength}位,至少包含{specialChars}个特殊字符和至少{uppercase}个大写字母和至少{lowercase}个小写字母', 'Passwords are at least {minLength} digits long and contain at least {specialChars} special characters and at least {uppercase} uppercase letter and at least {lowercase} lowercase letter.');
REPLACE INTO "sys_i18n" VALUES (364, 'user.errEmailFormat', '操作用户【{name}】失败,邮箱格式错误', 'Failed to operate user [{name}], mailbox format error');
REPLACE INTO "sys_i18n" VALUES (365, 'user.errEmailExists', '操作用户【{name}】失败,邮箱已存在', 'Failed to operate user [{name}], mailbox already exists.');
REPLACE INTO "sys_i18n" VALUES (366, 'user.errPhoneFormat', '操作用户【{name}】失败,手机号码格式错误', 'Failed to operate user [{name}], cell phone number format is wrong.');
REPLACE INTO "sys_i18n" VALUES (367, 'user.errPhoneExists', '操作用户【{name}】失败,手机号码已存在', 'Failed to operate user [{name}], cell phone number already exists.');
REPLACE INTO "sys_i18n" VALUES (368, 'user.errNameExists', '操作用户【{name}】失败,登录账号已存在', 'Failed to operate user [{name}], login account already exists.');
REPLACE INTO "sys_i18n" VALUES (369, 'user.import.mustItem', '表格中必填列表项,{text}', 'Required list item in form, {text}');
REPLACE INTO "sys_i18n" VALUES (370, 'user.import.phoneExist', '用户编号:{id} 手机号码 {phone} 已存在', 'User ID: {id} cell phone number {phone} Existing');
REPLACE INTO "sys_i18n" VALUES (371, 'user.import.phoneFormat', '用户编号:{id} 手机号码 {phone} 格式错误', 'User ID: {id} cell phone number {phone} Wrong format');
REPLACE INTO "sys_i18n" VALUES (372, 'user.import.emailExist', '用户编号:{id} 用户邮箱:{email} 已存在', 'User ID: {id} User Email: {email} Existing');
REPLACE INTO "sys_i18n" VALUES (373, 'user.import.emailFormat', '用户编号:{id} 用户邮箱:{email} 格式错误', 'User ID: {id} Email: {email} Wrong Format');
REPLACE INTO "sys_i18n" VALUES (374, 'user.import.success', '用户编号:{id} 登录名称:{name} 导入成功', 'User ID:{id} Login name:{name} Imported successfully!');
REPLACE INTO "sys_i18n" VALUES (375, 'user.import.fail', '用户编号:{id} 登录名称:{name} 导入失败', 'User ID: {id} Login name: {name} Import failed');
REPLACE INTO "sys_i18n" VALUES (376, 'user.import.successUpdate', '用户编号:{id} 登录名称:{name} 更新成功', 'User ID: {id} Login name: {name} Update success');
REPLACE INTO "sys_i18n" VALUES (377, 'user.import.failUpdate', '用户编号:{id} 登录名称:{name} 更新失败', 'User ID: {id} Login Name: {name} Update Failed');
REPLACE INTO "sys_i18n" VALUES (378, 'user.import.failTip', '很抱歉,导入失败!共 {num} 条数据格式不正确,错误如下:', 'Sorry, the import failed! A total of {num} entries were not formatted correctly, the error is below:');
REPLACE INTO "sys_i18n" VALUES (379, 'user.import.successTip', '恭喜您,数据已全部导入成功!共 {num} 条,数据如下:', 'Congratulations, the data has been imported successfully! There are {num} entries with the following data:');
REPLACE INTO "sys_i18n" VALUES (380, 'app.common.err403', '无权访问 {method} {requestURI}', 'Unauthorized access {method} {requestURI}');
REPLACE INTO "sys_i18n" VALUES (381, 'app.common.err401', '无效身份授权', 'Invalid authorization');
REPLACE INTO "sys_i18n" VALUES (382, 'app.common.err400', '参数错误', 'Parameter error');
REPLACE INTO "sys_i18n" VALUES (383, 'app.common.exportEmpty', '导出数据记录为空', 'Export data record is empty');
REPLACE INTO "sys_i18n" VALUES (384, 'app.common.errOperateAdmin', '不允许操作内置用户', 'Built-in users are not allowed to operate');
REPLACE INTO "sys_i18n" VALUES (385, 'app.common.errOperateRole', '不允许操作内置角色', 'Built-in roles are not allowed to be operated');
REPLACE INTO "sys_i18n" VALUES (386, 'app.common.deleteSuccess', '删除成功:{num}', 'Deleted successfully: {num}');
REPLACE INTO "sys_i18n" VALUES (387, 'app.common.loginSuccess', '登录成功', 'Login Success');
REPLACE INTO "sys_i18n" VALUES (388, 'app.common.logoutSuccess', '注销成功', 'Logout Successful');
REPLACE INTO "sys_i18n" VALUES (389, 'app.common.errUnlock', '该用户未被锁定', 'The user is not locked');
REPLACE INTO "sys_i18n" VALUES (390, 'app.common.noLoginUser', '登录用户信息无效', 'Invalid login user information');
REPLACE INTO "sys_i18n" VALUES (391, 'app.common.rateLimitTip', '访问过于频繁,请稍候再试', 'Access too often, please try again later');
REPLACE INTO "sys_i18n" VALUES (392, 'log.operate.export.id', '操作编号', 'Log ID');
REPLACE INTO "sys_i18n" VALUES (393, 'log.operate.export.title', '模块名称', 'Module Name');
REPLACE INTO "sys_i18n" VALUES (394, 'log.operate.export.businessType', '业务类型', 'Business Type');
REPLACE INTO "sys_i18n" VALUES (395, 'log.operate.export.method', '操作方法', 'Operation Method');
REPLACE INTO "sys_i18n" VALUES (396, 'log.operate.export.requestMethod', '请求方式 ', 'Request Method');
REPLACE INTO "sys_i18n" VALUES (397, 'log.operate.export.operatorType', '操作类型', 'Operation Type');
REPLACE INTO "sys_i18n" VALUES (398, 'log.operate.export.operName', '操作人员', 'Operator');
REPLACE INTO "sys_i18n" VALUES (399, 'log.operate.export.deptName', '操作人员部门名称', 'Operator Department Name');
REPLACE INTO "sys_i18n" VALUES (400, 'log.operate.export.url', '请求链接地址', 'Request URL');
REPLACE INTO "sys_i18n" VALUES (401, 'log.operate.export.ip', '请求主机 ', 'Request Host');
REPLACE INTO "sys_i18n" VALUES (402, 'log.operate.export.location', '请求地址', 'Request Address');
REPLACE INTO "sys_i18n" VALUES (403, 'log.operate.export.param', '请求参数', 'Request Parameters');
REPLACE INTO "sys_i18n" VALUES (404, 'log.operate.export.msg', '操作信息', 'Operation Information');
REPLACE INTO "sys_i18n" VALUES (405, 'log.operate.export.status', '操作状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (406, 'log.operate.export.costTime', '消耗时间(毫秒)', 'Time Consumption (ms)');
REPLACE INTO "sys_i18n" VALUES (407, 'log.operate.export.operTime', '操作时间', 'Time');
REPLACE INTO "sys_i18n" VALUES (408, 'log.login.export.id', '记录编号', 'Log ID');
REPLACE INTO "sys_i18n" VALUES (409, 'log.login.export.userName', '登录账号', 'Login Account');
REPLACE INTO "sys_i18n" VALUES (410, 'log.login.export.status', '登录状态', 'Status');
REPLACE INTO "sys_i18n" VALUES (411, 'log.login.export.ip', '登录地址', 'Login Address');
REPLACE INTO "sys_i18n" VALUES (412, 'log.login.export.location', '登录地点', 'Login Location');
REPLACE INTO "sys_i18n" VALUES (413, 'log.login.export.browser', '浏览器', 'Browser');
REPLACE INTO "sys_i18n" VALUES (414, 'log.login.export.os', '操作系统', 'Operating System');
REPLACE INTO "sys_i18n" VALUES (415, 'log.login.export.msg', '登录信息', 'Login Information');
REPLACE INTO "sys_i18n" VALUES (416, 'log.login.export.time', '登录时间', 'Login Time');
REPLACE INTO "sys_i18n" VALUES (417, 'trace.tcpdump.noData', '找不到 {type} {id} 对应网元信息', 'Can it find {type} {id} information of the corresponding network element.');
REPLACE INTO "sys_i18n" VALUES (418, 'register.errUsername', '账号不能以数字开头可包含大写小写字母数字且不少于5位', 'The account number cannot start with a number, but can contain upper and lower case letters, numbers, and not less than 5 digits.');
REPLACE INTO "sys_i18n" VALUES (419, 'login.errPasswdExpire', '登录密码已过期', 'Login password has expired');
REPLACE INTO "sys_i18n" VALUES (420, 'register.errPasswdNotEq', '用户确认输入密码不一致', 'User confirms password inconsistency');
REPLACE INTO "sys_i18n" VALUES (421, 'register.success', '注册成功', 'Successful registration');
REPLACE INTO "sys_i18n" VALUES (422, 'register.successMsg', '{name} 注册成功 {id}', '{name} Register Successful {id}');
REPLACE INTO "sys_i18n" VALUES (423, 'log.operate.title.sysJobLog', '调度任务日志', 'Scheduling Task Logs');
REPLACE INTO "sys_i18n" VALUES (424, 'log.operate.title.sysJob', '调度任务', 'Scheduling Tasks');
REPLACE INTO "sys_i18n" VALUES (425, 'log.operate.title.tcpdump', '信令抓包', 'Signaling Capture');
REPLACE INTO "sys_i18n" VALUES (426, 'log.operate.title.sysConfig', '参数配置', 'Parameter Configuration');
REPLACE INTO "sys_i18n" VALUES (427, 'log.operate.title.sysDept', '部门', 'Sector');
REPLACE INTO "sys_i18n" VALUES (428, 'log.operate.title.sysDictData', '字典数据', 'Dictionary Data');
REPLACE INTO "sys_i18n" VALUES (429, 'log.operate.title.sysDictType', '字典类型', 'Dictionary type');
REPLACE INTO "sys_i18n" VALUES (430, 'log.operate.title.sysMenu', '菜单', 'Menu');
REPLACE INTO "sys_i18n" VALUES (431, 'log.operate.title.sysPost', '岗位', 'Positions');
REPLACE INTO "sys_i18n" VALUES (432, 'log.operate.title.sysProfile', '个人信息', 'Personal Information');
REPLACE INTO "sys_i18n" VALUES (433, 'log.operate.title.sysProfileAvatar', '个人头像', 'Personal avatar');
REPLACE INTO "sys_i18n" VALUES (434, 'log.operate.title.sysRole', '角色', 'Roles');
REPLACE INTO "sys_i18n" VALUES (435, 'log.operate.title.sysUser', '用户', 'User');
REPLACE INTO "sys_i18n" VALUES (436, 'log.operate.title.sysLogOper', '操作日志记录', 'Operation Logging');
REPLACE INTO "sys_i18n" VALUES (437, 'log.operate.title.sysLogLogin', '登录日志记录', 'Operation Logging');
REPLACE INTO "sys_i18n" VALUES (438, 'login.errNameOrPasswd', '用户不存在或密码错误', 'User does not exist or password is wrong');
REPLACE INTO "sys_i18n" VALUES (439, 'login.errDelFlag', '对不起,您的账号已被删除', 'Sorry, your account has been deleted');
REPLACE INTO "sys_i18n" VALUES (440, 'login.errStatus', '对不起,您的帐户已被禁用', 'Sorry, your account has been disabled');
REPLACE INTO "sys_i18n" VALUES (441, 'login.errRetryPasswd', '密码输入错误多次,帐户已被锁定', 'Password was entered incorrectly several times, account has been locked');
REPLACE INTO "sys_i18n" VALUES (442, 'captcha.err', '验证码错误', 'Captcha Error');
REPLACE INTO "sys_i18n" VALUES (443, 'captcha.errValid', '验证码已失效', 'Captcha is invalid');
REPLACE INTO "sys_i18n" VALUES (444, 'app.common.noUaOsBrowser', '未知 未知', 'Unknown Unknown');
REPLACE INTO "sys_i18n" VALUES (445, 'app.common.noIPregion', '内网', 'Intranet');
REPLACE INTO "sys_i18n" VALUES (446, 'app.common.unknown', '未知', 'Unknown');
REPLACE INTO "sys_i18n" VALUES (447, 'app.common.noNEInfo', '未找到匹配网元信息', 'No matching network element information found');
REPLACE INTO "sys_i18n" VALUES (448, 'ne.udm.errImportUserAuthFileFormat', '请上传.csv或.txt的格式文件。英文逗号分割txt格式imsi, ki, algo, amf, opc', 'Please upload a file in the format of. csv or. txt. English comma separated txt format: imsi, ki, algo, amf, opc');
REPLACE INTO "sys_i18n" VALUES (449, 'ne.udm.errExportType', '导出文件类型支持CSV和txt', 'Export file types support CSV and txt');
REPLACE INTO "sys_i18n" VALUES (450, 'ne.udm.errImportUserSubFileFormat', '请上传.csv或.txt的格式文件。英文逗号分割txt格式imsi, msisdn, ambr, nssai, arfb, sar, rat, cn, smf_sel, sm_dat, eps_dat', 'Please upload files in .csv or .txt format. English comma-separated txt format: imsi, msisdn, ambr, nssai, arfb, sar, rat, cn, smf_sel, sm_dat, eps_dat');
REPLACE INTO "sys_i18n" VALUES (451, 'log.operate.title.udmAuth', 'UDM鉴权用户', 'UDM Authentication');
REPLACE INTO "sys_i18n" VALUES (452, 'log.operate.title.udmSub', 'UDM签约用户', 'UDM Subscriber');
REPLACE INTO "sys_i18n" VALUES (453, 'dictType.active_alarm_type', '活动告警类型', 'Event Alarm Types');
REPLACE INTO "sys_i18n" VALUES (454, 'dictType.active_alarm_type_remark', '活动告警类型列表', 'List of Active Alarm Types');
REPLACE INTO "sys_i18n" VALUES (455, 'dictData.active_alarm_type.communication', '通信告警', 'Communication Alarm');
REPLACE INTO "sys_i18n" VALUES (456, 'dictData.active_alarm_type.equipment', '设备告警', 'Equipment Alarm');
REPLACE INTO "sys_i18n" VALUES (457, 'dictData.active_alarm_type.processing', '处理错误', 'Processing Failure Alarm');
REPLACE INTO "sys_i18n" VALUES (458, 'dictData.active_alarm_type.environmental', '环境告警', 'Environmental Alarm');
REPLACE INTO "sys_i18n" VALUES (459, 'dictData.active_alarm_type.qualityOfService', '服务质量', 'Quality of Service Alarm');
REPLACE INTO "sys_i18n" VALUES (460, 'dictType.active_clear_type', '告警清除类型', 'Alarm Clearing Types');
REPLACE INTO "sys_i18n" VALUES (461, 'dictType.active_clear_type_remark', '告警清除类型列表', 'List of Alarm Clearing Types');
REPLACE INTO "sys_i18n" VALUES (462, 'dictData.active_clear_type.notCleared', '告警未清除', 'Not cleared');
REPLACE INTO "sys_i18n" VALUES (463, 'dictData.active_clear_type.hand', '手动清除', 'Manually cleared');
REPLACE INTO "sys_i18n" VALUES (464, 'dictData.active_clear_type.auto', '自动清除', 'Automatically cleared');
REPLACE INTO "sys_i18n" VALUES (465, 'dictType.active_ack_state', '告警确认类型', 'Alarm Acknowledgement Types');
REPLACE INTO "sys_i18n" VALUES (466, 'dictType.active_ack_state_remark', '告警确认类型列表', 'Alarm Acknowledgement Type List');
REPLACE INTO "sys_i18n" VALUES (467, 'dictData.active_ack_state.unconfirmed', '未确认', 'Not Confirm');
REPLACE INTO "sys_i18n" VALUES (468, 'dictData.active_ack_state.confirmed', '已确认', 'Confirm');
REPLACE INTO "sys_i18n" VALUES (469, 'dictType.active_alarm_severity', '严重程度', 'Severity');
REPLACE INTO "sys_i18n" VALUES (470, 'dictType.active_alarm_severity_remark', '严重程度列表', 'Severity List');
REPLACE INTO "sys_i18n" VALUES (471, 'dictData.active_alarm_severity.critical', '严重告警', 'Critical');
REPLACE INTO "sys_i18n" VALUES (472, 'dictData.active_alarm_severity.major', '主要告警', 'Major');
REPLACE INTO "sys_i18n" VALUES (473, 'dictData.active_alarm_severity.minor', '次要告警', 'Minor');
REPLACE INTO "sys_i18n" VALUES (474, 'dictData.active_alarm_severity.warning', '警告告警', 'Warning');
REPLACE INTO "sys_i18n" VALUES (475, 'dictData.active_alarm_severity.event', '事件告警', 'Event');
REPLACE INTO "sys_i18n" VALUES (476, 'config.sys.officialUrl', '系统设置-官网链接', 'System Settings - Official Website Links');
REPLACE INTO "sys_i18n" VALUES (477, 'config.sys.helpDoc', '系统设置-系统使用文档', 'System Settings-System Documentation');
REPLACE INTO "sys_i18n" VALUES (478, 'config.sys.officialUrlRemark', '默认无地址用#号', 'Default no address with # sign');
REPLACE INTO "sys_i18n" VALUES (479, 'config.sys.helpDocRemark', '静态文件目录地址,使用{language}区分语言文件', 'Static file directory address, use {language} to distinguish language files');
REPLACE INTO "sys_i18n" VALUES (480, 'log.operate.title.neAction', '网元处理', 'Network Element Processing');
REPLACE INTO "sys_i18n" VALUES (481, 'log.operate.title.helpDoc', '系统使用文档', 'System Usage Documentation');
REPLACE INTO "sys_i18n" VALUES (482, 'menu.ueUser.n3iwf', 'N3IWF在线用户', 'N3IWF Online User');
REPLACE INTO "sys_i18n" VALUES (483, 'menu.neData.pcfSub', '用户策略控制信息', 'User PCC Information');
REPLACE INTO "sys_i18n" VALUES (484, 'menu.system.user.editRole', '修改用户角色', 'Modifying User Role');
REPLACE INTO "sys_i18n" VALUES (485, 'config.sys.i18nOpen', '国际化切换', 'Internationalization Switching');
REPLACE INTO "sys_i18n" VALUES (486, 'config.sys.i18nDefault', '国际化默认语言', 'Internationalization Default Language');
REPLACE INTO "sys_i18n" VALUES (487, 'user.export.role', '用户角色', 'Role');
REPLACE INTO "sys_i18n" VALUES (488, 'menu.system.setting.i18n', '国际化切换', 'Internationalization Switch');
REPLACE INTO "sys_i18n" VALUES (489, 'menu.system.setting.i18nRemark', '国际化多语言的切换选择', 'Internationalized multilingual switching options');
REPLACE INTO "sys_i18n" VALUES (490, 'dictType.index_status', '首页状态', 'Home Status');
REPLACE INTO "sys_i18n" VALUES (491, 'dictType.index_status_remark', '首页的网元状态颜色', 'Network element status colors on the home page');
REPLACE INTO "sys_i18n" VALUES (492, 'dictType.index_status.normal', '正常', 'Normal');
REPLACE INTO "sys_i18n" VALUES (493, 'dictType.index_status.abnormal', '异常', 'Abnormal');
REPLACE INTO "sys_i18n" VALUES (494, 'menu.log.neFile', '网元日志文件', 'NE Log File');
REPLACE INTO "sys_i18n" VALUES (495, 'menu.dashboard.overview.smfUeNum', '展示数据会话数', 'Display data session number');
REPLACE INTO "sys_i18n" VALUES (496, 'menu.dashboard.overview.imsUeNum', '展示语音会话数', 'Display the number of voice sessions');
REPLACE INTO "sys_i18n" VALUES (497, 'menu.dashboard.overview.gnbBase', '展示5G基站在线信息', 'Display 5G base station online information');
REPLACE INTO "sys_i18n" VALUES (498, 'menu.dashboard.overview.enbBase', '展示4G基站在线信息', 'Display 4G base station online information');
REPLACE INTO "sys_i18n" VALUES (499, 'job.ne_alarm_state_check', '网元告警-状态检查', 'NE Alarm-Health State Check');
REPLACE INTO "sys_i18n" VALUES (500, 'job.ne_alarm_state_check_remark', '检查网元的健康状况,在出现异常时发出警报。
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4', 'Checks the health of network elements and sends alerts in case of anomalies.
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4');
REPLACE INTO "sys_i18n" VALUES (501, 'menu.neUser.nssf', 'NSSF在线订阅数', 'NSSF Subscription Info');
REPLACE INTO "sys_i18n" VALUES (502, 'menu.neUser.nssfAmf', 'NSSF可用的注册AMF', 'NSSF Available AMFs');
REPLACE INTO "sys_i18n" VALUES (503, 'menu.monitor.topology', '拓扑信息', 'Topology Info');
REPLACE INTO "sys_i18n" VALUES (504, 'menu.monitor.topologyBuild', '拓扑图组编辑', 'Topological Graph Build');
REPLACE INTO "sys_i18n" VALUES (505, 'log.operate.title.chartGraph', '拓扑图组', 'Topological Graph');
REPLACE INTO "sys_i18n" VALUES (506, 'menu.monitor.topologyArchitecture', '网元拓扑组网', 'NE System Topology');
REPLACE INTO "sys_i18n" VALUES (507, 'menu.alarm', '告警', 'Alarm');
REPLACE INTO "sys_i18n" VALUES (508, 'menu.topology', '拓扑', 'Topology');
REPLACE INTO "sys_i18n" VALUES (509, 'config.sys.lockTime', '系统设置-锁屏超时时长', 'System Settings - Screen Lock Timeout Duration');
REPLACE INTO "sys_i18n" VALUES (510, 'config.sys.lockTimeRemark', '无操作时锁屏超时时长,单位(秒)。0表示无锁屏超时', 'Timeout of lock screen when no operation, unit (sec), 0 means no timeout of lock screen');
REPLACE INTO "sys_i18n" VALUES (511, 'sys.account.captchaType', '账号自助-验证码类型', 'Account Self Service - Captcha Type');
REPLACE INTO "sys_i18n" VALUES (512, 'sys.account.captchaTypeRemark', '使用验证码类型math数值计算char字符验证', 'Using CAPTCHA types (math numeric calculation, char character validation)');
REPLACE INTO "sys_i18n" VALUES (513, 'menu.dashboard', '仪表盘', 'Dashboard');
REPLACE INTO "sys_i18n" VALUES (514, 'menu.dashboard.overview', '总览', 'Overview');
REPLACE INTO "sys_i18n" VALUES (515, 'menu.dashboard.imsCDR', '语音话单', 'Voice CDR');
REPLACE INTO "sys_i18n" VALUES (516, 'dictType.cdr_sip_code', 'IMS-Voice-SIP响应代码类别类型', 'IMS-Voice-SIP Response Code Category Type');
REPLACE INTO "sys_i18n" VALUES (517, 'dictType.cdr_call_type', 'IMS-呼叫类型', 'IMS-Call Type');
REPLACE INTO "sys_i18n" VALUES (518, 'dictType.ue_auth_code', 'UE 事件认证代码类型', 'UE Event Authentication Code Type');
REPLACE INTO "sys_i18n" VALUES (519, 'dictType.ue_event_type', 'UE 事件类型', 'UE Event Type');
REPLACE INTO "sys_i18n" VALUES (520, 'dictData.cdr_sip_code.200', '200 正常通话', '200 OK');
REPLACE INTO "sys_i18n" VALUES (521, 'dictData.cdr_sip_code.403', '403 禁止访问', '403 Forbidden');
REPLACE INTO "sys_i18n" VALUES (522, 'dictData.cdr_sip_code.408', '408 请求超时', '408 Request Timeout');
REPLACE INTO "sys_i18n" VALUES (523, 'dictData.cdr_sip_code.500', '500 内部服务器错误', '500 Internal Server Error');
REPLACE INTO "sys_i18n" VALUES (524, 'dictData.cdr_call_type.audio', '语音', 'Voice');
REPLACE INTO "sys_i18n" VALUES (525, 'dictData.cdr_call_type.video', '视频', 'Video');
REPLACE INTO "sys_i18n" VALUES (526, 'dictData.ue_auth_code.200', '成功', 'Success');
REPLACE INTO "sys_i18n" VALUES (527, 'dictData.ue_auth_code.001', '网络失败', 'Network Failure');
REPLACE INTO "sys_i18n" VALUES (528, 'dictData.ue_auth_code.002', '接口失败', 'Interface Failure');
REPLACE INTO "sys_i18n" VALUES (529, 'dictData.ue_auth_code.003', 'MAC失败', 'MAC Failure');
REPLACE INTO "sys_i18n" VALUES (530, 'dictData.ue_auth_code.004', '同步失败', 'Synchronization failure');
REPLACE INTO "sys_i18n" VALUES (531, 'dictData.ue_auth_code.005', '不接受非5G认证', 'Non-5G Authentication Not Accepted');
REPLACE INTO "sys_i18n" VALUES (532, 'dictData.ue_auth_code.006', '响应失败', 'Response Failure');
REPLACE INTO "sys_i18n" VALUES (533, 'dictData.ue_auth_code.007', '未知', 'Unknown');
REPLACE INTO "sys_i18n" VALUES (534, 'dictData.ue_event_type.auth', '认证', 'Authentication');
REPLACE INTO "sys_i18n" VALUES (535, 'dictData.ue_event_type.detach', '注销', 'Detach');
REPLACE INTO "sys_i18n" VALUES (536, 'dictData.ue_event_type.state', 'CM状态', 'CM Status');
REPLACE INTO "sys_i18n" VALUES (537, 'dictType.ue_event_cm_state', 'UE 事件CM状态', 'UE Event CM Status');
REPLACE INTO "sys_i18n" VALUES (538, 'dictData.ue_event_cm_state.connected', '连接', 'Connected');
REPLACE INTO "sys_i18n" VALUES (539, 'dictData.ue_event_cm_state.idle', '空闲', 'Idle');
REPLACE INTO "sys_i18n" VALUES (540, 'dictData.ue_event_cm_state.inactive', '不活动', 'Inactive');
REPLACE INTO "sys_i18n" VALUES (541, 'dictData.cdr_sip_code.404', '404 找不到', '404 Not Found');
REPLACE INTO "sys_i18n" VALUES (542, 'dictData.cdr_sip_code.487', '487 请求已终止', '487 Request Terminated');
REPLACE INTO "sys_i18n" VALUES (543, 'dictData.cdr_sip_code.503', '503 服务不可用', '503 Service Unavailable');
REPLACE INTO "sys_i18n" VALUES (544, 'dictData.cdr_sip_code.504', '504 服务器超时', '504 Server Timeout');
REPLACE INTO "sys_i18n" VALUES (545, 'dictData.cdr_sip_code.603', '603 拒绝', '603 Decline');
REPLACE INTO "sys_i18n" VALUES (546, 'dictData.cdr_sip_code.606', '606 不可接受', '606 Not Acceptable');
REPLACE INTO "sys_i18n" VALUES (547, 'cache.name.token', '用户令牌', 'User Token');
REPLACE INTO "sys_i18n" VALUES (548, 'cache.name.sys_config', '参数管理', 'Parameters Management');
REPLACE INTO "sys_i18n" VALUES (549, 'cache.name.sys_dict', '字典管理', 'Dictionary Management');
REPLACE INTO "sys_i18n" VALUES (550, 'cache.name.captcha_codes', '验证码', 'Captcha');
REPLACE INTO "sys_i18n" VALUES (551, 'cache.name.repeat_submit', '防重提交', 'Resubmit');
REPLACE INTO "sys_i18n" VALUES (552, 'cache.name.rate_limit', '限流', 'Limit Traffic');
REPLACE INTO "sys_i18n" VALUES (553, 'cache.name.pwd_err_cnt', '登录账户密码错误次数', 'Number of Password Errors');
REPLACE INTO "sys_i18n" VALUES (554, 'cache.name.ne_info', '网元信息管理', 'NE Info Management');
REPLACE INTO "sys_i18n" VALUES (555, 'cache.name.ne_data', '网元数据管理', 'NE Data Management');
REPLACE INTO "sys_i18n" VALUES (556, 'dictData.cdr_call_type.sms', '短信', 'SMS');
REPLACE INTO "sys_i18n" VALUES (557, 'dictData.cdr_sip_code.202', '202 已接受', '202 Accepted');
REPLACE INTO "sys_i18n" VALUES (558, 'dictData.cdr_sip_code.488', '488 这里不接受', '488 Not Acceptable Here');
REPLACE INTO "sys_i18n" VALUES (559, 'dictData.cdr_sip_code.0', '0 原因不明', '0 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (560, 'log.operate.title.ws', 'WS会话', 'WS Sessions');
REPLACE INTO "sys_i18n" VALUES (561, 'log.operate.title.neHost', '网元主机', 'NE Host');
REPLACE INTO "sys_i18n" VALUES (562, 'neHost.noData', '没有可访问主机信息数据!', 'There is no accessible host information data!');
REPLACE INTO "sys_i18n" VALUES (563, 'neHost.errKeyExists', '主机信息操作【{name}】失败,同组内名称已存在', 'Host information operation [{name}] failed, name already exists in the same group');
REPLACE INTO "sys_i18n" VALUES (564, 'neHost.errByHostInfo', '连接失败,请检查连接参数后重试', 'Connection Failed, Please check connection parameters and retry');
REPLACE INTO "sys_i18n" VALUES (565, 'dictType.ne_host_type', '网元主机连接类型', 'Network element host connection type');
REPLACE INTO "sys_i18n" VALUES (566, 'dictType.ne_host_groupId', '网元主机分组', 'Network element host grouping');
REPLACE INTO "sys_i18n" VALUES (567, 'dictType.ne_host_authMode', '网元主机认证模式', 'Network element host authentication mode');
REPLACE INTO "sys_i18n" VALUES (568, 'dictData.ne_host_type.ssh', 'SSH', 'SSH');
REPLACE INTO "sys_i18n" VALUES (569, 'dictData.ne_host_type.telnet', 'Telnet', 'Telnet');
REPLACE INTO "sys_i18n" VALUES (570, 'dictData.ne_host_groupId.0', '其他', 'Other');
REPLACE INTO "sys_i18n" VALUES (571, 'dictData.ne_host_groupId.1', '网元', 'Network Elements');
REPLACE INTO "sys_i18n" VALUES (572, 'dictData.ne_host_groupId.2', '系统', 'System');
REPLACE INTO "sys_i18n" VALUES (573, 'dictData.ne_host_authMode.0', '密码认证', 'Password Authentication');
REPLACE INTO "sys_i18n" VALUES (574, 'dictData.ne_host_authMode.1', '私钥认证', 'Private key authentication');
REPLACE INTO "sys_i18n" VALUES (575, 'menu.tools.terminal', '主机终端', 'Host Terminal');
REPLACE INTO "sys_i18n" VALUES (576, 'menu.ne.neHost', '网元主机', 'NE Host');
REPLACE INTO "sys_i18n" VALUES (577, 'menu.ne.neHostCommand', '网元主机命令', 'NE Host CMD');
REPLACE INTO "sys_i18n" VALUES (578, 'log.operate.title.neHostCmd', '网元主机命令', 'NE Host CMD');
REPLACE INTO "sys_i18n" VALUES (579, 'neHostCmd.noData', '没有可访问主机命令数据!', 'No accessible host command data!');
REPLACE INTO "sys_i18n" VALUES (580, 'neHostCmd.errKeyExists', '主机命令操作【{name}】失败,同组内名称已存在', 'Host command operation [{name}] failed, name already exists in the same group');
REPLACE INTO "sys_i18n" VALUES (581, 'dictType.ne_host_cmd_groupId', '网元主机命令分组', 'Network element host command grouping');
REPLACE INTO "sys_i18n" VALUES (582, 'dictData.ne_host_cmd_groupId.0', '默认', 'Default');
REPLACE INTO "sys_i18n" VALUES (583, 'dictData.ne_host_cmd_groupId.1', '快速命令', 'Quick Commands');
REPLACE INTO "sys_i18n" VALUES (584, 'menu.ne.neInfo', '网元信息', 'NE Information');
REPLACE INTO "sys_i18n" VALUES (585, 'log.operate.title.neInfo', '网元信息', 'NE Information');
REPLACE INTO "sys_i18n" VALUES (586, 'neInfo.noData', '没有可访问网元信息数据!', 'There is no accessible network element information data!');
REPLACE INTO "sys_i18n" VALUES (587, 'neInfo.errKeyExists', '网元信息操作【{key}】失败,同类型下标识已存在', 'NE info operation [{key}] failed, identifier already exists under the same type');
REPLACE INTO "sys_i18n" VALUES (588, 'log.operate.title.imsCDR', '通话话单', 'Voice CDR');
REPLACE INTO "sys_i18n" VALUES (589, 'menu.dashboard.amfUE', '5G 终端事件', '5G UE Events');
REPLACE INTO "sys_i18n" VALUES (590, 'log.operate.title.amfUE', '5G 终端事件', '5G UE Events');
REPLACE INTO "sys_i18n" VALUES (591, 'dictData.ne_info_status.0', '离线', 'Offline');
REPLACE INTO "sys_i18n" VALUES (592, 'dictData.ne_info_status.1', '在线', 'Active');
REPLACE INTO "sys_i18n" VALUES (593, 'dictData.ne_info_status.2', '等待同步', 'Wait Sync');
REPLACE INTO "sys_i18n" VALUES (594, 'dictData.ne_info_status.3', '待机', 'Standby');
REPLACE INTO "sys_i18n" VALUES (595, 'dictType.ne_info_status', '网元信息状态', 'NE Info State');
REPLACE INTO "sys_i18n" VALUES (596, 'menu.ne.neQuickSetup', '网元快速安装', 'NE Quick Setup');
REPLACE INTO "sys_i18n" VALUES (597, 'log.operate.title.neConfig', '网元参数配置', 'NE Parameter Configuration');
REPLACE INTO "sys_i18n" VALUES (598, 'menu.ne.neLicense', '网元许可', 'NE License');
REPLACE INTO "sys_i18n" VALUES (599, 'log.operate.title.neLicense', '网元许可', 'NE License');
REPLACE INTO "sys_i18n" VALUES (600, 'menu.ne.neSoftware', '网元软件包', 'NE Software');
REPLACE INTO "sys_i18n" VALUES (601, 'log.operate.title.neSoftware', '网元软件包', 'NE Software');
REPLACE INTO "sys_i18n" VALUES (602, 'log.operate.title.neVersion', '网元版本', 'NE Version');
REPLACE INTO "sys_i18n" VALUES (603, 'menu.ne.neVersion', '网元版本', 'Ne Version');
REPLACE INTO "sys_i18n" VALUES (604, 'dictType.ne_license_status', '网元许可状态', 'NE License Status');
REPLACE INTO "sys_i18n" VALUES (605, 'dictData.ne_license_status.0', '无效', 'Invalid');
REPLACE INTO "sys_i18n" VALUES (606, 'dictData.ne_license_status.1', '有效', 'Valid');
REPLACE INTO "sys_i18n" VALUES (607, 'menu.dashboard.mocn', 'MOCN', 'MOCN');
REPLACE INTO "sys_i18n" VALUES (608, 'menu.monitor.cdr', '话单', 'CDR');
REPLACE INTO "sys_i18n" VALUES (609, 'menu.monitor.event', '事件', 'Events');
REPLACE INTO "sys_i18n" VALUES (610, 'post.export.time', '创建时间', 'Creation Time');
REPLACE INTO "sys_i18n" VALUES (611, 'role.export.time', '创建时间', 'Creation Time');
REPLACE INTO "sys_i18n" VALUES (612, 'dictData.ne_host_authMode.2', '免密认证', 'Confidentiality Auth Mode');
REPLACE INTO "sys_i18n" VALUES (613, 'menu.ne.neConfig', '网元配置', 'NE Config');
REPLACE INTO "sys_i18n" VALUES (614, 'dictData.ne_version_status.0', '', 'Nothing');
REPLACE INTO "sys_i18n" VALUES (615, 'dictData.ne_version_status.1', '已是最新', 'Updated');
REPLACE INTO "sys_i18n" VALUES (616, 'dictData.ne_version_status.2', '上一版本', 'Previous');
REPLACE INTO "sys_i18n" VALUES (617, 'dictData.ne_version_status.3', '有新版本', 'Has New');
REPLACE INTO "sys_i18n" VALUES (618, 'menu.fault.event', '事件通知', 'Event Notification');
REPLACE INTO "sys_i18n" VALUES (619, 'menu.dashboard.smfCDR', '数据话单', 'Data CDR');
REPLACE INTO "sys_i18n" VALUES (620, 'log.operate.title.smfCDR', '数据话单', 'Data CDR');
REPLACE INTO "sys_i18n" VALUES (621, 'config.sys.i18nDefaultRemark', '国际化默认语言可选择 en_US、zh_CN', 'Internationalization default language selectable en_US、zh_CN');
REPLACE INTO "sys_i18n" VALUES (622, 'config.sys.i18nOpenRemark', '是否显示切换的控件 true/false', 'Whether to display switched controls true/false');
REPLACE INTO "sys_i18n" VALUES (623, 'menu.dashboard.mmeUE', '4G 终端事件', '4G UE Events');
REPLACE INTO "sys_i18n" VALUES (624, 'log.operate.title.mmeUE', '4G 终端事件', '4G UE Events');
REPLACE INTO "sys_i18n" VALUES (625, 'menu.system.user.editPost', '修改用户岗位', 'Modify User Post');
REPLACE INTO "sys_i18n" VALUES (626, 'menu.dashboard.smscCDR', '短信话单', 'SMS CDR');
REPLACE INTO "sys_i18n" VALUES (627, 'log.operate.title.smscCDR', '短信话单', 'SMS CDR');
REPLACE INTO "sys_i18n" VALUES (628, 'menu.trace.pcapFile', '信令抓包文件', 'Signaling Capture File');
REPLACE INTO "sys_i18n" VALUES (629, 'menu.trace.taskAnalyze', '网元跟踪任务分析', 'NE Trace Task Analysis');
REPLACE INTO "sys_i18n" VALUES (630, 'job.ne_data_udm', '网元数据-UDM用户数据同步', 'NE Data-Sync UDM Data');
REPLACE INTO "sys_i18n" VALUES (631, 'menu.system.setting.doc', '系统使用文档', 'System User Documentation');
REPLACE INTO "sys_i18n" VALUES (632, 'menu.system.setting.official', '官网链接', 'Official Website');
REPLACE INTO "sys_i18n" VALUES (633, 'menu.system.setting.lock', '锁屏操作', 'Lockscreen Operation');
REPLACE INTO "sys_i18n" VALUES (634, 'menu.ne.neConfigBackup', '网元配置备份', 'NE Config Backups');
REPLACE INTO "sys_i18n" VALUES (635, 'job.ne_config_backup', '网元-配置文件定期备份', 'NE-Config Backup Regularly');
REPLACE INTO "sys_i18n" VALUES (636, 'job.ne_config_backup_remark', '网元配置文件定期备份到网管服务器
可查看网元配置备份记录进行下载或通过网元信息操作导入配置', 'Network Element Configuration files are regularly backed up to the OMC
View network element configuration backup records for downloading or importing configurations through network element information operations.');
REPLACE INTO "sys_i18n" VALUES (637, 'job.backup_export_table_sys_log_operate', '备份-操作日志表定期导出', 'Backup-Operation Log Table Periodic Export');
REPLACE INTO "sys_i18n" VALUES (638, 'job.backup_export_table_cdr_event_ims', '备份-语音话单表定期导出', 'Backup-Regular Export of voice bill forms');
REPLACE INTO "sys_i18n" VALUES (639, 'job.backup_export_table_cdr_event_smf', '备份-数据话单表定期导出', 'Backup-Regular Export of data sheet tables');
REPLACE INTO "sys_i18n" VALUES (640, 'cache.name.oauth2_codes', '客户端授权码', 'Oauth2 Client Code');
REPLACE INTO "sys_i18n" VALUES (641, 'cache.name.oauth2_devices', '客户端令牌', 'Oauth2 Token');
REPLACE INTO "sys_i18n" VALUES (642, 'job.backup_export_cdr', '备份-CDR数据定期导出', 'Backup-Periodic export of CDR Data');
REPLACE INTO "sys_i18n" VALUES (643, 'job.backup_export_cdr_remark', 'dataType: 类型支持 ims/smf/sgwc/smsc
fileType: 文件类型 csv/xlsx
hour: 数据时间从任务执行时间前的小时数', 'Backup-Periodic export of dataType: type support ims/smf/sgwc/smsc
fileType: file type csv/xlsx
hour: data time from the hour before the task execution time');
REPLACE INTO "sys_i18n" VALUES (644, 'menu.log.exportFile', '导出文件', 'Exported File');
REPLACE INTO "sys_i18n" VALUES (645, 'menu.perf.kpiCReport', '自定义指标数据', 'Custom Indicator Data');
REPLACE INTO "sys_i18n" VALUES (646, 'menu.trace.taskHLR', 'HLR 跟踪任务', 'HLR Trace Task');
REPLACE INTO "sys_i18n" VALUES (647, 'dictType.cdr_cause_code', 'CDR 响应原因代码类别类型', 'CDR Response Reason Code Category Type');
REPLACE INTO "sys_i18n" VALUES (648, 'dictData.cdr_cause_code.0', '未知错误', 'Unknown Error');
REPLACE INTO "sys_i18n" VALUES (649, 'dictData.cdr_cause_code.8', '运营者确定的禁止', 'Operator determined barring');
REPLACE INTO "sys_i18n" VALUES (650, 'dictData.cdr_cause_code.10', '禁止呼叫', 'Call Barred');
REPLACE INTO "sys_i18n" VALUES (651, 'dictData.cdr_cause_code.21', '呼叫被拒', 'Call rejected');
REPLACE INTO "sys_i18n" VALUES (652, 'dictData.cdr_cause_code.22', '数量已更改', 'Number changed');
REPLACE INTO "sys_i18n" VALUES (653, 'dictData.cdr_cause_code.27', '目的地出错', 'Destination out of order');
REPLACE INTO "sys_i18n" VALUES (654, 'dictData.cdr_cause_code.28', '数字格式无效(数字不完整)', 'Invalid number format (incomplete number)');
REPLACE INTO "sys_i18n" VALUES (655, 'dictData.cdr_cause_code.29', '设施被拒', 'Facility rejected');
REPLACE INTO "sys_i18n" VALUES (656, 'dictData.cdr_cause_code.30', '回复状态查询', 'Response to STATUS ENQUIRY');
REPLACE INTO "sys_i18n" VALUES (657, 'dictData.cdr_cause_code.38', '网络故障', 'Network out of order');
REPLACE INTO "sys_i18n" VALUES (658, 'dictData.cdr_cause_code.41', '临时故障', 'Temporary failure');
REPLACE INTO "sys_i18n" VALUES (659, 'dictData.cdr_cause_code.42', '交换设备拥塞', 'Switching equipment congestion');
REPLACE INTO "sys_i18n" VALUES (660, 'dictData.cdr_cause_code.47', '资源不可用', 'Resource unavailable, unspecified');
REPLACE INTO "sys_i18n" VALUES (661, 'dictData.cdr_cause_code.50', '请求的设施未订阅', 'Requested facility not subscribed');
REPLACE INTO "sys_i18n" VALUES (662, 'job.backup_export_table_cdr_event_smsc', '备份-短信话单表定期导出', 'Backup-Regular Export of SMS call list');
REPLACE INTO "sys_i18n" VALUES (663, 'job.backup_remove_file', '备份-定期删除备份目录下文件', 'Backup-Periodically Delete Directory Files');
REPLACE INTO "sys_i18n" VALUES (664, 'config.sys.homePage', '自定义主页', 'Custom Home Page');
REPLACE INTO "sys_i18n" VALUES (665, 'config.sys.homePageRemark', '选择列表中的任一页面作为主页路径', 'Select any page in the list as the homepage');
REPLACE INTO "sys_i18n" VALUES (666, 'menu.ne.neOverview', '网元概览', 'NE Overview');
REPLACE INTO "sys_i18n" VALUES (667, 'menu.ne.neOverviewRemark', '显示所有网元状态配置和license等概览信息', 'Displays overview information such as status, configuration and license of all network elements');
REPLACE INTO "sys_i18n" VALUES (668, 'job.backup_export_table_cdr_event_sgwc', '备份-漫游数据话单表定期导出', 'Backup-Regular Export of Roaming Data table');
REPLACE INTO "sys_i18n" VALUES (669, 'cache.name.i18n', '国际化语言管理', 'Internationalized Language Management');
REPLACE INTO "sys_i18n" VALUES (670, 'config.sys.user.passwordPolicy', '用户管理-默认密码策略强度', 'User Management-Default Password Policy Strength');
REPLACE INTO "sys_i18n" VALUES (671, 'config.sys.user.passwordPolicyRemark', 'minLength密码至少8个字符
specialChars至少包含2个特殊字符例如!@#$%^&*()
uppercase至少包含一个大写字母
lowercase至少包含一个小写字母', 'minLength: password should be at least 8 characters long
specialChars: at least 2 special characters (e.g. ! @#$%^&*())
uppercase: contain at least one uppercase letter
lowercase: contains at least one lowercase letter');
REPLACE INTO "sys_i18n" VALUES (672, 'config.sys.user.passwdExpire', '用户管理-密码有效期', 'User Management-Password Expiration Date');
REPLACE INTO "sys_i18n" VALUES (673, 'config.sys.user.passwdExpireRemark', '数值单位(小时)
expHours为过期时间0表示不启用
alertHours即将到期提醒时间', 'Numerical unit (hours)
expHours for the expiration time, 0 means not enabled
alertHours upcoming expiration reminder time');
REPLACE INTO "sys_i18n" VALUES (674, 'config.sys.user.passwdNotAllowedHistory', '用户管理-不允许使用最近密码次数', 'User Management-Not Allowed Recent Passwords');
REPLACE INTO "sys_i18n" VALUES (675, 'config.sys.user.passwdNotAllowedHistoryRemark', '创建新密码不等于之前使用的x次中的密码', 'Creating a new password that is not equal to the previously used password in x times');
REPLACE INTO "sys_i18n" VALUES (676, 'login.errPasswdHistory', '不允许使用最近密码', 'Recent passwords not allowed');
REPLACE INTO "sys_i18n" VALUES (677, 'log.operate.title.oauth2client', 'Oauth2客户端授权', 'Oauth2 Client Authorization');
REPLACE INTO "sys_i18n" VALUES (678, 'log.operate.title.pcfRule', '终端策略规则', 'UE PCC Rule');
REPLACE INTO "sys_i18n" VALUES (679, 'dictType.trace_msg_type', '跟踪消息类型', 'Trace Message Type');
REPLACE INTO "sys_i18n" VALUES (680, 'dictData.trace_msg_type.0', '请求', 'Request');
REPLACE INTO "sys_i18n" VALUES (681, 'dictData.trace_msg_type.1', '响应', 'Response');
REPLACE INTO "sys_i18n" VALUES (682, 'dictType.trace_msg_direct', '跟踪消息方向', 'Track Message Direction');
REPLACE INTO "sys_i18n" VALUES (683, 'dictData.trace_msg_direct.0', '接收', 'Receive');
REPLACE INTO "sys_i18n" VALUES (684, 'dictData.trace_msg_direct.1', '发送', 'Send');
REPLACE INTO "sys_i18n" VALUES (685, 'dictData.trace_interfaces.1', 'N1', 'N1');
REPLACE INTO "sys_i18n" VALUES (686, 'dictData.trace_interfaces.2', 'N2', 'N2');
REPLACE INTO "sys_i18n" VALUES (687, 'dictData.trace_interfaces.3', 'N1/N2', 'N1/N2');
REPLACE INTO "sys_i18n" VALUES (688, 'dictData.trace_interfaces.4', 'N4', 'N4');
REPLACE INTO "sys_i18n" VALUES (689, 'dictData.trace_interfaces.8', 'N8', 'N8');
REPLACE INTO "sys_i18n" VALUES (690, 'dictData.trace_interfaces.10', 'N10', 'N10');
REPLACE INTO "sys_i18n" VALUES (691, 'dictData.trace_interfaces.11', 'N11', 'N11');
REPLACE INTO "sys_i18n" VALUES (692, 'dictData.trace_interfaces.12', 'N12', 'N12');
REPLACE INTO "sys_i18n" VALUES (693, 'dictData.trace_interfaces.13', 'N13', 'N13');
REPLACE INTO "sys_i18n" VALUES (694, 'dictData.trace_interfaces.7', 'N7', 'N7');
REPLACE INTO "sys_i18n" VALUES (695, 'dictData.trace_interfaces.15', 'N15', 'N15');
REPLACE INTO "sys_i18n" VALUES (696, 'dictData.trace_interfaces.17', 'N17', 'N17');
REPLACE INTO "sys_i18n" VALUES (697, 'dictData.trace_interfaces.20', 'N20', 'N20');
REPLACE INTO "sys_i18n" VALUES (698, 'dictData.trace_interfaces.22', 'N22', 'N22');
REPLACE INTO "sys_i18n" VALUES (699, 'dictData.trace_interfaces.40', 'N40', 'N40');
REPLACE INTO "sys_i18n" VALUES (700, 'dictData.cdr_sip_code.302', '302 原因不明', '302 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (701, 'dictData.cdr_sip_code.402', '402 原因不明', '402 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (702, 'dictData.cdr_sip_code.480', '480 被叫挂断/拒接', '480 Temporarily Unavailable');
REPLACE INTO "sys_i18n" VALUES (703, 'dictData.cdr_sip_code.481', '481 原因不明', '481 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (704, 'dictData.cdr_sip_code.482', '482 发现环路', '482 Loop Detected');
REPLACE INTO "sys_i18n" VALUES (705, 'dictData.cdr_sip_code.486', '486 这里很忙', '486 Busy Here');
REPLACE INTO "sys_i18n" VALUES (706, 'dictData.cdr_sip_code.489', '489 原因不明', '489 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (707, 'dictData.cdr_sip_code.580', '580 原因不明', '580 Unknown Reason');
REPLACE INTO "sys_i18n" VALUES (708, 'alarm.export.alarmType', '告警类型', 'Alarm Type');
REPLACE INTO "sys_i18n" VALUES (709, 'alarm.export.origSeverity', '告警级别', 'Severity');
REPLACE INTO "sys_i18n" VALUES (710, 'alarm.export.alarmTitle', '告警标题', 'Alarm Title');
REPLACE INTO "sys_i18n" VALUES (711, 'alarm.export.eventTime', '告警产生时间', 'Event Time');
REPLACE INTO "sys_i18n" VALUES (712, 'alarm.export.alarmId', '告警唯一标识', 'Alarm ID');
REPLACE INTO "sys_i18n" VALUES (713, 'alarm.export.clearUser', '告警清除用户', 'Clear User');
REPLACE INTO "sys_i18n" VALUES (714, 'alarm.export.clearType', '告警清除类型', 'Clear Type');
REPLACE INTO "sys_i18n" VALUES (715, 'alarm.export.clearTime', '告警清除时间', 'Clear Time');
REPLACE INTO "sys_i18n" VALUES (716, 'log.operate.title.alarm', '告警', 'Alarm');
REPLACE INTO "sys_i18n" VALUES (717, 'ne.common.neType', '网元类型', 'NE Type');
REPLACE INTO "sys_i18n" VALUES (718, 'ne.common.neName', '网元名称', 'NE Name');
REPLACE INTO "sys_i18n" VALUES (719, 'ne.common.neId', '网元标识', 'NE ID');
REPLACE INTO "sys_i18n" VALUES (720, 'log.operate.title.udmVOIP', 'VOIP用户', 'UDM VOIP');
REPLACE INTO "sys_i18n" VALUES (721, 'log.operate.title.udmVolteIMS', 'VolteIMS用户', 'UDM VolteIMS');
REPLACE INTO "sys_i18n" VALUES (722, 'log.operate.title.backup', '备份', 'Backup');
REPLACE INTO "sys_i18n" VALUES (723, 'job.backup_export_table_cdr_event_smsc_remark', 'hour: 数据时间从任务执行时间前的小时数
tableName: 数据表名
columns: 支持字段
backupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time
tableName: data table name
columns: support fields
backupPath: backup output path /usr/local/omc/backup/{backupPath}');
REPLACE INTO "sys_i18n" VALUES (724, 'job.backup_export_table_cdr_event_sgwc_remark', 'hour: 数据时间从任务执行时间前的小时数
tableName: 数据表名
columns: 支持字段
backupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time
tableName: data table name
columns: support fields
backupPath: backup output path /usr/local/omc/backup/{backupPath}');
REPLACE INTO "sys_i18n" VALUES (725, 'job.backup_remove_file_remark', 'backupPath: 备份路径 /usr/local/omc/backup/{backupPath}
storeDays: 保留天数
storeNum: 保留数量默认保留7', 'backupPath: backup path /usr/local/omc/backup/{backupPath}
storeDays: retention days
storeNum: retention number, default retention 7');
REPLACE INTO "sys_i18n" VALUES (726, 'job.backup_export_udm', '备份-UDM数据定期导出', 'Backup-Periodic export of UDM Data');
REPLACE INTO "sys_i18n" VALUES (727, 'job.backup_export_udm_remark', 'dataType: 类型支持 auth/sub/voip/volte
fileType: 文件类型 csv/txt', 'Backup-Periodic export of dataType: type support auth/sub/voip/volte
fileType: file type csv/txt');
REPLACE INTO "sys_i18n" VALUES (728, 'dictData.cdr_sip_code_cause.0', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (729, 'dictData.cdr_sip_code_cause.200', '正常通话清除', 'Normal Call Clearing');
REPLACE INTO "sys_i18n" VALUES (730, 'dictData.cdr_sip_code_cause.202', '申请已被接受处理,但尚未完成 ', 'The request has been accepted for processing, but it hasn it completed yet');
REPLACE INTO "sys_i18n" VALUES (731, 'dictData.cdr_sip_code_cause.302', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (732, 'dictData.cdr_sip_code_cause.402', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (733, 'dictData.cdr_sip_code_cause.403', '拒接主叫用户', 'MO User Rejected');
REPLACE INTO "sys_i18n" VALUES (734, 'dictData.cdr_sip_code_cause.404', '被叫用户离线', 'MT User Offline');
REPLACE INTO "sys_i18n" VALUES (735, 'dictData.cdr_sip_code_cause.480', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (736, 'dictData.cdr_sip_code_cause.481', '电话无法拨出', 'Call cannot be dialed');
REPLACE INTO "sys_i18n" VALUES (737, 'dictData.cdr_sip_code_cause.482', '闪断', 'Flashback');
REPLACE INTO "sys_i18n" VALUES (738, 'dictData.cdr_sip_code_cause.486', '被叫用户忙', 'MT User Busy');
REPLACE INTO "sys_i18n" VALUES (739, 'dictData.cdr_sip_code_cause.487', '主叫挂断', 'MO User Disconnected');
REPLACE INTO "sys_i18n" VALUES (740, 'dictData.cdr_sip_code_cause.408', '服务器等待响应的时间过长', 'The server waits too long for a response');
REPLACE INTO "sys_i18n" VALUES (741, 'dictData.cdr_sip_code_cause.488', '媒体详细信息与服务器支持的内容不匹配', 'Media details didnt match what the server supports');
REPLACE INTO "sys_i18n" VALUES (742, 'dictData.cdr_sip_code_cause.489', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (743, 'dictData.cdr_sip_code_cause.500', '服务器本身出了问题', 'Something went wrong inside the server itself');
REPLACE INTO "sys_i18n" VALUES (744, 'dictData.cdr_sip_code_cause.503', '服务器超载或因维护而停机,无法处理呼叫', 'The server is overloaded or down for maintenance and can it process the call');
REPLACE INTO "sys_i18n" VALUES (745, 'dictData.cdr_sip_code_cause.504', '服务器尝试以您的名义与另一台服务器通信,但未及时收到回复,并超时了', 'The server tried to talk to another server on your behalf, didnt get a reply in time, and timed out');
REPLACE INTO "sys_i18n" VALUES (746, 'dictData.cdr_sip_code_cause.580', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO "sys_i18n" VALUES (747, 'dictData.cdr_sip_code_cause.603', '被叫拒接', 'MT explicitly rejected the call');
REPLACE INTO "sys_i18n" VALUES (748, 'dictData.cdr_sip_code_cause.606', '呼叫已到达用户设备,但会话设置的某些部分不可接受', 'The call reached the users device, but some parts of the session setup weren it acceptable');
REPLACE INTO "sys_i18n" VALUES (749, 'dictType.cdr_sip_code_cause', 'IMS-Voice-SIP响应代码类别类型原因', 'IMS-Voice-SIP Response Code Category Type Cause');
REPLACE INTO "sys_i18n" VALUES (750, 'job.backup_export_log', '备份-日志数据定期导出', 'Backup-Periodic export of Log Data');
REPLACE INTO "sys_i18n" VALUES (751, 'job.backup_export_log_remark', 'dataType: 类型支持 operate/login
fileType: 文件类型 csv/xlsx
hour: 数据时间从任务执行时间前的小时数', 'Backup-Periodic export of dataType: type support operate/login
fileType: file type csv/xlsx
hour: data time from the hour before the task execution time');
REPLACE INTO "sys_i18n" VALUES (752, 'job.ne_alarm_state_check_cmd', '网元告警-内存/CPU/磁盘检查', 'NE Alarm-Memory/CPU/Disk Checks');
REPLACE INTO "sys_i18n" VALUES (753, 'job.ne_alarm_state_check_cmd_remark', '检查网元的内存/CPU/磁盘检查健康状况,在出现过阈值时发出警报。
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4
AddInfo: 告警补充信息
cpuUseGt: CPU使用率大于 范围0~100*CPU核心数
memUseGt: 内存使用率大于, 范围0~100%
diskUseGt: 磁盘使用率大于, 范围0~100%', 'Checks the memory/CPU/disk check health of the network element and sends alerts when thresholds are crossed.
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4
AddInfo: Additional information on alarms
cpuUseGt: CPU utilization is greater than, range 0~100*number of CPU cores
memUseGt: Memory utilization greater than, range 0 to 100%
diskUseGt: Disk utilization greater than, range 0 to 100%');
REPLACE INTO "sys_i18n" VALUES (754, 'job.ne_alarm_state_check_license', '网元告警-License到期检查', 'NE Alarm-License Expire Check');
REPLACE INTO "sys_i18n" VALUES (755, 'job.ne_alarm_state_check_license_remark', '检查网元的License是否即将到期在出现过阈值时发出警报。
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4
AddInfo: 告警补充信息
dayLt: 天数小于默认30天', 'Checks if the network element is License is about to expire and sends an alert if a threshold is crossed.
Alarm type:
CommunicationAlarm=1
EquipmentAlarm=2
ProcessingFailure=3
EnvironmentalAlarm=4
QualityOfServiceAlarm=5
Severity:
Critical=1
Major=2
Minor=3
Warning=4
AddInfo: Additional information on alarms
dayLt: Days less than, default 30 days');
REPLACE INTO "sys_i18n" VALUES (756, 'dictData.trace_interfaces.14', 'N14', 'N14');
REPLACE INTO "sys_i18n" VALUES (757, 'dictData.trace_interfaces.5', 'N5', 'N5');
REPLACE INTO "sys_i18n" VALUES (758, "alarm.export.alarmCode", "告警编码", "Alarm Code");
REPLACE INTO "sys_i18n" VALUES (759, "config.sys.user.fristPasswdChangeRemark", "关闭改为false 开启改为true, 建议同时设置密码有效期", "Off to false On to true, it is recommended to set the password expiration date at the same time.");
REPLACE INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent');
REPLACE INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information');
REPLACE INTO `sys_i18n` VALUES (2002, 'menu.psap.agent.callback', '回拨管理', 'Callback Management');
REPLACE INTO `sys_i18n` VALUES (2003, 'callback.status.NEW', '新建', 'New');
REPLACE INTO `sys_i18n` VALUES (2004, 'callback.status.IN_PROGRESS', '处理中', 'In Progress');
REPLACE INTO `sys_i18n` VALUES (2005, 'callback.status.NO_ANSWER_1', '未应答1', 'No Answer 1');
REPLACE INTO `sys_i18n` VALUES (2006, 'callback.status.NO_ANSWER_2', '未应答2', 'No Answer 2');
REPLACE INTO `sys_i18n` VALUES (2007, 'callback.status.TIMEOUT', '超时', 'Timeout');
REPLACE INTO `sys_i18n` VALUES (2008, 'callback.status.PENDING', '挂起', 'Pending');
REPLACE INTO `sys_i18n` VALUES (2009, 'callback.status.CLOSED', '关闭', 'Closed');
REPLACE INTO `sys_i18n` VALUES (2010, 'job.export.cdr.mf', '定期导出MF话单', 'Periodic Export of MF Call Records');
REPLACE INTO `sys_i18n` VALUES (2011, 'job.psap.ticket.monitor', '回拨工单监控', 'Callback Ticket Monitoring');
REPLACE INTO `sys_i18n` VALUES (2012, 'menu.omc.cdr', '话单', 'Call Records');
REPLACE INTO `sys_i18n` VALUES (2013, 'menu.omc.cdr.mf', '紧急呼叫话单', 'Emergency Call Records');
REPLACE INTO `sys_i18n` VALUES (2014, 'menu.omc.cdr.crbt', '彩铃话单', 'Color Ring Back Tone Records');
REPLACE INTO `sys_i18n` VALUES (2015, 'menu.omc.cdr.mms', '彩信话单', 'Multimedia Message Service Records');
REPLACE INTO `sys_i18n` VALUES (2016, 'menu.ue.cbc.cbe', '广播', 'Broadcast');
REPLACE INTO `sys_i18n` VALUES (2017, 'log.operate.title.cbcMessage', '广播事件', 'Broadcast Event');

View File

@@ -0,0 +1,50 @@
-- ----------------------------
-- Table structure for sys_job
-- ----------------------------
CREATE TABLE IF NOT EXISTS "sys_job" (
"job_id" integer NOT NULL,
"job_name" text(64),
"job_group" text(64),
"invoke_target" text(64) NOT NULL,
"target_params" text(2048),
"cron_expression" text(64),
"misfire_policy" text(1),
"concurrent" text(1),
"status_flag" text(1),
"save_log" text(1),
"create_by" text(64),
"create_time" integer(20),
"update_by" text(64),
"update_time" integer(20),
"remark" text(500),
PRIMARY KEY ("job_id")
);
-- ----------------------------
-- Indexes structure for table sys_job
-- ----------------------------
CREATE UNIQUE INDEX IF NOT EXISTS "uk_name_group"
ON "sys_job" (
"job_name" ASC,
"job_group" ASC
);
-- ----------------------------
-- Records of sys_job
-- ----------------------------
REPLACE INTO "sys_job" VALUES (1, 'job.monitor_sys_resource', 'SYSTEM', 'monitor_sys_resource', '{"interval":5}', '0 0/5 * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.monitor_sys_resource_remark');
REPLACE INTO "sys_job" VALUES (3, 'job.ne_data_udm', 'SYSTEM', 'ne_data_udm', '', '0 0 0/12 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, '');
REPLACE INTO "sys_job" VALUES (6, 'job.ne_config_backup', 'SYSTEM', 'ne_config_backup', '', '0 30 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_config_backup_remark');
REPLACE INTO "sys_job" VALUES (10, 'job.delete_ne_config_backup', 'SYSTEM', 'delete_ne_config_backup', '{"storeDays":7,"storeNum":7}', '0 20 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_ne_config_backup_remark');
REPLACE INTO "sys_job" VALUES (11, 'job.delete_alarm_record', 'SYSTEM', 'delete_alarm_record', '{"storeDays":7}', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_alarm_record_remark');
REPLACE INTO "sys_job" VALUES (12, 'job.delete_kpi_record', 'SYSTEM', 'delete_kpi_record', '{"storeDays":7,"neList":["IMS","AMF","UDM","UPF","MME","SMSC","SMF","MME"]}', '0 20 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_kpi_record_remark');
REPLACE INTO "sys_job" VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{"alarmTitle":"NE State Check Alarm","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"alarm cause: the system state of target NE has not been received","specificProblemId":"AC10000","addInfo":""}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
REPLACE INTO "sys_job" VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{"alarmTitle":"NE State Check Alarm CPU/Menory/Disk","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold","specificProblemId":"AC10100","addInfo":"","cpuUseGt":70,"memUseGt":70,"diskUseGt":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
REPLACE INTO "sys_job" VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{"alarmTitle":"NE State Check Alarm License","alarmType":"EquipmentAlarm","origSeverity":"Major","specificProblem":"Alarm Cause: License received from target NE is about to expire","specificProblemId":"AC10200","addInfo":"","dayLt":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
REPLACE INTO "sys_job" VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{"backupPath":"/udm_data/auth","storeDays":30},{"backupPath":"/udm_data/sub","storeDays":30},{"backupPath":"/udm_data/voip","storeDays":30},{"backupPath":"/udm_data/volte","storeDays":30},{"backupPath":"/cdr/ims_cdr_event","storeDays":30},{"backupPath":"/cdr/smsc_cdr_event","storeDays":30},{"backupPath":"/cdr/smf_cdr_event","storeDays":30},{"backupPath":"/cdr/sgwc_cdr_event","storeDays":30},{"backupPath":"/log/sys_log_operate","storeDays":30,"storeNum":7},{"backupPath":"/log/sys_log_login","storeDays":30,"storeNum":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
REPLACE INTO "sys_job" VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{"dataType":["auth","sub","voip","volte"],"fileType":"txt"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');
REPLACE INTO "sys_job" VALUES (32, 'job.backup_export_cdr', 'SYSTEM', 'backup_export_cdr', '{"dataType":["ims","smf","sgwc","smsc"],"fileType":"xlsx","hour":1}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_cdr_remark');
REPLACE INTO "sys_job" VALUES (33, 'job.backup_export_log', 'SYSTEM', 'backup_export_log', '{"dataType":["operate","login"],"fileType":"xlsx","hour":1}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_log_remark');

View File

@@ -0,0 +1,206 @@
-- ----------------------------
-- Table structure for sys_menu
-- ----------------------------
CREATE TABLE IF NOT EXISTS "sys_menu" (
"menu_id" integer NOT NULL,
"menu_name" text(64) NOT NULL,
"parent_id" integer,
"menu_sort" integer,
"menu_path" text(255),
"component" text(255),
"frame_flag" text(1),
"cache_flag" text(1),
"menu_type" text(1) NOT NULL,
"visible_flag" text(1),
"status_flag" text(1),
"perms" text(128),
"icon" text(128),
"del_flag" text(1),
"create_by" text(64),
"create_time" integer,
"update_by" text(64),
"update_time" integer,
"remark" text(500),
PRIMARY KEY ("menu_id")
);
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
REPLACE INTO "sys_menu" VALUES (1, 'menu.system', 0, 16, 'system', '', '1', '1', 'D', '1', '1', '', 'icon-xiangmu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.systemRemark');
REPLACE INTO "sys_menu" VALUES (4, 'menu.ne', 0, 3, 'ne', '', '1', '0', 'D', '1', '1', '', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.configRemark');
REPLACE INTO "sys_menu" VALUES (5, 'menu.ue', 0, 7, 'ue', '', '1', '0', 'D', '1', '1', '', 'icon-wocanyu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.ueRemark');
REPLACE INTO "sys_menu" VALUES (60, 'menu.tools', 0, 60, 'tool', '', '1', '1', 'D', '1', '1', '', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.toolsRemark');
REPLACE INTO "sys_menu" VALUES (61, 'menu.tools.terminal', 60, 20, 'terminal', 'tool/terminal/index', '1', '1', 'M', '1', '1', 'tool:terminal:index', 'icon-suofang', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (62, 'menu.tools.help', 60, 62, 'help', 'tool/help/index', '1', '1', 'M', '0', '1', 'tool:help:list', 'icon-shuoming', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.tools.helpRemark');
REPLACE INTO "sys_menu" VALUES (63, 'menu.tools.ps', 60, 8, 'ps', 'tool/ps/index', '1', '0', 'M', '1', '1', 'tool:ps:list', 'icon-zhizuoliucheng', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (64, 'menu.tools.net', 60, 9, 'net', 'tool/net/index', '1', '0', 'M', '1', '1', 'tool:net:list', 'icon-zhizuoliucheng', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (65, 'menu.tools.ping', 60, 4, 'ping', 'tool/ping/index', '1', '0', 'M', '1', '1', 'tool:ping:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (66, 'menu.tools.iperf', 60, 6, 'iperf', 'tool/iperf/index', '1', '0', 'M', '1', '1', 'tool:iperf:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (100, 'menu.security.user', 2113, 1, 'user', 'system/user/index', '1', '1', 'M', '1', '1', 'system:user:list', 'icon-wocanyu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.userRemark');
REPLACE INTO "sys_menu" VALUES (101, 'menu.security.role', 2113, 3, 'role', 'system/role/index', '1', '1', 'M', '1', '1', 'system:role:list', 'icon-anzhuo', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.roleRemark');
REPLACE INTO "sys_menu" VALUES (102, 'menu.security.roleUser', 2113, 3, 'role/inline/auth-user/:roleId', 'system/role/auth-user', '1', '1', 'M', '0', '1', 'system:role:auth', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.roleUserRemark');
REPLACE INTO "sys_menu" VALUES (103, 'menu.system.menu', 1, 10, 'menu', 'system/menu/index', '1', '1', 'M', '1', '1', 'system:menu:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.menuRemark');
REPLACE INTO "sys_menu" VALUES (104, 'menu.security.dept', 2113, 5, 'dept', 'system/dept/index', '1', '1', 'M', '1', '1', 'system:dept:list', 'icon-yuzhanghao1', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.deptRemark');
REPLACE INTO "sys_menu" VALUES (105, 'menu.security.post', 2113, 6, 'post', 'system/post/index', '1', '1', 'M', '1', '1', 'system:post:list', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.postRemark');
REPLACE INTO "sys_menu" VALUES (106, 'menu.system.dictType', 1, 30, 'dict', 'system/dict/index', '1', '1', 'M', '1', '1', 'system:dict:list', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.dictTypeRemark');
REPLACE INTO "sys_menu" VALUES (107, 'menu.system.dictData', 1, 31, 'dict/inline/data/:dictId', 'system/dict/data', '1', '1', 'M', '0', '1', 'system:dict:data', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.dictDataRemark');
REPLACE INTO "sys_menu" VALUES (108, 'menu.system.paramSet', 1, 59, 'config', 'system/config/index', '1', '1', 'M', '1', '1', 'system:config:list', 'icon-gongnengjieshao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.paramSetRemark');
REPLACE INTO "sys_menu" VALUES (111, 'menu.system.systemLog', 1, 11, 'log', '', '1', '1', 'D', '0', '0', '', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemLogRemark');
REPLACE INTO "sys_menu" VALUES (112, 'menu.system.systemInfo', 1, 5, 'system-info', 'monitor/system/info', '1', '1', 'M', '1', '1', 'monitor:system:info', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemInfoRemark');
REPLACE INTO "sys_menu" VALUES (113, 'menu.system.cacheInfo', 1, 8, 'cache-info', 'monitor/cache/info', '1', '1', 'M', '1', '1', 'monitor:cache:info', 'icon-gongnengjieshao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.cacheInfoRemark');
REPLACE INTO "sys_menu" VALUES (114, 'menu.system.cache', 1, 9, 'cache', 'monitor/cache/index', '1', '1', 'M', '1', '1', 'monitor:cache:list', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.cacheRemark');
REPLACE INTO "sys_menu" VALUES (115, 'menu.security.onlineUser', 2113, 2, 'online', 'monitor/online/index', '1', '1', 'M', '1', '1', 'monitor:online:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.onlineUserRemark');
REPLACE INTO "sys_menu" VALUES (116, 'menu.system.job', 1, 20, 'job', 'monitor/job/index', '1', '1', 'M', '1', '1', 'monitor:job:list', 'icon-lishi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.jobRemark');
REPLACE INTO "sys_menu" VALUES (117, 'menu.system.jobLog', 1, 21, '/system/job/inline/log/:jobId', 'monitor/job/log', '1', '1', 'M', '0', '1', 'monitor:job:log', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.jobLogRemark');
REPLACE INTO "sys_menu" VALUES (500, 'menu.log.operat', 2089, 25, 'operate', 'system/log/operate/index', '1', '1', 'M', '1', '1', 'system:log:operate:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.operatRemark');
REPLACE INTO "sys_menu" VALUES (501, 'menu.log.login', 2089, 26, 'login', 'system/log/login/index', '1', '1', 'M', '1', '1', 'system:log:login:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.loginRemark');
REPLACE INTO "sys_menu" VALUES (1000, 'menu.common.query', 100, 1, '', '', '1', '1', 'B', '1', '1', 'system:user:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1001, 'menu.common.add', 100, 2, '', '', '1', '1', 'B', '1', '1', 'system:user:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1002, 'menu.common.edit', 100, 3, '', '', '1', '1', 'B', '1', '1', 'system:user:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1003, 'menu.common.delete', 100, 4, '', '', '1', '1', 'B', '1', '1', 'system:user:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1004, 'menu.common.export', 100, 5, '', '', '1', '1', 'B', '1', '1', 'system:user:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1005, 'menu.common.import', 100, 6, '', '', '1', '1', 'B', '1', '1', 'system:user:import', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1006, 'menu.common.resetPwd', 100, 7, '', '', '1', '1', 'B', '1', '1', 'system:user:resetPwd', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1007, 'menu.common.query', 101, 1, '', '', '1', '1', 'B', '1', '1', 'system:role:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1008, 'menu.common.add', 101, 2, '', '', '1', '1', 'B', '1', '1', 'system:role:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1009, 'menu.common.edit', 101, 3, '', '', '1', '1', 'B', '1', '1', 'system:role:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1010, 'menu.common.delete', 101, 4, '', '', '1', '1', 'B', '1', '1', 'system:role:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1011, 'menu.common.export', 101, 5, '', '', '1', '1', 'B', '1', '1', 'system:role:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1012, 'menu.common.query', 103, 1, '', '', '1', '1', 'B', '1', '1', 'system:menu:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1013, 'menu.common.add', 103, 2, '', '', '1', '1', 'B', '1', '1', 'system:menu:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1014, 'menu.common.edit', 103, 3, '', '', '1', '1', 'B', '1', '1', 'system:menu:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1015, 'menu.common.delete', 103, 4, '', '', '1', '1', 'B', '1', '1', 'system:menu:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1016, 'menu.common.query', 104, 1, '', '', '1', '1', 'B', '1', '1', 'system:dept:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1017, 'menu.common.add', 104, 2, '', '', '1', '1', 'B', '1', '1', 'system:dept:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1018, 'menu.common.edit', 104, 3, '', '', '1', '1', 'B', '1', '1', 'system:dept:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1019, 'menu.common.delete', 104, 4, '', '', '1', '1', 'B', '1', '1', 'system:dept:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1020, 'menu.common.query', 105, 1, '', '', '1', '1', 'B', '1', '1', 'system:post:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1021, 'menu.common.add', 105, 2, '', '', '1', '1', 'B', '1', '1', 'system:post:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1022, 'menu.common.edit', 105, 3, '', '', '1', '1', 'B', '1', '1', 'system:post:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1023, 'menu.common.delete', 105, 4, '', '', '1', '1', 'B', '1', '1', 'system:post:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1024, 'menu.common.export', 105, 5, '', '', '1', '1', 'B', '1', '1', 'system:post:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1025, 'menu.common.query', 106, 1, '#', '', '1', '1', 'B', '1', '1', 'system:dict:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1026, 'menu.common.add', 106, 2, '#', '', '1', '1', 'B', '1', '1', 'system:dict:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1027, 'menu.common.edit', 106, 3, '#', '', '1', '1', 'B', '1', '1', 'system:dict:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1028, 'menu.common.delete', 106, 4, '#', '', '1', '1', 'B', '1', '1', 'system:dict:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1029, 'menu.common.export', 106, 5, '#', '', '1', '1', 'B', '1', '1', 'system:dict:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1030, 'menu.common.query', 108, 1, '#', '', '1', '1', 'B', '1', '1', 'system:config:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1031, 'menu.common.add', 108, 2, '#', '', '1', '1', 'B', '1', '1', 'system:config:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1032, 'menu.common.edit', 108, 3, '#', '', '1', '1', 'B', '1', '1', 'system:config:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1033, 'menu.common.delete', 108, 4, '#', '', '1', '1', 'B', '1', '1', 'system:config:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1034, 'menu.common.export', 108, 5, '#', '', '1', '1', 'B', '1', '1', 'system:config:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1039, 'menu.common.query', 500, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1040, 'menu.common.delete', 500, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1041, 'menu.common.export', 500, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1042, 'menu.common.query', 501, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1043, 'menu.common.delete', 501, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1044, 'menu.common.export', 501, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1045, 'menu.common.unlock', 501, 4, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:unlock', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1046, 'menu.common.query', 114, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1047, 'menu.common.delete', 114, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1048, 'menu.common.query', 115, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1049, 'menu.forcedQuit.batch ', 115, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:batchLogout', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1050, 'menu.forcedQuit.single', 115, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:forceLogout', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1051, 'menu.common.query', 116, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1052, 'menu.common.add', 116, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1053, 'menu.common.edit', 116, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1054, 'menu.common.delete', 116, 4, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1055, 'menu.common.edit', 116, 5, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:changeStatus', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (1056, 'menu.common.export', 116, 6, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2000, 'menu.neData.udmAuth', 5, 1, 'udm-auth', 'neData/udm-auth/index', '1', '1', 'M', '1', '1', 'udm#auth:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2001, 'menu.neData.udmSub', 5, 3, 'udm-sub', 'neData/udm-sub/index', '1', '1', 'M', '1', '1', 'udm#sub:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2002, 'menu.neData.udmVOIP', 5, 5, 'udm-voip', 'neData/udm-voip/index', '1', '0', 'M', '1', '1', 'udm#voip:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2003, 'menu.neData.udmVolte', 5, 7, 'udm-volte', 'neData/udm-volte/index', '1', '0', 'M', '1', '1', 'udm+ims#volte:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2004, 'menu.neData.imsSub', 5, 9, 'ims-sub', 'neData/ims-sub/index', '1', '0', 'M', '1', '1', 'ims#sub:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2005, 'menu.neData.smfSub', 5, 12, 'smf-sub', 'neData/smf-sub/index', '1', '0', 'M', '1', '1', 'smf#sub:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2006, 'menu.neData.baseOnline', 5, 15, 'base-online', 'neData/base-online/index', '1', '0', 'M', '0', '1', 'amf,mme#base-online:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2007, 'menu.neData.baseStation', 5, 18, 'base-station', 'neData/base-station/index', '1', '0', 'M', '1', '1', 'amf,mme#base-station:list', 'icon-fenxiang', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2008, 'menu.ueUser.n3iwf', 5, 20, 'n3iwf', 'neUser/n3iwf/index', '1', '0', 'M', '1', '1', 'n3iwf#sub:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2009, 'menu.neData.pcfSub', 5, 24, 'pcf-sub', 'neData/pcf-sub/index', '1', '0', 'M', '1', '1', 'pcf#sub:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2010, 'menu.neUser.nssf', 5, 26, 'nssf', 'neUser/nssf/index', '1', '0', 'M', '1', '1', 'nssf#sub:index', 'icon-daimayingyong', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2011, 'menu.neUser.nssfAmf', 5, 28, 'nssfAmf', 'neUser/nssfAmf/index', '1', '0', 'M', '1', '1', 'nssf#sub:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2083, 'menu.trace', 2087, 30, 'traceManage', '', '1', '0', 'D', '1', '1', '', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.traceRemark');
REPLACE INTO "sys_menu" VALUES (2084, 'menu.trace.task', 2083, 1, 'task', 'traceManage/task/index', '1', '0', 'M', '1', '1', 'traceManage:task:index', 'icon-chexiao', '0', 'system', 1728641403588, 'system', 1744453890548, 'menu.trace.taskRemark');
REPLACE INTO "sys_menu" VALUES (2085, 'menu.trace.taskData', 2083, 4, 'task/inline/data', 'traceManage/task/data', '1', '0', 'M', '0', '1', 'traceManage:task:data', '#', '0', 'system', 1728641403588, 'system', 1744453921381, '');
REPLACE INTO "sys_menu" VALUES (2086, 'menu.trace.pcap', 2083, 11, 'pcap', 'traceManage/pcap/index', '1', '1', 'M', '1', '1', 'traceManage:pcap:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.trace.pcapRemark');
REPLACE INTO "sys_menu" VALUES (2087, 'menu.fault', 0, 2, 'faultManage', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.faultRemark');
REPLACE INTO "sys_menu" VALUES (2088, 'menu.fault.active', 2129, 1, 'active-alarm', 'faultManage/active-alarm/index', '1', '1', 'M', '1', '1', 'faultManage:active-alarm:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.activemRemark');
REPLACE INTO "sys_menu" VALUES (2089, 'menu.log', 0, 9, 'logManage', '', '1', '0', 'D', '1', '1', '', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.logRemark');
REPLACE INTO "sys_menu" VALUES (2091, 'menu.log.mml', 2089, 30, 'mml', 'logManage/mml/index', '1', '1', 'M', '1', '1', 'logManage:mml:index', 'icon-wocanyu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.mmlRemark');
REPLACE INTO "sys_menu" VALUES (2092, 'menu.log.alarm', 2089, 40, 'alarm-log', 'logManage/alarm/index', '1', '0', 'M', '1', '1', 'logManage:alarm:index', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.alarmRemark');
REPLACE INTO "sys_menu" VALUES (2094, 'menu.log.forwarding', 2089, 41, 'forwarding', 'logManage/forwarding/index', '1', '0', 'M', '1', '1', 'logManage:forwarding:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.forwardingRemark');
REPLACE INTO "sys_menu" VALUES (2095, 'menu.log.set', 2089, 45, 'logSet', 'logManage/logSet/index', '1', '0', 'M', '0', '0', 'logManage:logSet:index', 'icon-you', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.setRemark');
REPLACE INTO "sys_menu" VALUES (2096, 'menu.neData.backupData', 5, 40, 'backup-data', 'neData/backup-data/index', '1', '0', 'M', '1', '1', 'ne-data:backup-data:list', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2097, 'menu.fault.history', 2129, 2, 'history-alarm', 'faultManage/history-alarm/index', '1', '1', 'M', '1', '1', 'faultManage/history-alarm/index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.historyRemark');
REPLACE INTO "sys_menu" VALUES (2098, 'menu.fault.set', 2129, 100, 'fault-setting', 'faultManage/fault-setting/index', '1', '0', 'M', '0', '1', 'faultManage/fault-setting/index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.setRemark');
REPLACE INTO "sys_menu" VALUES (2099, 'menu.perf', 0, 5, 'perfManage', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perfRemark');
REPLACE INTO "sys_menu" VALUES (2100, 'menu.perf.task', 2099, 1, 'taskManage', 'perfManage/taskManage/index', '1', '0', 'M', '0', '1', 'perfManage:taskManage:index', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perf.taskRemark');
REPLACE INTO "sys_menu" VALUES (2101, 'menu.perf.data', 2099, 2, 'perfData', 'perfManage/perfData/index', '1', '0', 'M', '0', '1', 'perfManage:perfData:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perf.dataRemark');
REPLACE INTO "sys_menu" VALUES (2102, 'menu.perf.kpiOverView', 2099, 10, 'kpiOverView', 'perfManage/kpiOverView/index', '1', '0', 'M', '1', '1', 'perfManage:perfReport:index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2103, 'menu.perf.threshold', 2099, 4, 'perfThreshold', 'perfManage/perfThreshold/index', '1', '0', 'M', '0', '0', 'perfManage:perfThreshold:index', 'icon-zhuanrang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perf.thresholdRemark');
REPLACE INTO "sys_menu" VALUES (2104, 'menu.perf.kpi', 2099, 20, 'goldTarget', 'perfManage/goldTarget/index', '1', '1', 'M', '1', '1', 'perfManage:goldTarget:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perf.kpiRemark');
REPLACE INTO "sys_menu" VALUES (2105, 'menu.perf.customTarget', 2099, 99, 'customTarget', 'perfManage/customTarget/index', '1', '0', 'M', '1', '1', 'perfManage:customTarget:index', 'icon-fanhui1', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perf.customTargetRemark');
REPLACE INTO "sys_menu" VALUES (2106, 'menu.perf.kpiKeyTarget', 2099, 12, 'kpiKeyTarget', 'perfManage/kpiKeyTarget/index', '1', '0', 'M', '1', '1', 'perfManage:kpiKeyTarget:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2107, 'menu.mml', 0, 8, 'mmlManage', '', '1', '0', 'D', '1', '1', '', 'icon-zhizuoliucheng', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mmlRemark');
REPLACE INTO "sys_menu" VALUES (2108, 'menu.mml.ne', 2107, 1, 'neOperate', 'mmlManage/neOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:neOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.neRemark');
REPLACE INTO "sys_menu" VALUES (2109, 'menu.mml.udm', 2107, 2, 'udmOperate', 'mmlManage/udmOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:udmOperate:index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.udmRemark');
REPLACE INTO "sys_menu" VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '0', '0', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.setRemark');
REPLACE INTO "sys_menu" VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '0', '0', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.omcRemark');
REPLACE INTO "sys_menu" VALUES (2112, 'menu.dashboard.sgwcCDR', 2140, 12, 'sgwcCDR', 'dashboard/sgwcCDR/index', '1', '0', 'M', '1', '1', 'sgwc#cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2113, 'menu.security', 0, 14, 'security', '', '1', '0', 'D', '1', '1', '', 'icon-suofang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.securityRemark');
REPLACE INTO "sys_menu" VALUES (2114, 'menu.system.systemSet', 1, 60, 'setting', 'system/setting/index', '1', '1', 'M', '1', '1', 'system:setting:index', 'icon-piliang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemSetRemark');
REPLACE INTO "sys_menu" VALUES (2115, 'menu.system.systemResource', 1, 6, 'monitor', 'monitor/monitor/index', '1', '1', 'M', '1', '1', 'monitor:monitor:info', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemResourceRemark');
REPLACE INTO "sys_menu" VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:smsc:content', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2118, 'menu.dashboard.smfCDRByIMSI', 2140, 7, 'smfCDRByIMSI', 'dashboard/smfCDRByIMSI/index', '1', '0', 'M', '1', '1', 'smf#cdr:index', 'icon-gerenzhanghu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2119, 'Alarm Overview', 2129, 6, 'alarm-overview', 'faultManage/alarm-overview/index', '1', '1', 'M', '1', '1', 'faultManage:active-overview:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2120, 'Dashboard2', 2131, 8, 'dashboard2', 'dashboard/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview2:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2121, 'menu.system.user.editRole', 100, 8, '', '', '1', '1', 'B', '1', '1', 'system:user:editRole', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2122, 'menu.system.setting.i18n', 2114, 1, '', '', '1', '1', 'B', '1', '1', 'system:setting:i18n', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.setting.i18nRemark');
REPLACE INTO "sys_menu" VALUES (2123, 'menu.log.neFile', 2089, 9, 'neFile', 'ne/neFile/index', '1', '0', 'M', '1', '1', 'ne:neFile:index', 'icon-tubiaohuizhi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2126, 'menu.monitor.topology', 2130, 10, 'topology', 'monitor/topology/index', '1', '0', 'M', '1', '1', 'monitor:topology:index', 'icon-fangda', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2127, 'menu.monitor.topologyBuild', 2130, 30, 'topologyBuild', 'monitor/topologyBuild/index', '1', '0', 'M', '1', '1', 'monitor:topologyBuild:index', 'icon-fangda', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2128, 'menu.monitor.topologyArchitecture', 2130, 20, 'topologyArchitecture', 'monitor/topologyArchitecture/index', '1', '0', 'M', '1', '1', 'monitor:topologyArchitecture:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2129, 'menu.alarm', 2087, 20, 'alarm', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2130, 'menu.topology', 2087, 10, 'topology', '', '1', '0', 'D', '1', '1', '', 'icon-anzhuo', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2131, 'menu.dashboard', 2087, 15, 'dashboard', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2132, 'menu.dashboard.overview', 2131, 1, 'overview', 'dashboard/overview/index', '1', '0', 'M', '1', '1', 'dashboard:overview:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2133, 'menu.dashboard.imsCDR', 2140, 3, 'imsCDR', 'dashboard/imsCDR/index', '1', '0', 'M', '1', '1', 'ims#cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2135, 'menu.ne.neHost', 4, 15, 'neHost', 'ne/neHost/index', '1', '1', 'M', '1', '0', 'ne:neHost:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2136, 'menu.ne.neHostCommand', 4, 18, 'neHostCommand', 'ne/neHostCommand/index', '1', '0', 'M', '1', '0', 'ne:neHostCommand:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2137, 'menu.ne.neInfo', 4, 10, 'neInfo', 'ne/neInfo/index', '1', '0', 'M', '1', '1', 'ne:neInfo:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amfUE', 'dashboard/amfUE/index', '1', '0', 'M', '1', '1', 'amf#ue:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2139, 'Key Performance Dashboard', 2099, 8, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2140, 'menu.monitor.cdr', 2089, 10, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2141, 'menu.monitor.event', 2089, 20, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2142, 'menu.ne.neQuickSetup', 4, 40, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2143, 'menu.ne.neLicense', 4, 20, 'neLicense', 'ne/neLicense/index', '1', '0', 'M', '1', '1', 'ne:neLicense:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2144, 'menu.ne.neSoftware', 4, 23, 'neSoftware', 'ne/neSoftware/index', '1', '0', 'M', '1', '1', 'ne:neSoftware:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2145, 'menu.ne.neVersion', 4, 26, 'neVersion', 'ne/neVersion/index', '1', '0', 'M', '1', '1', 'ne:neVersion:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2146, 'menu.ne.neConfig', 4, 28, 'neConfig', 'ne/neConfig/index', '1', '0', 'M', '1', '1', 'ne:neConfig:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2147, 'menu.fault.event', 2129, 3, 'event', 'faultManage/event/index', '1', '0', 'M', '1', '1', 'faultManage:event:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2148, 'menu.dashboard.smfCDR', 2140, 6, 'smfCDR', 'dashboard/smfCDR/index', '1', '0', 'M', '1', '1', 'smf#cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2149, 'menu.dashboard.mmeUE', 2141, 5, 'mmeUE', 'dashboard/mmeUE/index', '1', '0', 'M', '1', '1', 'mme#ue:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2150, 'menu.system.user.editPost', 100, 9, '', '', '1', '1', 'B', '1', '1', 'system:user:editPost', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2151, 'menu.system.setting.doc', 2114, 2, '', '', '1', '1', 'B', '1', '1', 'system:setting:doc', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2152, 'menu.system.setting.official', 2114, 3, '', '', '1', '1', 'B', '1', '1', 'system:setting:official', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2153, 'menu.system.setting.lock', 2114, 4, '', '', '1', '1', 'B', '1', '1', 'system:setting:lock', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2154, 'menu.ne.neConfigBackup', 4, 29, 'neConfigBackup', 'ne/neConfigBackup/index', '1', '0', 'M', '1', '1', 'ne:neConfigBackup:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2155, 'menu.common.delete', 2154, 1, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2156, 'menu.common.edit', 2154, 2, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2157, 'menu.dashboard.smscCDR', 2140, 9, 'smscCDR', 'dashboard/smscCDR/index', '1', '0', 'M', '1', '1', 'smsc#cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2158, 'menu.trace.pcapFile', 2083, 12, 'pcap/inline/file', 'traceManage/pcap/file', '1', '0', 'M', '0', '1', 'traceManage:pcap:index', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2159, 'menu.log.exportFile', 2089, 100, 'exportFile', 'logManage/exportFile/index', '1', '0', 'M', '1', '1', 'logManage:exportFile:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2160, 'menu.perf.kpiCReport', 2099, 100, 'kpiCReport', 'perfManage/kpiCReport/index', '1', '0', 'M', '1', '1', 'perfManage:kpiCReport:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2161, 'menu.trace.taskHLR', 2083, 6, 'taskHLR', 'traceManage/task-hlr/index', '1', '0', 'M', '0', '1', 'traceManage:taskHLR:index', 'icon-chexiao', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2162, 'menu.trace.taskAnalyze', 2083, 2, 'task/inline/analyze', 'traceManage/task/analyze', '1', '0', 'M', '0', '1', 'traceManage:task:analyze', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2163, 'menu.trace.tshark', 2083, 14, 'tshark', 'traceManage/tshark/index', '1', '0', 'M', '1', '1', 'traceManage:tshark:index', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2164, 'menu.trace.wireshark', 2083, 16, 'wireshark', 'traceManage/wireshark/index', '1', '0', 'M', '1', '1', 'traceManage:wireshark:index', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2165, 'menu.ne.neOverview', 4, 1, 'neOverview', 'configManage/neOverview/index', '1', '0', 'M', '1', '1', 'configManage:neOverview:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.ne.neOverviewRemark');
REPLACE INTO "sys_menu" VALUES (2166, 'menu.dashboard.overview.smfUeNum', 2132, 4, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:smfUeNum', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2167, 'menu.dashboard.overview.imsUeNum', 2132, 2, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:imsUeNum', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2168, 'menu.dashboard.overview.gnbBase', 2132, 6, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:gnbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO "sys_menu" VALUES (2169, 'menu.dashboard.overview.enbBase', 2132, 8, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:enbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (20000, 'menu.ue.cbc.cbe', 5, 20, 'cbe', 'cbc/cbe/index', '1', '0', 'M', '1', '1', 'cbc#dashboard:cdr:index', 'icon-tubiaoku', '0', 'system', 1711352709786, 'system', 1747796007372, '');

View File

@@ -0,0 +1,293 @@
-- ----------------------------
-- Table structure for sys_role_menu
-- ----------------------------
CREATE TABLE IF NOT EXISTS "sys_role_menu" (
"role_id" integer(20) NOT NULL,
"menu_id" integer(20) NOT NULL,
PRIMARY KEY ("role_id", "menu_id")
);
-- ----------------------------
-- Records of sys_role_menu
-- ----------------------------
REPLACE INTO "sys_role_menu" VALUES (2, 1);
REPLACE INTO "sys_role_menu" VALUES (2, 4);
REPLACE INTO "sys_role_menu" VALUES (2, 5);
REPLACE INTO "sys_role_menu" VALUES (2, 60);
REPLACE INTO "sys_role_menu" VALUES (2, 61);
REPLACE INTO "sys_role_menu" VALUES (2, 63);
REPLACE INTO "sys_role_menu" VALUES (2, 64);
REPLACE INTO "sys_role_menu" VALUES (2, 65);
REPLACE INTO "sys_role_menu" VALUES (2, 66);
REPLACE INTO "sys_role_menu" VALUES (2, 100);
REPLACE INTO "sys_role_menu" VALUES (2, 101);
REPLACE INTO "sys_role_menu" VALUES (2, 102);
REPLACE INTO "sys_role_menu" VALUES (2, 103);
REPLACE INTO "sys_role_menu" VALUES (2, 104);
REPLACE INTO "sys_role_menu" VALUES (2, 105);
REPLACE INTO "sys_role_menu" VALUES (2, 108);
REPLACE INTO "sys_role_menu" VALUES (2, 111);
REPLACE INTO "sys_role_menu" VALUES (2, 112);
REPLACE INTO "sys_role_menu" VALUES (2, 115);
REPLACE INTO "sys_role_menu" VALUES (2, 116);
REPLACE INTO "sys_role_menu" VALUES (2, 117);
REPLACE INTO "sys_role_menu" VALUES (2, 500);
REPLACE INTO "sys_role_menu" VALUES (2, 501);
REPLACE INTO "sys_role_menu" VALUES (2, 1000);
REPLACE INTO "sys_role_menu" VALUES (2, 1001);
REPLACE INTO "sys_role_menu" VALUES (2, 1002);
REPLACE INTO "sys_role_menu" VALUES (2, 1003);
REPLACE INTO "sys_role_menu" VALUES (2, 1004);
REPLACE INTO "sys_role_menu" VALUES (2, 1005);
REPLACE INTO "sys_role_menu" VALUES (2, 1006);
REPLACE INTO "sys_role_menu" VALUES (2, 1007);
REPLACE INTO "sys_role_menu" VALUES (2, 1008);
REPLACE INTO "sys_role_menu" VALUES (2, 1009);
REPLACE INTO "sys_role_menu" VALUES (2, 1010);
REPLACE INTO "sys_role_menu" VALUES (2, 1011);
REPLACE INTO "sys_role_menu" VALUES (2, 1012);
REPLACE INTO "sys_role_menu" VALUES (2, 1013);
REPLACE INTO "sys_role_menu" VALUES (2, 1014);
REPLACE INTO "sys_role_menu" VALUES (2, 1015);
REPLACE INTO "sys_role_menu" VALUES (2, 1016);
REPLACE INTO "sys_role_menu" VALUES (2, 1017);
REPLACE INTO "sys_role_menu" VALUES (2, 1018);
REPLACE INTO "sys_role_menu" VALUES (2, 1019);
REPLACE INTO "sys_role_menu" VALUES (2, 1020);
REPLACE INTO "sys_role_menu" VALUES (2, 1021);
REPLACE INTO "sys_role_menu" VALUES (2, 1022);
REPLACE INTO "sys_role_menu" VALUES (2, 1023);
REPLACE INTO "sys_role_menu" VALUES (2, 1024);
REPLACE INTO "sys_role_menu" VALUES (2, 1030);
REPLACE INTO "sys_role_menu" VALUES (2, 1032);
REPLACE INTO "sys_role_menu" VALUES (2, 1034);
REPLACE INTO "sys_role_menu" VALUES (2, 1039);
REPLACE INTO "sys_role_menu" VALUES (2, 1040);
REPLACE INTO "sys_role_menu" VALUES (2, 1041);
REPLACE INTO "sys_role_menu" VALUES (2, 1042);
REPLACE INTO "sys_role_menu" VALUES (2, 1043);
REPLACE INTO "sys_role_menu" VALUES (2, 1044);
REPLACE INTO "sys_role_menu" VALUES (2, 1045);
REPLACE INTO "sys_role_menu" VALUES (2, 1048);
REPLACE INTO "sys_role_menu" VALUES (2, 1049);
REPLACE INTO "sys_role_menu" VALUES (2, 1050);
REPLACE INTO "sys_role_menu" VALUES (2, 1051);
REPLACE INTO "sys_role_menu" VALUES (2, 1052);
REPLACE INTO "sys_role_menu" VALUES (2, 1053);
REPLACE INTO "sys_role_menu" VALUES (2, 1054);
REPLACE INTO "sys_role_menu" VALUES (2, 1055);
REPLACE INTO "sys_role_menu" VALUES (2, 1056);
REPLACE INTO "sys_role_menu" VALUES (2, 2000);
REPLACE INTO "sys_role_menu" VALUES (2, 2001);
REPLACE INTO "sys_role_menu" VALUES (2, 2002);
REPLACE INTO "sys_role_menu" VALUES (2, 2003);
REPLACE INTO "sys_role_menu" VALUES (2, 2004);
REPLACE INTO "sys_role_menu" VALUES (2, 2005);
REPLACE INTO "sys_role_menu" VALUES (2, 2007);
REPLACE INTO "sys_role_menu" VALUES (2, 2008);
REPLACE INTO "sys_role_menu" VALUES (2, 2009);
REPLACE INTO "sys_role_menu" VALUES (2, 2010);
REPLACE INTO "sys_role_menu" VALUES (2, 2011);
REPLACE INTO "sys_role_menu" VALUES (2, 2083);
REPLACE INTO "sys_role_menu" VALUES (2, 2084);
REPLACE INTO "sys_role_menu" VALUES (2, 2086);
REPLACE INTO "sys_role_menu" VALUES (2, 2087);
REPLACE INTO "sys_role_menu" VALUES (2, 2088);
REPLACE INTO "sys_role_menu" VALUES (2, 2089);
REPLACE INTO "sys_role_menu" VALUES (2, 2091);
REPLACE INTO "sys_role_menu" VALUES (2, 2092);
REPLACE INTO "sys_role_menu" VALUES (2, 2094);
REPLACE INTO "sys_role_menu" VALUES (2, 2096);
REPLACE INTO "sys_role_menu" VALUES (2, 2097);
REPLACE INTO "sys_role_menu" VALUES (2, 2099);
REPLACE INTO "sys_role_menu" VALUES (2, 2100);
REPLACE INTO "sys_role_menu" VALUES (2, 2101);
REPLACE INTO "sys_role_menu" VALUES (2, 2102);
REPLACE INTO "sys_role_menu" VALUES (2, 2103);
REPLACE INTO "sys_role_menu" VALUES (2, 2104);
REPLACE INTO "sys_role_menu" VALUES (2, 2105);
REPLACE INTO "sys_role_menu" VALUES (2, 2107);
REPLACE INTO "sys_role_menu" VALUES (2, 2108);
REPLACE INTO "sys_role_menu" VALUES (2, 2109);
REPLACE INTO "sys_role_menu" VALUES (2, 2112);
REPLACE INTO "sys_role_menu" VALUES (2, 2113);
REPLACE INTO "sys_role_menu" VALUES (2, 2114);
REPLACE INTO "sys_role_menu" VALUES (2, 2115);
REPLACE INTO "sys_role_menu" VALUES (2, 2116);
REPLACE INTO "sys_role_menu" VALUES (2, 2117);
REPLACE INTO "sys_role_menu" VALUES (2, 2118);
REPLACE INTO "sys_role_menu" VALUES (2, 2121);
REPLACE INTO "sys_role_menu" VALUES (2, 2122);
REPLACE INTO "sys_role_menu" VALUES (2, 2123);
REPLACE INTO "sys_role_menu" VALUES (2, 2126);
REPLACE INTO "sys_role_menu" VALUES (2, 2128);
REPLACE INTO "sys_role_menu" VALUES (2, 2129);
REPLACE INTO "sys_role_menu" VALUES (2, 2130);
REPLACE INTO "sys_role_menu" VALUES (2, 2131);
REPLACE INTO "sys_role_menu" VALUES (2, 2132);
REPLACE INTO "sys_role_menu" VALUES (2, 2133);
REPLACE INTO "sys_role_menu" VALUES (2, 2137);
REPLACE INTO "sys_role_menu" VALUES (2, 2138);
REPLACE INTO "sys_role_menu" VALUES (2, 2140);
REPLACE INTO "sys_role_menu" VALUES (2, 2141);
REPLACE INTO "sys_role_menu" VALUES (2, 2142);
REPLACE INTO "sys_role_menu" VALUES (2, 2143);
REPLACE INTO "sys_role_menu" VALUES (2, 2145);
REPLACE INTO "sys_role_menu" VALUES (2, 2146);
REPLACE INTO "sys_role_menu" VALUES (2, 2147);
REPLACE INTO "sys_role_menu" VALUES (2, 2148);
REPLACE INTO "sys_role_menu" VALUES (2, 2149);
REPLACE INTO "sys_role_menu" VALUES (2, 2150);
REPLACE INTO "sys_role_menu" VALUES (2, 2151);
REPLACE INTO "sys_role_menu" VALUES (2, 2152);
REPLACE INTO "sys_role_menu" VALUES (2, 2153);
REPLACE INTO "sys_role_menu" VALUES (2, 2154);
REPLACE INTO "sys_role_menu" VALUES (2, 2155);
REPLACE INTO "sys_role_menu" VALUES (2, 2156);
REPLACE INTO "sys_role_menu" VALUES (2, 2157);
REPLACE INTO "sys_role_menu" VALUES (2, 2158);
REPLACE INTO "sys_role_menu" VALUES (2, 2159);
REPLACE INTO "sys_role_menu" VALUES (2, 2160);
REPLACE INTO "sys_role_menu" VALUES (2, 2162);
REPLACE INTO "sys_role_menu" VALUES (2, 2163);
REPLACE INTO "sys_role_menu" VALUES (2, 2164);
REPLACE INTO "sys_role_menu" VALUES (2, 2165);
REPLACE INTO "sys_role_menu" VALUES (2, 2166);
REPLACE INTO "sys_role_menu" VALUES (2, 2167);
REPLACE INTO "sys_role_menu" VALUES (2, 2168);
REPLACE INTO "sys_role_menu" VALUES (2, 2169);
REPLACE INTO "sys_role_menu" VALUES (2, 20000);
REPLACE INTO "sys_role_menu" VALUES (3, 1);
REPLACE INTO "sys_role_menu" VALUES (3, 4);
REPLACE INTO "sys_role_menu" VALUES (3, 5);
REPLACE INTO "sys_role_menu" VALUES (3, 60);
REPLACE INTO "sys_role_menu" VALUES (3, 65);
REPLACE INTO "sys_role_menu" VALUES (3, 66);
REPLACE INTO "sys_role_menu" VALUES (3, 108);
REPLACE INTO "sys_role_menu" VALUES (3, 112);
REPLACE INTO "sys_role_menu" VALUES (3, 115);
REPLACE INTO "sys_role_menu" VALUES (3, 500);
REPLACE INTO "sys_role_menu" VALUES (3, 501);
REPLACE INTO "sys_role_menu" VALUES (3, 1030);
REPLACE INTO "sys_role_menu" VALUES (3, 1032);
REPLACE INTO "sys_role_menu" VALUES (3, 1034);
REPLACE INTO "sys_role_menu" VALUES (3, 1039);
REPLACE INTO "sys_role_menu" VALUES (3, 1042);
REPLACE INTO "sys_role_menu" VALUES (3, 1048);
REPLACE INTO "sys_role_menu" VALUES (3, 2000);
REPLACE INTO "sys_role_menu" VALUES (3, 2001);
REPLACE INTO "sys_role_menu" VALUES (3, 2002);
REPLACE INTO "sys_role_menu" VALUES (3, 2003);
REPLACE INTO "sys_role_menu" VALUES (3, 2004);
REPLACE INTO "sys_role_menu" VALUES (3, 2005);
REPLACE INTO "sys_role_menu" VALUES (3, 2007);
REPLACE INTO "sys_role_menu" VALUES (3, 2008);
REPLACE INTO "sys_role_menu" VALUES (3, 2009);
REPLACE INTO "sys_role_menu" VALUES (3, 2010);
REPLACE INTO "sys_role_menu" VALUES (3, 2011);
REPLACE INTO "sys_role_menu" VALUES (3, 2083);
REPLACE INTO "sys_role_menu" VALUES (3, 2086);
REPLACE INTO "sys_role_menu" VALUES (3, 2087);
REPLACE INTO "sys_role_menu" VALUES (3, 2088);
REPLACE INTO "sys_role_menu" VALUES (3, 2089);
REPLACE INTO "sys_role_menu" VALUES (3, 2091);
REPLACE INTO "sys_role_menu" VALUES (3, 2092);
REPLACE INTO "sys_role_menu" VALUES (3, 2094);
REPLACE INTO "sys_role_menu" VALUES (3, 2097);
REPLACE INTO "sys_role_menu" VALUES (3, 2107);
REPLACE INTO "sys_role_menu" VALUES (3, 2108);
REPLACE INTO "sys_role_menu" VALUES (3, 2109);
REPLACE INTO "sys_role_menu" VALUES (3, 2113);
REPLACE INTO "sys_role_menu" VALUES (3, 2114);
REPLACE INTO "sys_role_menu" VALUES (3, 2115);
REPLACE INTO "sys_role_menu" VALUES (3, 2116);
REPLACE INTO "sys_role_menu" VALUES (3, 2123);
REPLACE INTO "sys_role_menu" VALUES (3, 2126);
REPLACE INTO "sys_role_menu" VALUES (3, 2128);
REPLACE INTO "sys_role_menu" VALUES (3, 2129);
REPLACE INTO "sys_role_menu" VALUES (3, 2130);
REPLACE INTO "sys_role_menu" VALUES (3, 2131);
REPLACE INTO "sys_role_menu" VALUES (3, 2132);
REPLACE INTO "sys_role_menu" VALUES (3, 2133);
REPLACE INTO "sys_role_menu" VALUES (3, 2137);
REPLACE INTO "sys_role_menu" VALUES (3, 2138);
REPLACE INTO "sys_role_menu" VALUES (3, 2140);
REPLACE INTO "sys_role_menu" VALUES (3, 2141);
REPLACE INTO "sys_role_menu" VALUES (3, 2143);
REPLACE INTO "sys_role_menu" VALUES (3, 2146);
REPLACE INTO "sys_role_menu" VALUES (3, 2147);
REPLACE INTO "sys_role_menu" VALUES (3, 2148);
REPLACE INTO "sys_role_menu" VALUES (3, 2149);
REPLACE INTO "sys_role_menu" VALUES (3, 2151);
REPLACE INTO "sys_role_menu" VALUES (3, 2152);
REPLACE INTO "sys_role_menu" VALUES (3, 2153);
REPLACE INTO "sys_role_menu" VALUES (3, 2154);
REPLACE INTO "sys_role_menu" VALUES (3, 2155);
REPLACE INTO "sys_role_menu" VALUES (3, 2156);
REPLACE INTO "sys_role_menu" VALUES (3, 2157);
REPLACE INTO "sys_role_menu" VALUES (3, 2158);
REPLACE INTO "sys_role_menu" VALUES (3, 2165);
REPLACE INTO "sys_role_menu" VALUES (3, 2166);
REPLACE INTO "sys_role_menu" VALUES (3, 2167);
REPLACE INTO "sys_role_menu" VALUES (3, 2168);
REPLACE INTO "sys_role_menu" VALUES (3, 2169);
REPLACE INTO "sys_role_menu" VALUES (3, 20000);
REPLACE INTO "sys_role_menu" VALUES (4, 1);
REPLACE INTO "sys_role_menu" VALUES (4, 4);
REPLACE INTO "sys_role_menu" VALUES (4, 60);
REPLACE INTO "sys_role_menu" VALUES (4, 65);
REPLACE INTO "sys_role_menu" VALUES (4, 66);
REPLACE INTO "sys_role_menu" VALUES (4, 112);
REPLACE INTO "sys_role_menu" VALUES (4, 115);
REPLACE INTO "sys_role_menu" VALUES (4, 500);
REPLACE INTO "sys_role_menu" VALUES (4, 501);
REPLACE INTO "sys_role_menu" VALUES (4, 1039);
REPLACE INTO "sys_role_menu" VALUES (4, 1041);
REPLACE INTO "sys_role_menu" VALUES (4, 1042);
REPLACE INTO "sys_role_menu" VALUES (4, 1044);
REPLACE INTO "sys_role_menu" VALUES (4, 1048);
REPLACE INTO "sys_role_menu" VALUES (4, 2083);
REPLACE INTO "sys_role_menu" VALUES (4, 2086);
REPLACE INTO "sys_role_menu" VALUES (4, 2087);
REPLACE INTO "sys_role_menu" VALUES (4, 2088);
REPLACE INTO "sys_role_menu" VALUES (4, 2089);
REPLACE INTO "sys_role_menu" VALUES (4, 2092);
REPLACE INTO "sys_role_menu" VALUES (4, 2094);
REPLACE INTO "sys_role_menu" VALUES (4, 2097);
REPLACE INTO "sys_role_menu" VALUES (4, 2113);
REPLACE INTO "sys_role_menu" VALUES (4, 2114);
REPLACE INTO "sys_role_menu" VALUES (4, 2116);
REPLACE INTO "sys_role_menu" VALUES (4, 2126);
REPLACE INTO "sys_role_menu" VALUES (4, 2128);
REPLACE INTO "sys_role_menu" VALUES (4, 2129);
REPLACE INTO "sys_role_menu" VALUES (4, 2130);
REPLACE INTO "sys_role_menu" VALUES (4, 2131);
REPLACE INTO "sys_role_menu" VALUES (4, 2132);
REPLACE INTO "sys_role_menu" VALUES (4, 2133);
REPLACE INTO "sys_role_menu" VALUES (4, 2138);
REPLACE INTO "sys_role_menu" VALUES (4, 2140);
REPLACE INTO "sys_role_menu" VALUES (4, 2141);
REPLACE INTO "sys_role_menu" VALUES (4, 2147);
REPLACE INTO "sys_role_menu" VALUES (4, 2148);
REPLACE INTO "sys_role_menu" VALUES (4, 2149);
REPLACE INTO "sys_role_menu" VALUES (4, 2151);
REPLACE INTO "sys_role_menu" VALUES (4, 2152);
REPLACE INTO "sys_role_menu" VALUES (4, 2153);
REPLACE INTO "sys_role_menu" VALUES (4, 2157);
REPLACE INTO "sys_role_menu" VALUES (4, 2163);
REPLACE INTO "sys_role_menu" VALUES (4, 2165);
REPLACE INTO "sys_role_menu" VALUES (4, 2166);
REPLACE INTO "sys_role_menu" VALUES (4, 2167);
REPLACE INTO "sys_role_menu" VALUES (4, 2168);
REPLACE INTO "sys_role_menu" VALUES (4, 2169);
REPLACE INTO "sys_role_menu" VALUES (5, 1);
REPLACE INTO "sys_role_menu" VALUES (5, 4);
REPLACE INTO "sys_role_menu" VALUES (5, 112);
REPLACE INTO "sys_role_menu" VALUES (5, 2087);
REPLACE INTO "sys_role_menu" VALUES (5, 2115);
REPLACE INTO "sys_role_menu" VALUES (5, 2131);
REPLACE INTO "sys_role_menu" VALUES (5, 2132);
REPLACE INTO "sys_role_menu" VALUES (5, 2165);

View File

@@ -19,6 +19,7 @@ CREATE TABLE `kpi_title` (
-- ----------------------------
-- Records of kpi_title
-- ----------------------------
-- 更新AMF 20250613
INSERT INTO `kpi_title` VALUES (1, 'AMF', 'AMF.01', '{\"cn\": \"AMF注册态用户数\", \"en\": \"AMF.RegSub\"}', 'AMF注册态用户数', 'AMF.RegSub');
INSERT INTO `kpi_title` VALUES (2, 'AMF', 'AMF.02', '{\"cn\": \"AMF初始注册请求次数\", \"en\": \"AMF.AttInitReg\"}', 'AMF初始注册请求次数', 'AMF.AttInitReg');
INSERT INTO `kpi_title` VALUES (3, 'AMF', 'AMF.03', '{\"cn\": \"AMF初始注册成功次数\", \"en\": \"AMF.SuccInitReg\"}', 'AMF初始注册成功次数', 'AMF.SuccInitReg');
@@ -38,428 +39,456 @@ INSERT INTO `kpi_title` VALUES (16, 'AMF', 'AMF.16', '{\"cn\": \"AMF二次寻呼
INSERT INTO `kpi_title` VALUES (17, 'AMF', 'AMF.17', '{\"cn\": \"AMF寻呼请求次数\", \"en\": \"AMF.PagAtt\"}', 'AMF寻呼请求次数', 'AMF.PagAtt');
INSERT INTO `kpi_title` VALUES (18, 'AMF', 'AMF.18', '{\"cn\": \"AMF业务请求被拒次数\", \"en\": \"AMF.FailServiceReq\"}', 'AMF业务请求被拒次数', 'AMF.FailServiceReq');
INSERT INTO `kpi_title` VALUES (19, 'AMF', 'AMF.19', '{\"cn\": \"AMF业务请求尝试次数\", \"en\": \"AMF.AttServiceReq\"}', 'AMF业务请求尝试次数', 'AMF.AttServiceReq');
INSERT INTO `kpi_title` VALUES (20, 'SMF', 'SMF.01', '{\"cn\": \"5G实时PDU会话数\", \"en\": \"SMF.MeanPduSession\"}', '5G实时PDU会话数', 'SMF.MeanPduSession');
INSERT INTO `kpi_title` VALUES (21, 'SMF', 'SMF.02', '{\"cn\": \"PDU会话建立成功次数\", \"en\": \"SMF.SuccCreatePduSession\"}', 'PDU会话建立成功次数', 'SMF.SuccCreatePduSession');
INSERT INTO `kpi_title` VALUES (22, 'SMF', 'SMF.03', '{\"cn\": \"PDU会话建立请求次数\", \"en\": \"SMF.AttCreatePduSession\"}', 'PDU会话建立请求次数', 'SMF.AttCreatePduSession');
INSERT INTO `kpi_title` VALUES (23, 'SMF', 'SMF.04', '{\"cn\": \"IMS PDU会话建立成功次数\", \"en\": \"SMF.SuccCreatePduSession._Ims\"}', 'IMS PDU会话建立成功次数', 'SMF.SuccCreatePduSession._Ims');
INSERT INTO `kpi_title` VALUES (24, 'SMF', 'SMF.05', '{\"cn\": \"IMS PDU会话建立请求次数\", \"en\": \"SMF.AttCreatePduSession._Ims\"}', 'IMS PDU会话建立请求次数', 'SMF.AttCreatePduSession._Ims');
INSERT INTO `kpi_title` VALUES (25, 'SMF', 'SMF.06', '{\"cn\": \"EPS-Fallback成功数\", \"en\": \"SMF.SuccSmfModifyBearerResponse.Epsfb\"}', 'EPS-Fallback成功数', 'SMF.SuccSmfModifyBearerResponse.Epsfb');
INSERT INTO `kpi_title` VALUES (26, 'SMF', 'SMF.07', '{\"cn\": \"EPS-Fallback请求数\", \"en\": \"SMF.AttSmfModifyPduSession.Epsfb\"}', 'EPS-Fallback请求数', 'SMF.AttSmfModifyPduSession.Epsfb');
INSERT INTO `kpi_title` VALUES (27, 'UDM', 'UDM.01', '{\"cn\": \"5G注册用户数\", \"en\": \"UDR.5gActSub\"}', '5G注册用户数', 'UDR.5gActSub');
INSERT INTO `kpi_title` VALUES (28, 'UDM', 'UDM.02', '{\"cn\": \"AMF发起的UECM注册请求次数\", \"en\": \"UDM.AmfUecmRegReq\"}', 'AMF发起的UECM注册请求次数', 'UDM.AmfUecmRegReq');
INSERT INTO `kpi_title` VALUES (29, 'UDM', 'UDM.03', '{\"cn\": \"AMF发起的UECM注册成功次数\", \"en\": \"UDM.AmfUecmRegSucc\"}', 'AMF发起的UECM注册成功次数', 'UDM.AmfUecmRegSucc');
INSERT INTO `kpi_title` VALUES (30, 'UDM', 'UDM.04', '{\"cn\": \"SMF发起的UECM注册成功次数\", \"en\": \"UDM.SmfUecmRegSucc\"}', 'SMF发起的UECM注册成功次数', 'UDM.SmfUecmRegSucc');
INSERT INTO `kpi_title` VALUES (31, 'UDM', 'UDM.05', '{\"cn\": \"SMF发起的UECM注册请求次数\", \"en\": \"UDM.SmfUecmRegReq\"}', 'SMF发起的UECM注册请求次数', 'UDM.SmfUecmRegReq');
INSERT INTO `kpi_title` VALUES (32, 'UDM', 'UDM.06', '{\"cn\": \"4G注册用户数\", \"en\": \"SUB.EpsActSubsInHss\"}', '4G注册用户数', 'SUB.EpsActSubsInHss');
INSERT INTO `kpi_title` VALUES (33, 'UDM', 'UDM.07', '{\"cn\": \"4G鉴权信息查询成功次数\", \"en\": \"DIAM.AucInfoAnsSucc\"}', '4G鉴权信息查询成功次数', 'DIAM.AucInfoAnsSucc');
INSERT INTO `kpi_title` VALUES (34, 'UDM', 'UDM.08', '{\"cn\": \"4G鉴权信息查询请求次数\", \"en\": \"DIAM.AucInfoReq\"}', '4G鉴权信息查询请求次数', 'DIAM.AucInfoReq');
INSERT INTO `kpi_title` VALUES (35, 'UDM', 'UDM.09', '{\"cn\": \"4G更新位置成功次数\", \"en\": \"DIAM.UpdateLocationAnsSucc\"}', '4G更新位置成功次数', 'DIAM.UpdateLocationAnsSucc');
INSERT INTO `kpi_title` VALUES (36, 'UDM', 'UDM.10', '{\"cn\": \"4G更新位置请求次数\", \"en\": \"DIAM.UpdateLocationReq\"}', '4G更新位置请求次数', 'DIAM.UpdateLocationReq');
INSERT INTO `kpi_title` VALUES (37, 'UDM', 'UDM.11', '{\"cn\": \"SAR成功响应总次数\", \"en\": \"UR.SuccSAA\"}', 'SAR成功响应总次数', 'UR.SuccSAA');
INSERT INTO `kpi_title` VALUES (38, 'UDM', 'UDM.12', '{\"cn\": \"SAR请求次数\", \"en\": \"UR.AttSAR\"}', 'SAR请求次数', 'UR.AttSAR');
INSERT INTO `kpi_title` VALUES (39, 'UDM', 'UDM.13', '{\"cn\": \"LIR成功响应总次数\", \"en\": \"LIQ.SuccLIA\"}', 'LIR成功响应总次数', 'LIQ.SuccLIA');
INSERT INTO `kpi_title` VALUES (40, 'UDM', 'UDM.14', '{\"cn\": \"LIR请求次数\", \"en\": \"LIQ.AttLIR\"}', 'LIR请求次数', 'LIQ.AttLIR');
INSERT INTO `kpi_title` VALUES (41, 'AUSF', 'AUSF.01', '{\"cn\": \"鉴权成功次数\", \"en\": \"Ausf.UeAuthAnsSucc\"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO `kpi_title` VALUES (42, 'AUSF', 'AUSF.02', '{\"cn\": \"鉴权请求次数\", \"en\": \"Ausf.UeAuthReq\"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO `kpi_title` VALUES (43, 'UPF', 'UPF.01', '{\"cn\": \"PFCP会话建立成功次数\", \"en\": \"UPF.PfcpSessionEstabSucc\"}', 'PFCP会话建立成功次数', 'UPF.PfcpSessionEstabSucc');
INSERT INTO `kpi_title` VALUES (44, 'UPF', 'UPF.02', '{\"cn\": \"PFCP会话建立请求次数\", \"en\": \"UPF.PfcpSessionEstabReq\"}', 'PFCP会话建立请求次数', 'UPF.PfcpSessionEstabReq');
INSERT INTO `kpi_title` VALUES (45, 'UPF', 'UPF.03', '{\"cn\": \"N6接口上行字节数\", \"en\": \"UPF.N6OgOct\"}', 'N6接口上行字节', 'UPF.N6OgOct');
INSERT INTO `kpi_title` VALUES (46, 'UPF', 'UPF.04', '{\"cn\": \"N6接口下行字节数\", \"en\": \"UPF.N6IncOct\"}', 'N6接口下行字节数', 'UPF.N6IncOct');
INSERT INTO `kpi_title` VALUES (47, 'UPF', 'UPF.05', '{\"cn\": \"N3接口上行字节数\", \"en\": \"UPF.N3OgOct\"}', 'N3接口上行字节数', 'UPF.N3OgOct');
INSERT INTO `kpi_title` VALUES (48, 'UPF', 'UPF.06', '{\"cn\": \"N3接口下行字节数\", \"en\": \"UPF.N3IncOct\"}', 'N3接口下行字节', 'UPF.N3IncOct');
INSERT INTO `kpi_title` VALUES (49, 'UPF', 'UPF.07', '{\"cn\": \"SGi接口上行字节数\", \"en\": \"IP.PeakThroughputUlSgi\"}', 'SGi接口上行字节', 'IP.PeakThroughputUlSgi');
INSERT INTO `kpi_title` VALUES (50, 'UPF', 'UPF.08', '{\"cn\": \"SGi接口下行字节数\", \"en\": \"IP.PeakThroughputDlSgi\"}', 'SGi接口下行字节', 'IP.PeakThroughputDlSgi');
INSERT INTO `kpi_title` VALUES (51, 'UPF', 'UPF.09', '{\"cn\": \"S1-U接口上行字节数\", \"en\": \"GTP.OutOctS1uSgw\"}', 'S1-U接口上行字节', 'GTP.OutOctS1uSgw');
INSERT INTO `kpi_title` VALUES (52, 'UPF', 'UPF.10', '{\"cn\": \"S1-U接口下行字节数\", \"en\": \"GTP.IncOctS1uSgw\"}', 'S1-U接口下行字节', 'GTP.IncOctS1uSgw');
INSERT INTO `kpi_title` VALUES (53, 'AMF', 'AMF.20', '{\"cn\": \"EPS在线用户数\", \"en\": \"SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected\"}', 'EPS在线用户数', 'SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected');
INSERT INTO `kpi_title` VALUES (54, 'AMF', 'AMF.21', '{\"cn\": \"EPS附着成功次数\", \"en\": \"MM.SuccEpsAttach\"}', 'EPS附着成功次数', 'MM.SuccEpsAttach');
INSERT INTO `kpi_title` VALUES (55, 'AMF', 'AMF.22', '{\"cn\": \"EPS附着请求次数\", \"en\": \"MM.AttEpsAttach\"}', 'EPS附着请求次数', 'MM.AttEpsAttach');
INSERT INTO `kpi_title` VALUES (56, 'AMF', 'AMF.23', '{\"cn\": \"EPS附着失败次数_非法用户\", \"en\": \"MM.FailedEpsAttach.3\"}', 'EPS附着失败次数_非法用户', 'MM.FailedEpsAttach.3');
INSERT INTO `kpi_title` VALUES (57, 'AMF', 'AMF.24', '{\"cn\": \"EPS附着失败次数_非法终端\", \"en\": \"MM.FailedEpsAttach.5\"}', 'EPS附着失败次数_非法终端', 'MM.FailedEpsAttach.5');
INSERT INTO `kpi_title` VALUES (58, 'AMF', 'AMF.25', '{\"cn\": \"EPS附着失败次数_非法ME\", \"en\": \"MM.FailedEpsAttach.6\"}', 'EPS附着失败次数_非法ME', 'MM.FailedEpsAttach.6');
INSERT INTO `kpi_title` VALUES (59, 'AMF', 'AMF.26', '{\"cn\": \"EPS附着失败次数_EPS服务不允许_用户原因\", \"en\": \"MM.FailedEpsAttach.7.User\"}', 'EPS附着失败次数_EPS服务不允许_用户原因', 'MM.FailedEpsAttach.7.User');
INSERT INTO `kpi_title` VALUES (60, 'AMF', 'AMF.27', '{\"cn\": \"EPS附着失败次数_EPS和非EPS服务不允许\", \"en\": \"MM.FailedEpsAttach.8\"}', 'EPS附着失败次数_EPS和非EPS服务不允许', 'MM.FailedEpsAttach.8');
INSERT INTO `kpi_title` VALUES (61, 'AMF', 'AMF.28', '{\"cn\": \"EPS附着失败次数_跟踪区内无合适小区_用户原因\", \"en\": \"MM.FailedEpsAttach.15.User\"}', 'EPS附着失败次数_跟踪区内无合适小区_用户原因', 'MM.FailedEpsAttach.15.User');
INSERT INTO `kpi_title` VALUES (62, 'AMF', 'AMF.29', '{\"cn\": \"EPS附着失败次数_ESM失败_用户原因\", \"en\": \"MM.FailedEpsAttach.19.User\"}', 'EPS附着失败次数_ESM失败_用户原因', 'MM.FailedEpsAttach.19.User');
INSERT INTO `kpi_title` VALUES (63, 'AMF', 'AMF.30', '{\"cn\": \"MME一次寻呼响应次数\", \"en\": \"MM.FirstPagingSucc\"}', 'MME一次寻呼响应次数', 'MM.FirstPagingSucc');
INSERT INTO `kpi_title` VALUES (64, 'AMF', 'AMF.31', '{\"cn\": \"MME二次寻呼响应次数\", \"en\": \"MM.SecondPagingSucc\"}', 'MME二次寻呼响应次数', 'MM.SecondPagingSucc');
INSERT INTO `kpi_title` VALUES (65, 'AMF', 'AMF.32', '{\"cn\": \"MME寻呼请求次数\", \"en\": \"MM.PagAtt\"}', 'MME寻呼请求次数', 'MM.PagAtt');
INSERT INTO `kpi_title` VALUES (66, 'SMF', 'SMF.08', '{\"cn\": \"4G在线会话数\", \"en\": \"SM.MeanNbrBearerPgw.Default\"}', '4G在线会话数', 'SM.MeanNbrBearerPgw.Default');
INSERT INTO `kpi_title` VALUES (67, 'SMF', 'SMF.09', '{\"cn\": \"PGW缺省承载建立成功个数\", \"en\": \"SM.SuccCreateDefaultEpsBearer\"}', 'PGW缺省承载建立成功个数', 'SM.SuccCreateDefaultEpsBearer');
INSERT INTO `kpi_title` VALUES (68, 'SMF', 'SMF.10', '{\"cn\": \"PGW缺省承载建立请求个数\", \"en\": \"SM.AttCreateDefaultEpsBearer\"}', 'PGW缺省承载建立请求个数', 'SM.AttCreateDefaultEpsBearer');
INSERT INTO `kpi_title` VALUES (69, 'SMF', 'SMF.11', '{\"cn\": \"PGW专用承载建立成功个数\", \"en\": \"SM.SuccCreateDedicatedEpsBearer\"}', 'PGW专用承载建立成功个数', 'SM.SuccCreateDedicatedEpsBearer');
INSERT INTO `kpi_title` VALUES (70, 'SMF', 'SMF.12', '{\"cn\": \"PGW专用承载建立请求个数\", \"en\": \"SM.AttCreateDedicatedEpsBearer\"}', 'PGW专用承载建立请求个数', 'SM.AttCreateDedicatedEpsBearer');
INSERT INTO `kpi_title` VALUES (71, 'SMF', 'SMF.13', '{\"cn\": \"IMS缺省承载成功建立个数\", \"en\": \"SM.SuccCreateDefaultEpsBearer._Ims\"}', 'IMS缺省承载成功建立个数', 'SM.SuccCreateDefaultEpsBearer._Ims');
INSERT INTO `kpi_title` VALUES (72, 'SMF', 'SMF.14', '{\"cn\": \"IMS缺省承载请求建立个数\", \"en\": \"SM.AttCreateDefaultEpsBearer._Ims\"}', 'IMS缺省承载请求建立个数', 'SM.AttCreateDefaultEpsBearer._Ims');
INSERT INTO `kpi_title` VALUES (73, 'AMF', 'AMF.A.02', '{\"cn\":\"AMF移动性注册更新成功次数\",\"en\":\"AMF.SuccMobiReg\"}', 'AMF移动性注册更新成功次数', 'AMF.SuccMobiReg');
INSERT INTO `kpi_title` VALUES (74, 'AMF', 'AMF.A.03', '{\"cn\":\"AMF移动性注册更新失败次数\",\"en\":\"AMF.FailedMobiReg\"}', 'AMF移动性注册更新失败次数', 'AMF.FailedMobiReg');
INSERT INTO `kpi_title` VALUES (75, 'AMF', 'AMF.A.04', '{\"cn\":\"AMF紧急注册请求次数\",\"en\":\"AMF.AttEmergReg\"}', 'AMF紧急注册请求次数', 'AMF.AttEmergReg');
INSERT INTO `kpi_title` VALUES (76, 'AMF', 'AMF.A.05', '{\"cn\":\"AMF紧急注册成功次数\",\"en\":\"AMF.SuccEmergReg\"}', 'AMF紧急注册成功次数', 'AMF.SuccEmergReg');
INSERT INTO `kpi_title` VALUES (77, 'AMF', 'AMF.A.06', '{\"cn\":\"AMF紧急注册失败次数\",\"en\":\"AMF.FailedEmergReg\"}', 'AMF紧急注册失败次数', 'AMF.FailedEmergReg');
INSERT INTO `kpi_title` VALUES (78, 'AMF', 'AMF.A.07', '{\"cn\":\"UE发起的去注册请求次数\",\"en\":\"AMF.AttUeDereg\"}', 'UE发起的去注册请求次数', 'AMF.AttUeDereg');
INSERT INTO `kpi_title` VALUES (79, 'AMF', 'AMF.A.08', '{\"cn\":\"UE发起的去注册成功次数\",\"en\":\"AMF.SuccUeDereg\"}', 'UE发起的去注册成功次数', 'AMF.SuccUeDereg');
INSERT INTO `kpi_title` VALUES (80, 'AMF', 'AMF.A.09', '{\"cn\":\"AMF发起的去注册请求次数\",\"en\":\"AMF.AttAmfDereg\"}', 'AMF发起的去注册请求次数', 'AMF.AttAmfDereg');
INSERT INTO `kpi_title` VALUES (81, 'AMF', 'AMF.A.10', '{\"cn\":\"AMF发起的去注册成功次数\",\"en\":\"AMF.SuccAmfDereg\"}', 'AMF发起的去注册成功次数', 'AMF.SuccAmfDereg');
INSERT INTO `kpi_title` VALUES (82, 'AMF', 'AMF.A.11', '{\"cn\":\"UDM发起的去注册请求次数\",\"en\":\"AMF.AttUdmDereg\"}', 'UDM发起的去注册请求次数', 'AMF.AttUdmDereg');
INSERT INTO `kpi_title` VALUES (83, 'AMF', 'AMF.A.12', '{\"cn\":\"UDM发起的去注册成功次数\",\"en\":\"AMF.SuccUdmDereg\"}', 'UDM发起的去注册成功次数', 'AMF.SuccUdmDereg');
INSERT INTO `kpi_title` VALUES (84, 'AMF', 'AMF.A.13', '{\"cn\":\"AMF寻呼失败次数\",\"en\":\"AMF.PagFail\"}', 'AMF寻呼失败次数', 'AMF.PagFail');
INSERT INTO `kpi_title` VALUES (85, 'AMF', 'AMF.A.14', '{\"cn\":\"AMF隐式去注册次数\",\"en\":\"AMF.ImplicitDereg\"}', 'AMF隐式去注册次数', 'AMF.ImplicitDereg');
INSERT INTO `kpi_title` VALUES (86, 'SMF', 'SMF.A.01', '{\"cn\":\"PDU会话接受次数\",\"en\":\"SMF.PduSessAcpt\"}', 'PDU会话接受次数', 'SMF.PduSessAcpt');
INSERT INTO `kpi_title` VALUES (87, 'SMF', 'SMF.A.02', '{\"cn\":\"基站Pdu资源创建成功次数\",\"en\":\"SM.PduResSetupSucc\"}', '基站Pdu资源创建成功次数', 'SM.PduResSetupSucc');
INSERT INTO `kpi_title` VALUES (88, 'SMF', 'SMF.A.03', '{\"cn\":\"查询用户SM数据失败次数\",\"en\":\"SM.RetrieveSmDataFail\"}', '查询用户SM数据失败次数', 'SM.RetrieveSmDataFail');
INSERT INTO `kpi_title` VALUES (89, 'SMF', 'SMF.A.04', '{\"cn\":\"PFCP会话建立失败次数\",\"en\":\"SM.PfcpSessEstFail\"}', 'PFCP会话建立失败次数', 'SM.PfcpSessEstFail');
INSERT INTO `kpi_title` VALUES (90, 'SMF', 'SMF.A.05', '{\"cn\":\"基站Pdu资源创建失败次数\",\"en\":\"SM.PduResSetupFail\"}', '基站Pdu资源创建失败次数', 'SM.PduResSetupFail');
INSERT INTO `kpi_title` VALUES (91, 'SMF', 'SMF.A.06', '{\"cn\":\"PFCP会话修改失败次数\",\"en\":\"SM.PfcpSessMdfyFail\"}', 'PFCP会话修改失败次数', 'SM.PfcpSessMdfyFail');
INSERT INTO `kpi_title` VALUES (92, 'SMF', 'SMF.A.07', '{\"cn\":\"PDU会话拒绝次数\",\"en\":\"SM.PduSessRejt\"}', 'PDU会话拒绝次数', 'SM.PduSessRejt');
INSERT INTO `kpi_title` VALUES (93, 'SMF', 'SMF.A.08', '{\"cn\":\"PDU会话释放指示次数\",\"en\":\"SM.PduSessRelCmd\"}', 'PDU会话释放指示次数', 'SM.PduSessRelCmd');
INSERT INTO `kpi_title` VALUES (94, 'NSSF', 'NSSF.A.02', '{\"cn\":\"可用AMF注册次数\",\"en\":\"NSSF.SuccAvailAMFPut\"}', '可用AMF注册成功次数', 'NSSF.SuccAvailAMFPut');
INSERT INTO `kpi_title` VALUES (95, 'NSSF', 'NSSF.A.03', '{\"cn\":\"可用AMF注册更新成功次数\",\"en\":\"NSSF.AvailAMFPut\"}', '可用AMF注册次数', 'NSSF.AvailAMFPut');
INSERT INTO `kpi_title` VALUES (96, 'NSSF', 'NSSF.A.04', '{\"cn\":\"可用AMF注册更新次数\",\"en\":\"NSSF.SuccAvailAMFPatch\"}', '可用AMF注册更新成功次数', 'NSSF.SuccAvailAMFPatch');
INSERT INTO `kpi_title` VALUES (97, 'NSSF', 'NSSF.A.01', '{\"cn\":\"可用AMF注册成功次数\",\"en\":\"NSSF.AvailAMFPatch\"}', '可用AMF注册更新次数', 'NSSF.AvailAMFPatch');
INSERT INTO `kpi_title` VALUES (98, 'NSSF', 'NSSF.A.05', '{\"cn\":\"可用AMF去注册成功次数\",\"en\":\"NSSF.SuccAvailAMFDelete\"}', '可用AMF去注册成功次数', 'NSSF.SuccAvailAMFDelete');
INSERT INTO `kpi_title` VALUES (99, 'NSSF', 'NSSF.A.06', '{\"cn\":\"可用AMF去注册次数\",\"en\":\"NSSF.AvailAMFDelete\"}', '可用AMF去注册次数', 'NSSF.AvailAMFDelete');
INSERT INTO `kpi_title` VALUES (100, 'NSSF', 'NSSF.A.07', '{\"cn\":\"网元订阅成功次数\",\"en\":\"NSSF.SuccAvailSubscription\"}', '网元订阅成功次数', 'NSSF.SuccAvailSubscription');
INSERT INTO `kpi_title` VALUES (101, 'NSSF', 'NSSF.A.08', '{\"cn\":\"网元订阅次数\",\"en\":\"NSSF.AvailSubscription\"}', '网元订阅次数', 'NSSF.AvailSubscription');
INSERT INTO `kpi_title` VALUES (102, 'NSSF', 'NSSF.A.09', '{\"cn\":\"网元去订阅成功次数\",\"en\":\"NSSF.SuccAvailUnsubscription\"}', '网元去订阅成功次数', 'NSSF.SuccAvailUnsubscription');
INSERT INTO `kpi_title` VALUES (103, 'NSSF', 'NSSF.A.10', '{\"cn\":\"网元去订阅次数\",\"en\":\"NSSF.AvailUnsubscription\"}', '网元去订阅次数', 'NSSF.AvailUnsubscription');
INSERT INTO `kpi_title` VALUES (104, 'NSSF', 'NSSF.A.11', '{\"cn\":\"向NRF注册成功次数\",\"en\":\"NSSF.SuccNRFReg\"}', '向NRF注册成功次数', 'NSSF.SuccNRFReg');
INSERT INTO `kpi_title` VALUES (105, 'NSSF', 'NSSF.A.12', '{\"cn\":\"向NRF注册次数\",\"en\":\"NSSF.NRFReg\"}', '向NRF注册次数', 'NSSF.NRFReg');
INSERT INTO `kpi_title` VALUES (106, 'NSSF', 'NSSF.A.13', '{\"cn\":\"向NRF发送心跳次数\",\"en\":\"NSSF.NRFHeartbeat\"}', '向NRF发送心跳次数', 'NSSF.NRFHeartbeat');
INSERT INTO `kpi_title` VALUES (107, 'NSSF', 'NSSF.A.14', '{\"cn\":\"当前注册AMF个数\",\"en\":\"NSSF.CurrentAMFCount\"}', '当前注册AMF个数', 'NSSF.CurrentAMFCount');
INSERT INTO `kpi_title` VALUES (108, 'NSSF', 'NSSF.A.15', '{\"cn\":\"当前订阅网元个数\",\"en\":\"NSSF.CurrentSubscriperCount\"}', '当前订阅网元个数', 'NSSF.CurrentSubscriperCount');
INSERT INTO `kpi_title` VALUES (109, 'MME', 'MME.A.01', '{\"cn\":\"MME附着请求次数\",\"en\":\"EpsAttachAtt\"}', 'MME附着请求次数', 'EpsAttachAtt');
INSERT INTO `kpi_title` VALUES (110, 'MME', 'MME.A.02', '{\"cn\":\"MME附着成功次数\",\"en\":\"EpsAttachSucc\"}', 'MME附着成功次数', 'EpsAttachSucc');
INSERT INTO `kpi_title` VALUES (111, 'MME', 'MME.A.03', '{\"cn\":\"MME附着失败次数\",\"en\":\"EpsAttachFail\"}', 'MME附着失败次数', 'EpsAttachFail');
INSERT INTO `kpi_title` VALUES (112, 'MME', 'MME.A.04', '{\"cn\":\"MME组合附着请求次数\",\"en\":\"CombAttachAtt\"}', 'MME组合附着请求次数', 'CombAttachAtt');
INSERT INTO `kpi_title` VALUES (113, 'MME', 'MME.A.05', '{\"cn\":\"MME组合附着成功次数\",\"en\":\"CombAttachSucc\"}', 'MME组合附着成功次数', 'CombAttachSucc');
INSERT INTO `kpi_title` VALUES (114, 'MME', 'MME.A.06', '{\"cn\":\"MME组合附着失败次数\",\"en\":\"CombAttachFail\"}', 'MME组合附着失败次数', 'CombAttachFail');
INSERT INTO `kpi_title` VALUES (115, 'MME', 'MME.A.07', '{\"cn\":\"MME紧急附着请求次数\",\"en\":\"EmergAttachAtt\"}', 'MME紧急附着请求次数', 'EmergAttachAtt');
INSERT INTO `kpi_title` VALUES (116, 'MME', 'MME.A.08', '{\"cn\":\"MME紧急附着成功次数\",\"en\":\"EmergAttachSucc\"}', 'MME紧急附着成功次数', 'EmergAttachSucc');
INSERT INTO `kpi_title` VALUES (117, 'MME', 'MME.A.09', '{\"cn\":\"MME紧急附着失败次数\",\"en\":\"EmergAttachFail\"}', 'MME紧急附着失败次数', 'EmergAttachFail');
INSERT INTO `kpi_title` VALUES (118, 'MME', 'MME.A.10', '{\"cn\":\"UE发起的分离请求次数\",\"en\":\"EpsDetachUeAtt\"}', 'UE发起的分离请求次数', 'EpsDetachUeAtt');
INSERT INTO `kpi_title` VALUES (119, 'MME', 'MME.A.11', '{\"cn\":\"UE发起的分离请求成功次数\",\"en\":\"EpsDetachUeSucc\"}', 'UE发起的分离请求成功次数', 'EpsDetachUeSucc');
INSERT INTO `kpi_title` VALUES (120, 'MME', 'MME.A.12', '{\"cn\":\"MME发起的分离请求次数\",\"en\":\"EpsDetachMMEAtt\"}', 'MME发起的分离请求次数', 'EpsDetachMMEAtt');
INSERT INTO `kpi_title` VALUES (121, 'MME', 'MME.A.13', '{\"cn\":\"MME发起的分离请求成功次数\",\"en\":\"EpsDetachMMESucc\"}', 'MME发起的分离请求成功次数', 'EpsDetachMMESucc');
INSERT INTO `kpi_title` VALUES (122, 'MME', 'MME.A.14', '{\"cn\":\"伴随SGW内切换的TAU请求次数\",\"en\":\"TauIntraSgwAtt\"}', '伴随SGW内切换的TAU请求次数', 'TauIntraSgwAtt');
INSERT INTO `kpi_title` VALUES (123, 'MME', 'MME.A.15', '{\"cn\":\"伴随SGW内切换的TAU成功请求次数\",\"en\":\"TauIntraSgwSucc\"}', '伴随SGW内切换的TAU成功请求次数', 'TauIntraSgwSucc');
INSERT INTO `kpi_title` VALUES (124, 'MME', 'MME.A.16', '{\"cn\":\"伴随SGW内切换的TAU失败请求次数\",\"en\":\"TauIntraSgwFail\"}', '伴随SGW内切换的TAU失败请求次数', 'TauIntraSgwFail');
INSERT INTO `kpi_title` VALUES (125, 'MME', 'MME.A.17', '{\"cn\":\"MME寻呼次数\",\"en\":\"PagingEpsAtt\"}', 'MME寻呼次数', 'PagingEpsAtt');
INSERT INTO `kpi_title` VALUES (126, 'MME', 'MME.A.18', '{\"cn\":\"MME寻呼成功次数\",\"en\":\"PagingEpsSucc\"}', 'MME寻呼成功次数', 'PagingEpsSucc');
INSERT INTO `kpi_title` VALUES (127, 'MME', 'MME.A.19', '{\"cn\":\"MME寻呼失败次数\",\"en\":\"PagingEpsFail\"}', 'MME寻呼失败次数', 'PagingEpsFail');
INSERT INTO `kpi_title` VALUES (128, 'MME', 'MME.A.20', '{\"cn\":\"MME隐式分离请求次数\",\"en\":\"EpsImplicitDetach\"}', 'MME隐式分离请求次数', 'EpsImplicitDetach');
INSERT INTO `kpi_title` VALUES (129, 'MME', 'MME.A.21', '{\"cn\":\"MME激活专用承载请求次数\",\"en\":\"ActDedicatedEpsBearerAtt\"}', 'MME激活专用承载请求次数', 'ActDedicatedEpsBearerAtt');
INSERT INTO `kpi_title` VALUES (130, 'MME', 'MME.A.22', '{\"cn\":\"MME激活专用承载请求成功次数\",\"en\":\"ActDedicatedEpsBearerSucc\"}', 'MME激活专用承载请求成功次数', 'ActDedicatedEpsBearerSucc');
INSERT INTO `kpi_title` VALUES (131, 'MME', 'MME.A.23', '{\"cn\":\"MME激活专用承载请求失败次数\",\"en\":\"ActDedicatedEpsBearerFail\"}', 'MME激活专用承载请求失败次数', 'ActDedicatedEpsBearerFail');
INSERT INTO `kpi_title` VALUES (132, 'MME', 'MME.A.24', '{\"cn\":\"MME去激活专用承载请求次数\",\"en\":\"DeactEpsDedicatedBearerAtt\"}', 'MME去激活专用承载请求次数', 'DeactEpsDedicatedBearerAtt');
INSERT INTO `kpi_title` VALUES (133, 'MME', 'MME.A.25', '{\"cn\":\"MME去激活专用承载请求成功次数\",\"en\":\"DeactEpsDedicatedBearerSucc\"}', 'MME去激活专用承载请求成功次数', 'DeactEpsDedicatedBearerSucc');
INSERT INTO `kpi_title` VALUES (134, 'MME', 'MME.A.26', '{\"cn\":\"MME修改专用承载请求次数\",\"en\":\"ModEpsBearerAtt\"}', 'MME修改专用承载请求次数', 'ModEpsBearerAtt');
INSERT INTO `kpi_title` VALUES (135, 'MME', 'MME.A.27', '{\"cn\":\"MME修改专用承载请求成功次数\",\"en\":\"ModEpsBearerSucc\"}', 'MME修改专用承载请求成功次数', 'ModEpsBearerSucc');
INSERT INTO `kpi_title` VALUES (136, 'MME', 'MME.A.28', '{\"cn\":\"MME修改专用承载请求失败次数\",\"en\":\"ModEpsBearerFail\"}', 'MME修改专用承载请求失败次数', 'ModEpsBearerFail');
INSERT INTO `kpi_title` VALUES (137, 'MME', 'MME.A.29', '{\"cn\":\"MME服务请求次数\",\"en\":\"EpsServiceReqAtt\"}', 'MME服务请求次数', 'EpsServiceReqAtt');
INSERT INTO `kpi_title` VALUES (138, 'MME', 'MME.A.30', '{\"cn\":\"MME服务请求成功次数\",\"en\":\"EpsServiceReqSucc\"}', 'MME服务请求成功次数', 'EpsServiceReqSucc');
INSERT INTO `kpi_title` VALUES (139, 'MME', 'MME.A.31', '{\"cn\":\"MME服务请求失败次数\",\"en\":\"EpsServiceReqFail\"}', 'MME服务请求失败次数', 'EpsServiceReqFail');
INSERT INTO `kpi_title` VALUES (140, 'MOCNGW', 'MOCNGW.01', '{\"cn\":\"AttachRequest\",\"en\":\"AttachRequest\"}', 'AttachRequest', 'AttachRequest');
INSERT INTO `kpi_title` VALUES (141, 'MOCNGW', 'MOCNGW.02', '{\"cn\":\"AttachAccept\",\"en\":\"AttachAccept\"}', 'AttachAccept', 'AttachAccept');
INSERT INTO `kpi_title` VALUES (142, 'MOCNGW', 'MOCNGW.03', '{\"cn\":\"AttachComplete\",\"en\":\"AttachComplete\"}', 'AttachComplete', 'AttachComplete');
INSERT INTO `kpi_title` VALUES (143, 'MOCNGW', 'MOCNGW.04', '{\"cn\":\"AttachReject\",\"en\":\"AttachReject\"}', 'AttachReject', 'AttachReject');
INSERT INTO `kpi_title` VALUES (144, 'MOCNGW', 'MOCNGW.05', '{\"cn\":\"DetachRequest\",\"en\":\"DetachRequest\"}', 'DetachRequest', 'DetachRequest');
INSERT INTO `kpi_title` VALUES (145, 'MOCNGW', 'MOCNGW.06', '{\"cn\":\"DetachAccept\",\"en\":\"DetachAccept\"}', 'DetachAccept', 'DetachAccept');
INSERT INTO `kpi_title` VALUES (146, 'MOCNGW', 'MOCNGW.07', '{\"cn\":\"TrackingAreaUpdateRequest\",\"en\":\"TrackingAreaUpdateRequest\"}', 'TrackingAreaUpdateRequest', 'TrackingAreaUpdateRequest');
INSERT INTO `kpi_title` VALUES (147, 'MOCNGW', 'MOCNGW.08', '{\"cn\":\"TrackingAreaUpdateAccept\",\"en\":\"TrackingAreaUpdateAccept\"}', 'TrackingAreaUpdateAccept', 'TrackingAreaUpdateAccept');
INSERT INTO `kpi_title` VALUES (148, 'MOCNGW', 'MOCNGW.09', '{\"cn\":\"TrackingAreaUpdateComplete\",\"en\":\"TrackingAreaUpdateComplete\"}', 'TrackingAreaUpdateComplete', 'TrackingAreaUpdateComplete');
INSERT INTO `kpi_title` VALUES (149, 'MOCNGW', 'MOCNGW.10', '{\"cn\":\"TrackingAreaUpdateReject\",\"en\":\"TrackingAreaUpdateReject\"}', 'TrackingAreaUpdateReject', 'TrackingAreaUpdateReject');
INSERT INTO `kpi_title` VALUES (150, 'MOCNGW', 'MOCNGW.11', '{\"cn\":\"ServiceRequest\",\"en\":\"ServiceRequest\"}', 'ServiceRequest', 'ServiceRequest');
INSERT INTO `kpi_title` VALUES (151, 'MOCNGW', 'MOCNGW.12', '{\"cn\":\"ExtendedServiceRequest\",\"en\":\"ExtendedServiceRequest\"}', 'ExtendedServiceRequest', 'ExtendedServiceRequest');
INSERT INTO `kpi_title` VALUES (152, 'MOCNGW', 'MOCNGW.13', '{\"cn\":\"ControlPlaneServiceRequest\",\"en\":\"ControlPlaneServiceRequest\"}', 'ControlPlaneServiceRequest', 'ControlPlaneServiceRequest');
INSERT INTO `kpi_title` VALUES (153, 'MOCNGW', 'MOCNGW.14', '{\"cn\":\"ServiceReject\",\"en\":\"ServiceReject\"}', 'ServiceReject', 'ServiceReject');
INSERT INTO `kpi_title` VALUES (154, 'MOCNGW', 'MOCNGW.15', '{\"cn\":\"ServiceAccept\",\"en\":\"ServiceAccept\"}', 'ServiceAccept', 'ServiceAccept');
INSERT INTO `kpi_title` VALUES (155, 'MOCNGW', 'MOCNGW.16', '{\"cn\":\"GutiReallocationCommand\",\"en\":\"GutiReallocationCommand\"}', 'GutiReallocationCommand', 'GutiReallocationCommand');
INSERT INTO `kpi_title` VALUES (156, 'MOCNGW', 'MOCNGW.17', '{\"cn\":\"GutiReallocationComplete\",\"en\":\"GutiReallocationComplete\"}', 'GutiReallocationComplete', 'GutiReallocationComplete');
INSERT INTO `kpi_title` VALUES (157, 'MOCNGW', 'MOCNGW.18', '{\"cn\":\"AuthenticationRequest\",\"en\":\"AuthenticationRequest\"}', 'AuthenticationRequest', 'AuthenticationRequest');
INSERT INTO `kpi_title` VALUES (158, 'MOCNGW', 'MOCNGW.19', '{\"cn\":\"AuthenticationResponse\",\"en\":\"AuthenticationResponse\"}', 'AuthenticationResponse', 'AuthenticationResponse');
INSERT INTO `kpi_title` VALUES (159, 'MOCNGW', 'MOCNGW.20', '{\"cn\":\"AuthenticationReject\",\"en\":\"AuthenticationReject\"}', 'AuthenticationReject', 'AuthenticationReject');
INSERT INTO `kpi_title` VALUES (160, 'MOCNGW', 'MOCNGW.21', '{\"cn\":\"AuthenticationFailure\",\"en\":\"AuthenticationFailure\"}', 'AuthenticationFailure', 'AuthenticationFailure');
INSERT INTO `kpi_title` VALUES (161, 'MOCNGW', 'MOCNGW.22', '{\"cn\":\"IdentityRequest\",\"en\":\"IdentityRequest\"}', 'IdentityRequest', 'IdentityRequest');
INSERT INTO `kpi_title` VALUES (162, 'MOCNGW', 'MOCNGW.23', '{\"cn\":\"IdentityResponse\",\"en\":\"IdentityResponse\"}', 'IdentityResponse', 'IdentityResponse');
INSERT INTO `kpi_title` VALUES (163, 'MOCNGW', 'MOCNGW.24', '{\"cn\":\"SecurityModeCommand\",\"en\":\"SecurityModeCommand\"}', 'SecurityModeCommand', 'SecurityModeCommand');
INSERT INTO `kpi_title` VALUES (164, 'MOCNGW', 'MOCNGW.25', '{\"cn\":\"SecurityModeComplete\",\"en\":\"SecurityModeComplete\"}', 'SecurityModeComplete', 'SecurityModeComplete');
INSERT INTO `kpi_title` VALUES (165, 'MOCNGW', 'MOCNGW.26', '{\"cn\":\"SecurityModeReject\",\"en\":\"SecurityModeReject\"}', 'SecurityModeReject', 'SecurityModeReject');
INSERT INTO `kpi_title` VALUES (166, 'MOCNGW', 'MOCNGW.27', '{\"cn\":\"EmmStatus\",\"en\":\"EmmStatus\"}', 'EmmStatus', 'EmmStatus');
INSERT INTO `kpi_title` VALUES (167, 'MOCNGW', 'MOCNGW.28', '{\"cn\":\"EmmInformation\",\"en\":\"EmmInformation\"}', 'EmmInformation', 'EmmInformation');
INSERT INTO `kpi_title` VALUES (168, 'MOCNGW', 'MOCNGW.29', '{\"cn\":\"DownlinkNasTransport\",\"en\":\"DownlinkNasTransport\"}', 'DownlinkNasTransport', 'DownlinkNasTransport');
INSERT INTO `kpi_title` VALUES (169, 'MOCNGW', 'MOCNGW.30', '{\"cn\":\"UplinkNasTransport\",\"en\":\"UplinkNasTransport\"}', 'UplinkNasTransport', 'UplinkNasTransport');
INSERT INTO `kpi_title` VALUES (170, 'MOCNGW', 'MOCNGW.31', '{\"cn\":\"CsServiceNotification\",\"en\":\"CsServiceNotification\"}', 'CsServiceNotification', 'CsServiceNotification');
INSERT INTO `kpi_title` VALUES (171, 'MOCNGW', 'MOCNGW.32', '{\"cn\":\"DownlinkGenericNasTransport\",\"en\":\"DownlinkGenericNasTransport\"}', 'DownlinkGenericNasTransport', 'DownlinkGenericNasTransport');
INSERT INTO `kpi_title` VALUES (172, 'MOCNGW', 'MOCNGW.33', '{\"cn\":\"UplinkGenericNasTransport\",\"en\":\"UplinkGenericNasTransport\"}', 'UplinkGenericNasTransport', 'UplinkGenericNasTransport');
INSERT INTO `kpi_title` VALUES (173, 'IMS', 'SCSCF.01', '{\"cn\": \"LTE接入注册用户数\",\"en\": \"UR.SubsLTE.fromVoLTE\"}', 'LTE接入注册用户数', 'UR.SubsLTE.fromVoLTE');
INSERT INTO `kpi_title` VALUES (174, 'IMS', 'SCSCF.02', '{\"cn\": \"5G接入注册用户数\",\"en\": \"UR.Subs5G.fromVo5G\"}', '5G接入注册用户数', 'UR.Subs5G.fromVo5G');
INSERT INTO `kpi_title` VALUES (175, 'IMS', 'SCSCF.03', '{\"cn\": \"初始注册成功次数\",\"en\": \"UR.SuccInitReg\"}', '初始注册成功次数', 'UR.SuccInitReg');
INSERT INTO `kpi_title` VALUES (176, 'IMS', 'SCSCF.04', '{\"cn\": \"初始注册请求次数\",\"en\": \"UR.AttInitReg\"}', '初始注册请求次数', 'UR.AttInitReg');
INSERT INTO `kpi_title` VALUES (177, 'IMS', 'SCSCF.05', '{\"cn\": \"主叫接通次数\",\"en\": \"SC.SuccSessionOrig\"}', '主叫接通次数', 'SC.SuccSessionOrig');
INSERT INTO `kpi_title` VALUES (178, 'IMS', 'SCSCF.06', '{\"cn\": \"主叫试呼次数\",\"en\": \"SC.AttSessionOrig\"}', '主叫试呼次数', 'SC.AttSessionOrig');
INSERT INTO `kpi_title` VALUES (179, 'IMS', 'SCSCF.07', '{\"cn\": \"被叫接通次数\",\"en\": \"SC.SuccSessionTerm\"}', '被叫接通次数', 'SC.SuccSessionTerm');
INSERT INTO `kpi_title` VALUES (180, 'IMS', 'SCSCF.08', '{\"cn\": \"被叫试呼次数\",\"en\": \"SC.AttSessionTerm\"}', '被叫试呼次数', 'SC.AttSessionTerm');
INSERT INTO `kpi_title` VALUES (181, 'IMS', 'SCSCF.09', '{\"cn\": \"主叫应答次数\",\"en\": \"SC.AnsSessionOrig\"}', '主叫应答次数', 'SC.AnsSessionOrig');
INSERT INTO `kpi_title` VALUES (182, 'IMS', 'SCSCF.10', '{\"cn\": \"主叫早释次数\",\"en\": \"SC.OrigRelBeforeRing\"}', '主叫早释次数', 'SC.OrigRelBeforeRing');
INSERT INTO `kpi_title` VALUES (183, 'IMS', 'SCSCF.11', '{\"cn\": \"主叫振铃早释次数\",\"en\": \"SC.OrigRelAfterRing\"}', '主叫振铃早释次数', 'SC.OrigRelAfterRing');
INSERT INTO `kpi_title` VALUES (184, 'IMS', 'SCSCF.12', '{\"cn\": \"主叫403请求禁止次数\",\"en\": \"SC.FailSessionOrig.403\"}', '主叫403请求禁止次数', 'SC.FailSessionOrig.403');
INSERT INTO `kpi_title` VALUES (185, 'IMS', 'SCSCF.13', '{\"cn\": \"主叫404未找到次数\",\"en\": \"SC.FailSessionOrig.404\"}', '主叫404未找到次数', 'SC.FailSessionOrig.404');
INSERT INTO `kpi_title` VALUES (186, 'IMS', 'SCSCF.14', '{\"cn\": \"主叫408请求超时次数\",\"en\": \"SC.FailSessionOrig.408\"}', '主叫408请求超时次数', 'SC.FailSessionOrig.408');
INSERT INTO `kpi_title` VALUES (187, 'IMS', 'SCSCF.15', '{\"cn\": \"主叫480久叫不应次\",\"en\": \"SC.FailSessionOrig.480\"}', '主叫480久叫不应次', 'SC.FailSessionOrig.480');
INSERT INTO `kpi_title` VALUES (188, 'IMS', 'SCSCF.16', '{\"cn\": \"主叫484Request-URI不完整次\",\"en\": \"SC.FailSessionOrig.484\"}', '主叫484Request-URI不完整次', 'SC.FailSessionOrig.484');
INSERT INTO `kpi_title` VALUES (189, 'IMS', 'SCSCF.17', '{\"cn\": \"主叫486用户忙次数\",\"en\": \"SC.FailSessionOrig.486\"}', '主叫486用户忙次数', 'SC.FailSessionOrig.486');
INSERT INTO `kpi_title` VALUES (190, 'IMS', 'SCSCF.18', '{\"cn\": \"主叫487请求终止次数\",\"en\": \"SC.FailSessionOrig.487\"}', '主叫487请求终止次数', 'SC.FailSessionOrig.487');
INSERT INTO `kpi_title` VALUES (191, 'IMS', 'SCSCF.19', '{\"cn\": \"主叫600用户忙次数\",\"en\": \"SC.FailSessionOrig.600\"}', '主叫600用户忙次数', 'SC.FailSessionOrig.600');
INSERT INTO `kpi_title` VALUES (192, 'IMS', 'SCSCF.20', '{\"cn\": \"主叫603用户拒接次数\",\"en\": \"SC.FailSessionOrig.603\"}', '主叫603用户拒接次数', 'SC.FailSessionOrig.603');
INSERT INTO `kpi_title` VALUES (193, 'IMS', 'SCSCF.21', '{\"cn\": \"主叫604用户信息不存在次数\",\"en\": \"SC.FailSessionOrig.604\"}', '主叫604用户信息不存在次数', 'SC.FailSessionOrig.604');
INSERT INTO `kpi_title` VALUES (194, 'IMS', 'SCSCF.22', '{\"cn\": \"被叫应答次数\",\"en\": \"SC.AnsSessionTerm\"}', '被叫应答次数', 'SC.AnsSessionTerm');
INSERT INTO `kpi_title` VALUES (195, 'IMS', 'SCSCF.23', '{\"cn\": \"被叫早释次\",\"en\": \"SC.TermiRelBeforeRing\"}', '被叫早释次', 'SC.TermiRelBeforeRing');
INSERT INTO `kpi_title` VALUES (196, 'IMS', 'SCSCF.24', '{\"cn\": \"被叫振铃早释次数\",\"en\": \"SC.TermiRelAfterRing\"}', '被叫振铃早释次数', 'SC.TermiRelAfterRing');
INSERT INTO `kpi_title` VALUES (197, 'IMS', 'SCSCF.25', '{\"cn\": \"被叫403请求禁止次数\",\"en\": \"SC.FailSessionTerm.403\"}', '被叫403请求禁止次数', 'SC.FailSessionTerm.403');
INSERT INTO `kpi_title` VALUES (198, 'IMS', 'SCSCF.26', '{\"cn\": \"被叫404未找到次数\",\"en\": \"SC.FailSessionTerm.404\"}', '被叫404未找到次数', 'SC.FailSessionTerm.404');
INSERT INTO `kpi_title` VALUES (199, 'IMS', 'SCSCF.27', '{\"cn\": \"被叫408请求超时次数\",\"en\": \"SC.FailSessionTerm.408\"}', '被叫408请求超时次数', 'SC.FailSessionTerm.408');
INSERT INTO `kpi_title` VALUES (200, 'IMS', 'SCSCF.28', '{\"cn\": \"被叫480久叫不应次数\",\"en\": \"SC.FailSessionTerm.480\"}', '被叫480久叫不应次数', 'SC.FailSessionTerm.480');
INSERT INTO `kpi_title` VALUES (201, 'IMS', 'SCSCF.29', '{\"cn\": \"被叫484Request-URI不完整次数\",\"en\": \"SC.FailSessionTerm.484\"}', '被叫484Request-URI不完整次数', 'SC.FailSessionTerm.484');
INSERT INTO `kpi_title` VALUES (202, 'IMS', 'SCSCF.30', '{\"cn\": \"被叫486用户忙次数\",\"en\": \"SC.FailSessionTerm.486\"}', '被叫486用户忙次数', 'SC.FailSessionTerm.486');
INSERT INTO `kpi_title` VALUES (203, 'IMS', 'SCSCF.31', '{\"cn\": \"被叫487请求终止次数\",\"en\": \"SC.FailSessionTerm.487\"}', '被叫487请求终止次数', 'SC.FailSessionTerm.487');
INSERT INTO `kpi_title` VALUES (204, 'IMS', 'SCSCF.32', '{\"cn\": \"被叫600用户忙次数\",\"en\": \"SC.FailSessionTerm.600\"}', '被叫600用户忙次数', 'SC.FailSessionTerm.600');
INSERT INTO `kpi_title` VALUES (205, 'IMS', 'SCSCF.33', '{\"cn\": \"被叫603用户拒接次数\",\"en\": \"SC.FailSessionTerm.603\"}', '被叫603用户拒接次数', 'SC.FailSessionTerm.603');
INSERT INTO `kpi_title` VALUES (206, 'IMS', 'SCSCF.34', '{\"cn\": \"被叫604用户信息不存在次数\",\"en\": \"SC.FailSessionTerm.604\"}', '被叫604用户信息不存在次数', 'SC.FailSessionTerm.604');
INSERT INTO `kpi_title` VALUES (207, 'PCF', 'PCF.01', '{\"cn\": \"在线N7会话数\", \"en\": \"PCF.SmAssocNbrMean\"}', '在线N7会话数', 'PCF.SmAssocNbrMean');
INSERT INTO `kpi_title` VALUES (208, 'PCF', 'PCF.02', '{\"cn\": \"SM策略关联建立成功次数\", \"en\": \"PCF.PolicySmAssocCreateSucc\"}', 'SM策略关联建立成功次数', 'PCF.PolicySmAssocCreateSucc');
INSERT INTO `kpi_title` VALUES (209, 'PCF', 'PCF.03', '{\"cn\": \"SM策略关联建立请求次数\", \"en\": \"PCF.PolicySmAssocCreateReq\"}', 'SM策略关联建立请求次数', 'PCF.PolicySmAssocCreateReq');
INSERT INTO `kpi_title` VALUES (210, 'PCF', 'PCF.04', '{\"cn\": \"SM策略关联更新成功次数\", \"en\": \"PCF.PolicySmAssocUpdateSucc\"}', 'SM策略关联更新成功次数', 'PCF.PolicySmAssocUpdateSucc');
INSERT INTO `kpi_title` VALUES (211, 'PCF', 'PCF.05', '{\"cn\": \"SM策略关联更新请求次数\", \"en\": \"PCF.PolicySmAssocUpdateReq\"}', 'SM策略关联更新请求次数', 'PCF.PolicySmAssocUpdateReq');
INSERT INTO `kpi_title` VALUES (212, 'PCF', 'PCF.06', '{\"cn\": \"在线Gx会话数\", \"en\": \"SM.SessionNbrMean\"}', '在线Gx会话数', 'SM.SessionNbrMean');
INSERT INTO `kpi_title` VALUES (213, 'PCF', 'PCF.07', '{\"cn\": \"在线Rx会话数\", \"en\": \"SM.RxSessionMean\"}', '在线Rx会话数', 'SM.RxSessionMean');
INSERT INTO `kpi_title` VALUES (214, 'PCF', 'PCF.08', '{\"cn\": \"PCRF策略控制发起成功次数\", \"en\": \"DIAM.CcInitialSuccess\"}', 'PCRF策略控制发起成功次数', 'DIAM.CcInitialSuccess');
INSERT INTO `kpi_title` VALUES (215, 'PCF', 'PCF.09', '{\"cn\": \"PCRF策略控制发起请求次数\", \"en\": \"DIAM.CcInitialRequest\"}', 'PCRF策略控制发起请求次数', 'DIAM.CcInitialRequest');
INSERT INTO `kpi_title` VALUES (216, 'PCF', 'PCF.10', '{\"cn\": \"应用会话授权成功次数\", \"en\": \"DIAM.AuthSucc\"}', '应用会话授权成功次数', 'DIAM.AuthSucc');
INSERT INTO `kpi_title` VALUES (217, 'PCF', 'PCF.11', '{\"cn\": \"应用会话授权尝试次数\", \"en\": \"DIAM.AuthRequest\"}', '应用会话授权尝试次数', 'DIAM.AuthRequest');
INSERT INTO `kpi_title` VALUES (218, 'PCF', 'PCF.12', '{\"cn\": \"PCRF策略控制更新成功次数\", \"en\": \"DIAM.CcUpdateSuccess\"}', 'PCRF策略控制更新成功次数', 'DIAM.CcUpdateSuccess');
INSERT INTO `kpi_title` VALUES (219, 'PCF', 'PCF.13', '{\"cn\": \"PCRF策略控制更新请求次数\", \"en\": \"DIAM.CcUpdateRequest\"}', 'PCRF策略控制更新请求次数', 'DIAM.CcUpdateRequest');
-- 更新SMSC 20240815
INSERT INTO `kpi_title` VALUES (220, 'SMSC', 'SMSC.A.01', '{\"cn\": \"MS到SMSC短信请求次数\", \"en\": \"SMSC.MStoSMSCAtt\"}', 'MS到SMSC短信请求次数', 'SMSC.MStoSMSCAtt');
INSERT INTO `kpi_title` VALUES (221, 'SMSC', 'SMSC.A.02', '{\"cn\": \"MS到SMSC短信成功次数\", \"en\": \"SMSC.MStoSMSCSucc\"}', 'MS到SMSC短信成功次数', 'SMSC.MStoSMSCSucc');
INSERT INTO `kpi_title` VALUES (222, 'SMSC', 'SMSC.A.03', '{\"cn\": \"MS到SMSC短信失败次数\", \"en\": \"SMSC.MStoSMSCFail\"}', 'MS到SMSC短信失败次数', 'SMSC.MStoSMSCFail');
INSERT INTO `kpi_title` VALUES (223, 'SMSC', 'SMSC.A.04', '{\"cn\": \"MS到SMSC短信字节数\", \"en\": \"SMSC.MStoSMSCBytes\"}', 'MS到SMSC短信字节数', 'SMSC.MStoSMSCBytes');
INSERT INTO `kpi_title` VALUES (224, 'SMSC', 'SMSC.A.05', '{\"cn\": \"VSS到SMSC短信请求次数\", \"en\": \"SMSC.VSStoSMSCAtt\"}', 'VSS到SMSC短信请求次数', 'SMSC.VSStoSMSCAtt');
INSERT INTO `kpi_title` VALUES (225, 'SMSC', 'SMSC.A.06', '{\"cn\": \"VSS到SMSC短信成功次数\", \"en\": \"SMSC.VSStoSMSCSucc\"}', 'VSS到SMSC短信成功次数', 'SMSC.VSStoSMSCSucc');
INSERT INTO `kpi_title` VALUES (226, 'SMSC', 'SMSC.A.07', '{\"cn\": \"VSS到SMSC短信失败次数\", \"en\": \"SMSC.VSStoSMSCFail\"}', 'VSS到SMSC短信失败次数', 'SMSC.VSStoSMSCFail');
INSERT INTO `kpi_title` VALUES (227, 'SMSC', 'SMSC.A.08', '{\"cn\": \"VSS到SMSC短信字节数\", \"en\": \"SMSC.VSStoSMSCBytes\"}', 'VSS到SMSC短信字节数', 'SMSC.VSStoSMSCBytes');
INSERT INTO `kpi_title` VALUES (228, 'SMSC', 'SMSC.A.09', '{\"cn\": \"PPS到SMSC短信请求次数\", \"en\": \"SMSC.PPStoSMSCAtt\"}', 'PPS到SMSC短信请求次数', 'SMSC.PPStoSMSCAtt');
INSERT INTO `kpi_title` VALUES (229, 'SMSC', 'SMSC.A.10', '{\"cn\": \"PPS到SMSC短信成功次数\", \"en\": \"SMSC.PPStoSMSCSucc\"}', 'PPS到SMSC短信成功次数', 'SMSC.PPStoSMSCSucc');
INSERT INTO `kpi_title` VALUES (230, 'SMSC', 'SMSC.A.11', '{\"cn\": \"PPS到SMSC短信失败次数\", \"en\": \"SMSC.PPStoSMSCFail\"}', 'PPS到SMSC短信失败次数', 'SMSC.PPStoSMSCFail');
INSERT INTO `kpi_title` VALUES (231, 'SMSC', 'SMSC.A.12', '{\"cn\": \"PPS到SMSC短信字节数\", \"en\": \"SMSC.PPStoSMSCBytes\"}', 'PPS到SMSC短信字节数', 'SMSC.PPStoSMSCBytes');
INSERT INTO `kpi_title` VALUES (232, 'SMSC', 'SMSC.A.13', '{\"cn\": \"SMPP到SMSC短信请求次数\", \"en\": \"SMSC.SMPPtoSMSCAtt\"}', 'SMPP到SMSC短信请求次数', 'SMSC.SMPPtoSMSCAtt');
INSERT INTO `kpi_title` VALUES (233, 'SMSC', 'SMSC.A.14', '{\"cn\": \"SMPP到SMSC短信成功次数\", \"en\": \"SMSC.SMPPtoSMSCSucc\"}', 'SMPP到SMSC短信成功次数', 'SMSC.SMPPtoSMSCSucc');
INSERT INTO `kpi_title` VALUES (234, 'SMSC', 'SMSC.A.15', '{\"cn\": \"SMPP到SMSC短信失败次数\", \"en\": \"SMSC.SMPPtoSMSCFail\"}', 'SMPP到SMSC短信失败次数', 'SMSC.SMPPtoSMSCFail');
INSERT INTO `kpi_title` VALUES (235, 'SMSC', 'SMSC.A.16', '{\"cn\": \"SMPP到SMSC短信字节数\", \"en\": \"SMSC.SMPPtoSMSCBytes\"}', 'SMPP到SMSC短信字节数', 'SMSC.SMPPtoSMSCBytes');
INSERT INTO `kpi_title` VALUES (236, 'SMSC', 'SMSC.A.17', '{\"cn\": \"SMSC到MS短信请求次数\", \"en\": \"SMSC.SMSCtoMSAtt\"}', 'SMSC到MS短信请求次数', 'SMSC.SMSCtoMSAtt');
INSERT INTO `kpi_title` VALUES (237, 'SMSC', 'SMSC.A.18', '{\"cn\": \"SMSC到MS短信成功次数\", \"en\": \"SMSC.SMSCtoMSSucc\"}', 'SMSC到MS短信成功次数', 'SMSC.SMSCtoMSSucc');
INSERT INTO `kpi_title` VALUES (238, 'SMSC', 'SMSC.A.19', '{\"cn\": \"SMSC到MS短信失败次数\", \"en\": \"SMSC.SMSCtoMSFail\"}', 'SMSC到MS短信失败次数', 'SMSC.SMSCtoMSFail');
INSERT INTO `kpi_title` VALUES (239, 'SMSC', 'SMSC.A.20', '{\"cn\": \"SMSC到MS短信字节数\", \"en\": \"SMSC.SMSCtoMSBytes\"}', 'SMSC到MS短信字节数', 'SMSC.SMSCtoMSBytes');
INSERT INTO `kpi_title` VALUES (240, 'SMSC', 'SMSC.A.21', '{\"cn\": \"SMSC到VSS短信请求次数\", \"en\": \"SMSC.SMSCtoVSSAtt\"}', 'SMSC到VSS短信请求次数', 'SMSC.SMSCtoVSSAtt');
INSERT INTO `kpi_title` VALUES (241, 'SMSC', 'SMSC.A.22', '{\"cn\": \"SMSC到VSS短信成功次数\", \"en\": \"SMSC.SMSCtoVSSucc\"}', 'SMSC到VSS短信成功次数', 'SMSC.SMSCtoVSSucc');
INSERT INTO `kpi_title` VALUES (242, 'SMSC', 'SMSC.A.23', '{\"cn\": \"SMSC到VSS短信失败次数\", \"en\": \"SMSC.SMSCtoVSSFail\"}', 'SMSC到VSS短信失败次数', 'SMSC.SMSCtoVSSFail');
INSERT INTO `kpi_title` VALUES (243, 'SMSC', 'SMSC.A.24', '{\"cn\": \"SMSC到VSS短信字节数\", \"en\": \"SMSC.SMSCtoVSSBytes\"}', 'SMSC到VSS短信字节数', 'SMSC.SMSCtoVSSBytes');
INSERT INTO `kpi_title` VALUES (244, 'SMSC', 'SMSC.A.25', '{\"cn\": \"SMSC到PPS短信请求次数\", \"en\": \"SMSC.SMSCtoPPSAtt\"}', 'SMSC到PPS短信请求次数', 'SMSC.SMSCtoPPSAtt');
INSERT INTO `kpi_title` VALUES (245, 'SMSC', 'SMSC.A.26', '{\"cn\": \"SMSC到PPS短信成功次数\", \"en\": \"SMSC.SMSCtoPPSucc\"}', 'SMSC到PPS短信成功次数', 'SMSC.SMSCtoPPSucc');
INSERT INTO `kpi_title` VALUES (246, 'SMSC', 'SMSC.A.27', '{\"cn\": \"SMSC到PPS短信失败次数\", \"en\": \"SMSC.SMSCtoPPSFail\"}', 'SMSC到PPS短信失败次数', 'SMSC.SMSCtoPPSFail');
INSERT INTO `kpi_title` VALUES (247, 'SMSC', 'SMSC.A.28', '{\"cn\": \"SMSC到PPS短信字节数\", \"en\": \"SMSC.SMSCtoPPSBytes\"}', 'SMSC到PPS短信字节数', 'SMSC.SMSCtoPPSBytes');
INSERT INTO `kpi_title` VALUES (248, 'SMSC', 'SMSC.A.29', '{\"cn\": \"SMSC到SMPP短信请求次数\", \"en\": \"SMSC.SMSCtoSMPPAtt\"}', 'SMSC到SMPP短信请求次数', 'SMSC.SMSCtoSMPPAtt');
INSERT INTO `kpi_title` VALUES (249, 'SMSC', 'SMSC.A.30', '{\"cn\": \"SMSC到SMPP短信成功次数\", \"en\": \"SMSC.SMSCtoSMPPucc\"}', 'SMSC到SMPP短信成功次数', 'SMSC.SMSCtoSMPPucc');
INSERT INTO `kpi_title` VALUES (250, 'SMSC', 'SMSC.A.31', '{\"cn\": \"SMSC到SMPP短信失败次数\", \"en\": \"SMSC.SMSCtoSMPPFail\"}', 'SMSC到SMPP短信失败次数', 'SMSC.SMSCtoSMPPFail');
INSERT INTO `kpi_title` VALUES (251, 'SMSC', 'SMSC.A.32', '{\"cn\": \"SMSC到SMPP短信字节数\", \"en\": \"SMSC.SMSCtoSMPPBytes\"}', 'SMSC到SMPP短信字节数', 'SMSC.SMSCtoSMPPBytes');
-- 更新CBC 20240823
INSERT INTO `kpi_title` VALUES (252, 'CBC', 'CBC.A.01', '{\"cn\": \"CBC 发起 Create Write 消息成功\", \"en\": \"WarningReqSucc\"}', 'CBC 发起 Create Write 消息成功', 'WarningReqSucc');
INSERT INTO `kpi_title` VALUES (253, 'CBC', 'CBC.A.02', '{\"cn\": \"CBC 发起 Create Write 消息失败\", \"en\": \"WarningReqFail\"}', 'CBC 发起 Create Write 消息失败', 'WarningReqFail');
INSERT INTO `kpi_title` VALUES (254, 'CBC', 'CBC.A.03', '{\"cn\": \"CBC 发起 Cancel Write 消息成功\", \"en\": \"WarningCancelSucc\"}', 'CBC 发起 Cancel Write 消息成功', 'WarningCancelSucc');
INSERT INTO `kpi_title` VALUES (255, 'CBC', 'CBC.A.04', '{\"cn\": \"CBC 发起 Cancel Write 消息失败\", \"en\": \"WarningCancelFail\"}', 'CBC 发起 Cancel Write 消息失败', 'WarningCancelFail');
-- 更新HLR 20241213
INSERT INTO `kpi_title` VALUES (256, 'HLR', 'HLR.A.001', NULL, '鉴权信息请求次数', 'AuthReqTotalNum');
INSERT INTO `kpi_title` VALUES (257, 'HLR', 'HLR.A.002', NULL, '鉴权信息请求成功次数', 'AuthSuccTotalNum');
INSERT INTO `kpi_title` VALUES (258, 'HLR', 'HLR.A.003', NULL, '鉴权请求失败:缺参数', 'AuthFailByMissPara');
INSERT INTO `kpi_title` VALUES (259, 'HLR', 'HLR.A.004', NULL, '鉴权请求失败:系统错误', 'AuthFailBySysFail');
INSERT INTO `kpi_title` VALUES (260, 'HLR', 'HLR.A.005', NULL, '鉴权请求失败:非期望的参数值', 'AuthFailByUnexptData');
INSERT INTO `kpi_title` VALUES (261, 'HLR', 'HLR.A.006', NULL, '鉴权请求失败:未知用户', 'AuthFailByUnknownUser');
INSERT INTO `kpi_title` VALUES (262, 'HLR', 'HLR.A.007', NULL, '鉴权失败报告次数', 'AuthFailReportTotalNum');
INSERT INTO `kpi_title` VALUES (263, 'HLR', 'HLR.A.008', NULL, '鉴权失败报告(错误的网络签名)次数', 'AuthFailReportByErrNetSign');
INSERT INTO `kpi_title` VALUES (264, 'HLR', 'HLR.A.009', NULL, '鉴权失败报告(错误的用户响应)次数', 'AuthFailReportByErrUserRsp');
INSERT INTO `kpi_title` VALUES (265, 'HLR', 'HLR.A.010', NULL, '登记请求次数', 'LuReqTotalNum');
INSERT INTO `kpi_title` VALUES (266, 'HLR', 'HLR.A.011', NULL, '登记成功次数', 'LuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (267, 'HLR', 'HLR.A.012', NULL, '登记失败:复制手机', 'LuFailByDuplicUnit');
INSERT INTO `kpi_title` VALUES (268, 'HLR', 'HLR.A.013', NULL, '登记失败无效ESN', 'LuFailByInvalidESN');
INSERT INTO `kpi_title` VALUES (269, 'HLR', 'HLR.A.014', NULL, '登记失败:缺鉴权参数', 'LuFailByMissAuthPara');
INSERT INTO `kpi_title` VALUES (270, 'HLR', 'HLR.A.015', NULL, '登记失败在这个MSC中不能使用', 'LuFailByMscNotAllow');
INSERT INTO `kpi_title` VALUES (271, 'HLR', 'HLR.A.016', NULL, '登记失败:终端类型不匹配', 'LuFailByUeTypeMismatch');
INSERT INTO `kpi_title` VALUES (272, 'HLR', 'HLR.A.017', NULL, '登记失败:未分配号码的手机', 'LuFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (273, 'HLR', 'HLR.A.018', NULL, '登记失败:不确定', 'LuFailByUnKnown');
INSERT INTO `kpi_title` VALUES (274, 'HLR', 'HLR.A.019', NULL, '注销登记次数', 'CancelLuReqTotalNum');
INSERT INTO `kpi_title` VALUES (275, 'HLR', 'HLR.A.020', NULL, '注销登记成功次数', 'CancelLuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (276, 'HLR', 'HLR.A.021', NULL, '注销失败:系统错误', 'CancelLuFailBySysFail');
INSERT INTO `kpi_title` VALUES (277, 'HLR', 'HLR.A.022', NULL, '注销失败:缺参数', 'CancelLuFailByMissPara');
INSERT INTO `kpi_title` VALUES (278, 'HLR', 'HLR.A.023', NULL, '移动台去活次数', 'MsPurgeReqTotalNum');
INSERT INTO `kpi_title` VALUES (279, 'HLR', 'HLR.A.024', NULL, '移动台去活成功次数', 'MsPurgeSuccTotalNum');
INSERT INTO `kpi_title` VALUES (280, 'HLR', 'HLR.A.025', NULL, '移动台去活:系统错误', 'MsPurgeFailBySysFail');
INSERT INTO `kpi_title` VALUES (281, 'HLR', 'HLR.A.026', NULL, '移动台去活:非期望的参数值', 'MsPurgeFailByUnexptPara');
INSERT INTO `kpi_title` VALUES (282, 'HLR', 'HLR.A.027', NULL, '移动台去活:未知用户', 'MsPurgeFailByUnknownUser');
INSERT INTO `kpi_title` VALUES (283, 'HLR', 'HLR.A.028', NULL, 'GPRS登记请求次数', 'GprsLuReqTotalNum');
INSERT INTO `kpi_title` VALUES (284, 'HLR', 'HLR.A.029', NULL, 'GPRS登记请求成功次数', 'GprsLuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (285, 'HLR', 'HLR.A.030', NULL, 'GPRS去登记次数', 'GprsPurgeReqTotalNum');
INSERT INTO `kpi_title` VALUES (286, 'HLR', 'HLR.A.031', NULL, 'GPRS去登记成功次数', 'GprsPurgeSuccTotalNum');
INSERT INTO `kpi_title` VALUES (287, 'HLR', 'HLR.A.032', NULL, 'GPRS注销登记次数', 'GprsCancelLuReqTotalNum');
INSERT INTO `kpi_title` VALUES (288, 'HLR', 'HLR.A.033', NULL, 'GPRS注销登记成功次数', 'GprsCancelLuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (289, 'HLR', 'HLR.A.034', NULL, 'GPRS路由请求次数', 'GprsRoutInfoReqTotalNum');
INSERT INTO `kpi_title` VALUES (290, 'HLR', 'HLR.A.035', NULL, 'GPRS用户激活失败报告次数', 'GprsActiveFailReportTotalNum');
INSERT INTO `kpi_title` VALUES (291, 'HLR', 'HLR.A.036', NULL, 'GPRS用户激活失败报告成功次数', 'GprsActiveFailReportSuccTotalNum');
INSERT INTO `kpi_title` VALUES (292, 'HLR', 'HLR.A.037', NULL, 'GPRS用户激活失败报告失败缺参数', 'GprsActiveFailReportFailByMissPara');
INSERT INTO `kpi_title` VALUES (293, 'HLR', 'HLR.A.038', NULL, 'GPRS用户激活失败报告失败系统错误', 'GprsActiveFailReportFailBySysFail');
INSERT INTO `kpi_title` VALUES (294, 'HLR', 'HLR.A.039', NULL, 'GPRS用户激活失败报告失败非期望的参数值', 'GprsActiveFailReportFailByUnexptPara');
INSERT INTO `kpi_title` VALUES (295, 'HLR', 'HLR.A.040', NULL, 'GPRS用户激活失败报告失败未知用户', 'GprsActiveFailReportFailByUnKnownUser');
INSERT INTO `kpi_title` VALUES (296, 'HLR', 'HLR.A.041', NULL, '发起CFU业务登记且激活次数', 'CfuActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (297, 'HLR', 'HLR.A.042', NULL, 'CFU业务登记且激活成功次数', 'CfuActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (298, 'HLR', 'HLR.A.043', NULL, 'CFU登记失败MS忙', 'CfuRegFailByMsBusy');
INSERT INTO `kpi_title` VALUES (299, 'HLR', 'HLR.A.044', NULL, 'CFU登记失败不允许将呼叫终接到MS', 'CfuRegFailByMsDenied');
INSERT INTO `kpi_title` VALUES (300, 'HLR', 'HLR.A.045', NULL, 'CFU登记失败MS去登记状态', 'CfuRegFailByMsErase');
INSERT INTO `kpi_title` VALUES (301, 'HLR', 'HLR.A.046', NULL, 'CFU登记失败无寻呼响应', 'CfuRegFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (302, 'HLR', 'HLR.A.047', NULL, 'CFU登记失败系统错误', 'CfuRegFailBySysFail');
INSERT INTO `kpi_title` VALUES (303, 'HLR', 'HLR.A.048', NULL, 'CFU登记失败未分配电话号码', 'CfuRegFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (304, 'HLR', 'HLR.A.049', NULL, 'CFU登记失败不可用', 'CfuRegFailByUnavailable');
INSERT INTO `kpi_title` VALUES (305, 'HLR', 'HLR.A.050', NULL, '发起CFU业务去活次数', 'CfuDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (306, 'HLR', 'HLR.A.051', NULL, 'CFU业务去活成功次数', 'CfuDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (307, 'HLR', 'HLR.A.052', NULL, 'CFU去活失败MS忙', 'CfuDeActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (308, 'HLR', 'HLR.A.053', NULL, 'CFU去活失败不允许将呼叫终接到MS', 'CfuDeActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (309, 'HLR', 'HLR.A.054', NULL, 'CFU去活失败未分配电话号码', 'CfuDeActvFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (310, 'HLR', 'HLR.A.055', NULL, 'CFU去活失败MS去登记状态', 'CfuDeActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (311, 'HLR', 'HLR.A.056', NULL, 'CFU去活失败无寻呼响应', 'CfuDeActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (312, 'HLR', 'HLR.A.057', NULL, 'CFU去活失败系统错误', 'CfuDeActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (313, 'HLR', 'HLR.A.058', NULL, 'CFU去活失败不可用', 'CfuDeActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (314, 'HLR', 'HLR.A.059', NULL, '发起CFB业务登记且激活次数', 'CfbActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (315, 'HLR', 'HLR.A.060', NULL, 'CFB业务登记且激活成功次数', 'CfbActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (316, 'HLR', 'HLR.A.061', NULL, 'CFB登记失败MS忙', 'CfbRegFailByMsBusy');
INSERT INTO `kpi_title` VALUES (317, 'HLR', 'HLR.A.062', NULL, 'CFB登记失败不允许将呼叫终接到MS', 'CfbRegFailByMsDenied');
INSERT INTO `kpi_title` VALUES (318, 'HLR', 'HLR.A.063', NULL, 'CFB登记失败MS去登记状态', 'CfbRegFailByMsErase');
INSERT INTO `kpi_title` VALUES (319, 'HLR', 'HLR.A.064', NULL, 'CFB登记失败无寻呼响应', 'CfbRegFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (320, 'HLR', 'HLR.A.065', NULL, 'CFB登记失败系统错误', 'CfbRegFailBySysFail');
INSERT INTO `kpi_title` VALUES (321, 'HLR', 'HLR.A.066', NULL, 'CFB登记失败未分配电话号码', 'CfbRegFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (322, 'HLR', 'HLR.A.067', NULL, 'CFB登记失败不可用', 'CfbRegFailByUnavailable');
INSERT INTO `kpi_title` VALUES (323, 'HLR', 'HLR.A.068', NULL, '发起CFB业务去活次数', 'CfbDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (324, 'HLR', 'HLR.A.069', NULL, 'CFB业务去活成功次数', 'CfbDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (325, 'HLR', 'HLR.A.070', NULL, 'CFB去活失败MS忙', 'CfbDeActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (326, 'HLR', 'HLR.A.071', NULL, 'CFB去活失败不允许将呼叫终接到MS', 'CfbDeActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (327, 'HLR', 'HLR.A.072', NULL, 'CFB去活失败MS去登记状态', 'CfbDeActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (328, 'HLR', 'HLR.A.073', NULL, 'CFB去活失败无寻呼响应', 'CfbDeActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (329, 'HLR', 'HLR.A.074', NULL, 'CFB去活失败系统错误', 'CfbDeActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (330, 'HLR', 'HLR.A.075', NULL, 'CFB去活失败未分配电话号码', 'CfbDeActvFailByUnAssignMsisdn ');
INSERT INTO `kpi_title` VALUES (331, 'HLR', 'HLR.A.076', NULL, 'CFB去活失败不可用', 'CfbDeActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (332, 'HLR', 'HLR.A.077', NULL, '发起CFNRy业务登记且激活次数', 'CfnryActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (333, 'HLR', 'HLR.A.078', NULL, 'CFNRy业务登记且激活成功次数', 'CfnryActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (334, 'HLR', 'HLR.A.079', NULL, 'CFNRy登记失败MS忙', 'CfnryRegFailByMsBusy');
INSERT INTO `kpi_title` VALUES (335, 'HLR', 'HLR.A.080', NULL, 'CFNRy登记失败不允许将呼叫终接到MS', 'CfnryRegFailByMsDenied');
INSERT INTO `kpi_title` VALUES (336, 'HLR', 'HLR.A.081', NULL, 'CFNRy登记失败MS去登记状态', 'CfnryRegFailByMsErase');
INSERT INTO `kpi_title` VALUES (337, 'HLR', 'HLR.A.082', NULL, 'CFNRy登记失败无寻呼响应', 'CfnryRegFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (338, 'HLR', 'HLR.A.083', NULL, 'CFNRy登记失败系统错误', 'CfnryRegFailBySysFail');
INSERT INTO `kpi_title` VALUES (339, 'HLR', 'HLR.A.084', NULL, 'CFNRy登记失败未分配电话号码', 'CfnryRegFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (340, 'HLR', 'HLR.A.085', NULL, 'CFNRy登记失败不可用', 'CfnryRegFailByUnavailable');
INSERT INTO `kpi_title` VALUES (341, 'HLR', 'HLR.A.086', NULL, '发起CFNRy业务去活次数', 'CfnryDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (342, 'HLR', 'HLR.A.087', NULL, 'CFNRy业务去活成功次数', 'CfnryDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (343, 'HLR', 'HLR.A.088', NULL, 'CFNRy去活失败MS忙', 'CfnryDeActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (344, 'HLR', 'HLR.A.089', NULL, 'CFNRy去活失败不允许将呼叫终接到MS', 'CfnryDeActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (345, 'HLR', 'HLR.A.090', NULL, 'CFNRy去活失败MS去登记状态', 'CfnryDeActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (346, 'HLR', 'HLR.A.091', NULL, 'CFNRy去活失败无寻呼响应', 'CfnryDeActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (347, 'HLR', 'HLR.A.092', NULL, 'CFNRy去活失败系统错误', 'CfnryDeActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (348, 'HLR', 'HLR.A.093', NULL, 'CFNRy去活失败未分配电话号码', 'CfnryDeActvFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (349, 'HLR', 'HLR.A.094', NULL, 'CFNRy去活失败不可用', 'CfnryDeActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (350, 'HLR', 'HLR.A.095', NULL, '发起CFNRc)业务登记且激活次数', 'CfnrcActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (351, 'HLR', 'HLR.A.096', NULL, '(CFNRc)业务登记且激活成功次数', 'CfnrcActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (352, 'HLR', 'HLR.A.097', NULL, '(CFNRc)登记失败MS忙', 'CfnrcRegFailByMsBusy');
INSERT INTO `kpi_title` VALUES (353, 'HLR', 'HLR.A.098', NULL, '(CFNRc)登记失败不允许将呼叫终接到MS', 'CfnrcRegFailByMsDenied');
INSERT INTO `kpi_title` VALUES (354, 'HLR', 'HLR.A.099', NULL, '(CFNRc)登记失败MS去登记状态', 'CfnrcRegFailByMsErase');
INSERT INTO `kpi_title` VALUES (355, 'HLR', 'HLR.A.100', NULL, '(CFNRc)登记失败:无寻呼响应', 'CfnrcRegFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (356, 'HLR', 'HLR.A.101', NULL, '(CFNRc)登记失败:系统错误', 'CfnrcRegFailBySysFail');
INSERT INTO `kpi_title` VALUES (357, 'HLR', 'HLR.A.102', NULL, '(CFNRc)登记失败:未分配电话号码', 'CfnrcRegFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (358, 'HLR', 'HLR.A.103', NULL, '(CFNRc)登记失败:不可用', 'CfnrcRegFailByUnavailable');
INSERT INTO `kpi_title` VALUES (359, 'HLR', 'HLR.A.104', NULL, '发起CFNRc)业务去活次数', 'CfnrcDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (360, 'HLR', 'HLR.A.105', NULL, 'CFNRc业务去活成功次数', 'CfnrcDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (361, 'HLR', 'HLR.A.106', NULL, 'CFNRc)去活失败MS忙', 'CfnrcDeActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (362, 'HLR', 'HLR.A.107', NULL, 'CFNRc)去活失败不允许将呼叫终接到MS', 'CfnrcDeActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (363, 'HLR', 'HLR.A.108', NULL, 'CFNRc)去活失败MS去登记状态', 'CfnrcDeActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (364, 'HLR', 'HLR.A.109', NULL, 'CFNRc)去活失败:无寻呼响应', 'CfnrcDeActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (365, 'HLR', 'HLR.A.110', NULL, 'CFNRc)去活失败:系统错误', 'CfnrcDeActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (366, 'HLR', 'HLR.A.111', NULL, 'CFNRc)去活失败:未分配电话号码', 'CfnrcDeActvFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (367, 'HLR', 'HLR.A.112', NULL, 'CFNRc)去活失败:不可用', 'CfnrcDeActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (368, 'HLR', 'HLR.A.113', NULL, '发起CW业务激活次数', 'CwActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (369, 'HLR', 'HLR.A.114', NULL, 'CW业务激活成功次数', 'CwActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (370, 'HLR', 'HLR.A.115', NULL, 'CW激活失败MS忙', 'CwActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (371, 'HLR', 'HLR.A.116', NULL, 'CW激活失败不允许将呼叫终接到MS', 'CwActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (372, 'HLR', 'HLR.A.117', NULL, 'CW激活失败MS去登记状态', 'CwActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (373, 'HLR', 'HLR.A.118', NULL, 'CW激活失败无寻呼响应', 'CwActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (374, 'HLR', 'HLR.A.119', NULL, 'CW激活失败系统错误', 'CwActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (375, 'HLR', 'HLR.A.120', NULL, 'CW激活失败未分配电话号码', 'CwActvFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (376, 'HLR', 'HLR.A.121', NULL, 'CW激活失败不可用', 'CwActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (377, 'HLR', 'HLR.A.122', NULL, '发起CW业务去活次数', 'CwDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (378, 'HLR', 'HLR.A.123', NULL, 'CW业务去活成功次数', 'CwDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (379, 'HLR', 'HLR.A.124', NULL, 'CW去活失败MS忙', 'CwDeActvFailByMsBusy');
INSERT INTO `kpi_title` VALUES (380, 'HLR', 'HLR.A.125', NULL, 'CW去活失败不允许将呼叫终接到MS', 'CwDeActvFailByMsDenied');
INSERT INTO `kpi_title` VALUES (381, 'HLR', 'HLR.A.126', NULL, 'CW去活失败MS去登记状态', 'CwDeActvFailByMsErase');
INSERT INTO `kpi_title` VALUES (382, 'HLR', 'HLR.A.127', NULL, 'CW去活失败无寻呼响应', 'CwDeActvFailByNoPagingResp');
INSERT INTO `kpi_title` VALUES (383, 'HLR', 'HLR.A.128', NULL, 'CW去活失败系统错误', 'CwDeActvFailBySysFail');
INSERT INTO `kpi_title` VALUES (384, 'HLR', 'HLR.A.129', NULL, 'CW去活失败未分配电话号码', 'CwDeActvFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (385, 'HLR', 'HLR.A.130', NULL, 'CW去活失败不可用', 'CwDeActvFailByUnavailable');
INSERT INTO `kpi_title` VALUES (386, 'HLR', 'HLR.A.131', NULL, '发起前转业务去活次数', 'CFDeActvReqTotalNum');
INSERT INTO `kpi_title` VALUES (387, 'HLR', 'HLR.A.132', NULL, '前转业务去活成功次数', 'CFDeActvSuccTotalNum');
INSERT INTO `kpi_title` VALUES (388, 'HLR', 'HLR.A.133', NULL, '发起补充业务登记次数', 'SSRegReqTotalNum');
INSERT INTO `kpi_title` VALUES (389, 'HLR', 'HLR.A.134', NULL, '发起补充业务登记成功次数', 'SSRegSuccTotalNum');
INSERT INTO `kpi_title` VALUES (390, 'HLR', 'HLR.A.135', NULL, '获取路由尝试次数', 'RouteInfoReqTotalNum');
INSERT INTO `kpi_title` VALUES (391, 'HLR', 'HLR.A.136', NULL, '获取路由成功次数', 'RouteInfoSuccTotalNum');
INSERT INTO `kpi_title` VALUES (392, 'HLR', 'HLR.A.137', NULL, '获取路由尝试失败:缺席用户', 'RouteInfoFailByAbsentSub');
INSERT INTO `kpi_title` VALUES (393, 'HLR', 'HLR.A.138', NULL, '获取路由尝试失败:未知用户', 'RouteInfoFailByUnknownSub');
INSERT INTO `kpi_title` VALUES (394, 'HLR', 'HLR.A.139', NULL, '获取路由尝试失败:系统错误', 'RouteInfoFailBySysFail');
INSERT INTO `kpi_title` VALUES (395, 'HLR', 'HLR.A.140', NULL, '获取路由尝试失败:终呼拒绝', 'RouteInfoFailByCalledReject');
INSERT INTO `kpi_title` VALUES (396, 'HLR', 'HLR.A.141', NULL, '获取路由尝试失败:缺参数', 'RouteInfoFailByDataMiss');
INSERT INTO `kpi_title` VALUES (397, 'HLR', 'HLR.A.142', NULL, '获取路由尝试失败:设备不支持', 'RouteInfoFailByFacNotSupport');
INSERT INTO `kpi_title` VALUES (398, 'HLR', 'HLR.A.143', NULL, '获取路由尝试失败:不支持路由优化', 'RouteInfoFailByORNotAllowed');
INSERT INTO `kpi_title` VALUES (399, 'HLR', 'HLR.A.144', NULL, 'SRI触发漫游号码请求失败缺席用户', 'RouteNumberFailByAbsentSub');
INSERT INTO `kpi_title` VALUES (400, 'HLR', 'HLR.A.145', NULL, 'SRI触发漫游号码请求失败缺参数', 'RouteNumberFailByDataMiss');
INSERT INTO `kpi_title` VALUES (401, 'HLR', 'HLR.A.146', NULL, 'SRI触发漫游号码请求失败设备不支持', 'RouteNumberFailByFacNotSupport');
INSERT INTO `kpi_title` VALUES (402, 'HLR', 'HLR.A.147', NULL, 'SRI触发漫游号码请求失败无漫游号码分配', 'RouteNumberFailByNoAssign');
INSERT INTO `kpi_title` VALUES (403, 'HLR', 'HLR.A.148', NULL, 'SRI触发漫游号码请求失败不支持路由优化', 'RouteNumberFailByORNotAllowed');
INSERT INTO `kpi_title` VALUES (404, 'HLR', 'HLR.A.149', NULL, 'SRI触发漫游号码请求次数', 'RouteNumberReqTotalNum');
INSERT INTO `kpi_title` VALUES (405, 'HLR', 'HLR.A.150', NULL, 'SRI触发漫游号码请求失败系统错误', 'RouteNumberFailBySysFail');
INSERT INTO `kpi_title` VALUES (406, 'HLR', 'HLR.A.151', NULL, 'SRI触发漫游号码请求失败非期望的参数值', 'RouteNumberFailByUnexpData');
INSERT INTO `kpi_title` VALUES (407, 'HLR', 'HLR.A.152', NULL, 'SRI触发漫游号码请求成功次数', 'RouteNumberSuccTotalNum');
INSERT INTO `kpi_title` VALUES (408, 'HLR', 'HLR.A.153', NULL, '路由失败:呼叫闭锁', 'SMRouteFailByCallBarred');
INSERT INTO `kpi_title` VALUES (409, 'HLR', 'HLR.A.154', NULL, '路由失败:缺参数', 'SMRouteFailByDataMiss');
INSERT INTO `kpi_title` VALUES (410, 'HLR', 'HLR.A.155', NULL, '路由失败:设备不支持', 'SMRouteFailByFacNotSupport');
INSERT INTO `kpi_title` VALUES (411, 'HLR', 'HLR.A.156', NULL, '路由失败:系统错误', 'SMRouteFailBySysFail');
INSERT INTO `kpi_title` VALUES (412, 'HLR', 'HLR.A.157', NULL, '路由失败:非期望的参数值', 'SMRouteFailByUnexptPara');
INSERT INTO `kpi_title` VALUES (413, 'HLR', 'HLR.A.158', NULL, '路由失败:未知用户', 'SMRouteFailByUnknownSub');
INSERT INTO `kpi_title` VALUES (414, 'HLR', 'HLR.A.159', NULL, '终呼失败:非法用户', 'SMRouteFailByIllegalSub');
INSERT INTO `kpi_title` VALUES (415, 'HLR', 'HLR.A.160', NULL, '终呼失败:缺席用户', 'SMRouteFailByAbsentSub');
INSERT INTO `kpi_title` VALUES (416, 'HLR', 'HLR.A.161', NULL, '终呼失败:终呼时用户忙', 'SMRouteFailByBusySub');
INSERT INTO `kpi_title` VALUES (417, 'HLR', 'HLR.A.162', NULL, '终呼失败:系统错误', 'SMRouteFailBySysFail');
INSERT INTO `kpi_title` VALUES (418, 'HLR', 'HLR.A.163', NULL, '终呼失败:不期望的参数值', 'SMRouteFailByUnexptPara');
INSERT INTO `kpi_title` VALUES (419, 'HLR', 'HLR.A.164', NULL, '终呼失败:消息等待队列满', 'SMRouteFailByMsgQueueFull');
INSERT INTO `kpi_title` VALUES (420, 'HLR', 'HLR.A.165', NULL, '接收GSM MAP_ALERT消息次数', 'GsmAlertReqTotalNum');
INSERT INTO `kpi_title` VALUES (421, 'HLR', 'HLR.A.166', NULL, '接收GSM MAP_ALERT消息成功次数', 'GsmAlertSuccTotalNum');
INSERT INTO `kpi_title` VALUES (422, 'HLR', 'HLR.A.167', NULL, '重启指示发送次数', 'ResetReqTotalNum');
INSERT INTO `kpi_title` VALUES (423, 'HLR', 'HLR.A.168', NULL, '重启成功次数', 'ResetSuccTotalNum');
INSERT INTO `kpi_title` VALUES (424, 'HLR', 'HLR.A.169', NULL, '数据恢复请求次数', 'RestoreDataReqTotalNum');
INSERT INTO `kpi_title` VALUES (425, 'HLR', 'HLR.A.170', NULL, '数据恢复成功次数', 'RestoreDataReqSuccNum');
INSERT INTO `kpi_title` VALUES (426, 'HLR', 'HLR.A.171', NULL, 'C2G Boss开户成功次数', 'AddUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (427, 'HLR', 'HLR.A.172', NULL, 'C2G Boss销户成功次数', 'DelUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (428, 'HLR', 'HLR.A.173', NULL, 'C2G Boss修改用户成功次数', 'ModUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (429, 'HLR', 'HLR.A.174', NULL, 'C2G Boss开户请求次数', 'AddUserBossReqNum');
INSERT INTO `kpi_title` VALUES (430, 'HLR', 'HLR.A.175', NULL, 'C2G Boss受理失败返回IMSI not used次数', 'BossServFailByImsiNot');
INSERT INTO `kpi_title` VALUES (431, 'HLR', 'HLR.A.176', NULL, 'C2G Boss受理失败返回ISDN not used次数', 'BossServFailByIsdnNot');
INSERT INTO `kpi_title` VALUES (432, 'HLR', 'HLR.A.177', NULL, 'C2G Boss受理失败返回其他错误次数', 'BossServFailByOther');
INSERT INTO `kpi_title` VALUES (433, 'HLR', 'HLR.A.178', NULL, 'C2G Boss受理失败返回repeat IMSI次数', 'BossServFailByRepImsi');
INSERT INTO `kpi_title` VALUES (434, 'HLR', 'HLR.A.179', NULL, 'C2G Boss受理失败返回repeat ISDN次数', 'BossServFailByRepIsdn');
INSERT INTO `kpi_title` VALUES (435, 'HLR', 'HLR.A.180', NULL, 'C2G Boss销户请求次数', 'DelUserBossReqNum');
INSERT INTO `kpi_title` VALUES (436, 'HLR', 'HLR.A.181', NULL, 'C2G Boss修改用户请求次数', 'ModUserBossReqNum');
-- INSERT INTO `kpi_title` VALUES (20, 'AMF', 'AMF.20', '{\"cn\": \"EPS在线用户数\", \"en\": \"SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected\"}', 'EPS在线用户数', 'SUB.NbrSub.EcmIdle+SUB.NbrSub.EcmConnected');
-- INSERT INTO `kpi_title` VALUES (21, 'AMF', 'AMF.21', '{\"cn\": \"EPS附着成功次数\", \"en\": \"MM.SuccEpsAttach\"}', 'EPS附着成功次数', 'MM.SuccEpsAttach');
-- INSERT INTO `kpi_title` VALUES (22, 'AMF', 'AMF.22', '{\"cn\": \"EPS附着请求次数\", \"en\": \"MM.AttEpsAttach\"}', 'EPS附着请求次数', 'MM.AttEpsAttach');
-- INSERT INTO `kpi_title` VALUES (23, 'AMF', 'AMF.23', '{\"cn\": \"EPS附着失败次数_非法用户\", \"en\": \"MM.FailedEpsAttach.3\"}', 'EPS附着失败次数_非法用户', 'MM.FailedEpsAttach.3');
-- INSERT INTO `kpi_title` VALUES (24, 'AMF', 'AMF.24', '{\"cn\": \"EPS附着失败次数_非法终端\", \"en\": \"MM.FailedEpsAttach.5\"}', 'EPS附着失败次数_非法终端', 'MM.FailedEpsAttach.5');
-- INSERT INTO `kpi_title` VALUES (25, 'AMF', 'AMF.25', '{\"cn\": \"EPS附着失败次数_非法ME\", \"en\": \"MM.FailedEpsAttach.6\"}', 'EPS附着失败次数_非法ME', 'MM.FailedEpsAttach.6');
-- INSERT INTO `kpi_title` VALUES (26, 'AMF', 'AMF.26', '{\"cn\": \"EPS附着失败次数_EPS服务不允许_用户原因\", \"en\": \"MM.FailedEpsAttach.7.User\"}', 'EPS附着失败次数_EPS服务不允许_用户原因', 'MM.FailedEpsAttach.7.User');
-- INSERT INTO `kpi_title` VALUES (27, 'AMF', 'AMF.27', '{\"cn\": \"EPS附着失败次数_EPS和非EPS服务不允许\", \"en\": \"MM.FailedEpsAttach.8\"}', 'EPS附着失败次数_EPS和非EPS服务不允许', 'MM.FailedEpsAttach.8');
-- INSERT INTO `kpi_title` VALUES (28, 'AMF', 'AMF.28', '{\"cn\": \"EPS附着失败次数_跟踪区内无合适小区_用户原因\", \"en\": \"MM.FailedEpsAttach.15.User\"}', 'EPS附着失败次数_跟踪区内无合适小区_用户原因', 'MM.FailedEpsAttach.15.User');
-- INSERT INTO `kpi_title` VALUES (29, 'AMF', 'AMF.29', '{\"cn\": \"EPS附着失败次数_ESM失败_用户原因\", \"en\": \"MM.FailedEpsAttach.19.User\"}', 'EPS附着失败次数_ESM失败_用户原因', 'MM.FailedEpsAttach.19.User');
-- INSERT INTO `kpi_title` VALUES (30, 'AMF', 'AMF.30', '{\"cn\": \"MME一次寻呼响应次数\", \"en\": \"MM.FirstPagingSucc\"}', 'MME一次寻呼响应次数', 'MM.FirstPagingSucc');
-- INSERT INTO `kpi_title` VALUES (31, 'AMF', 'AMF.31', '{\"cn\": \"MME二次寻呼响应次数\", \"en\": \"MM.SecondPagingSucc\"}', 'MME二次寻呼响应次数', 'MM.SecondPagingSucc');
-- INSERT INTO `kpi_title` VALUES (32, 'AMF', 'AMF.32', '{\"cn\": \"MME寻呼请求次数\", \"en\": \"MM.PagAtt\"}', 'MME寻呼请求次数', 'MM.PagAtt');
INSERT INTO `kpi_title` VALUES (33, 'AMF', 'AMF.A.02', '{\"cn\":\"AMF移动性注册更新成功次数\",\"en\":\"AMF.SuccMobiReg\"}', 'AMF移动性注册更新成功次数', 'AMF.SuccMobiReg');
INSERT INTO `kpi_title` VALUES (34, 'AMF', 'AMF.A.03', '{\"cn\":\"AMF移动性注册更新失败次数\",\"en\":\"AMF.FailedMobiReg\"}', 'AMF移动性注册更新失败次数', 'AMF.FailedMobiReg');
INSERT INTO `kpi_title` VALUES (35, 'AMF', 'AMF.A.04', '{\"cn\":\"AMF紧急注册请求次数\",\"en\":\"AMF.AttEmergReg\"}', 'AMF紧急注册请求次数', 'AMF.AttEmergReg');
INSERT INTO `kpi_title` VALUES (36, 'AMF', 'AMF.A.05', '{\"cn\":\"AMF紧急注册成功次数\",\"en\":\"AMF.SuccEmergReg\"}', 'AMF紧急注册成功次数', 'AMF.SuccEmergReg');
INSERT INTO `kpi_title` VALUES (37, 'AMF', 'AMF.A.06', '{\"cn\":\"AMF紧急注册失败次数\",\"en\":\"AMF.FailedEmergReg\"}', 'AMF紧急注册失败次数', 'AMF.FailedEmergReg');
INSERT INTO `kpi_title` VALUES (38, 'AMF', 'AMF.A.07', '{\"cn\":\"UE发起的去注册请求次数\",\"en\":\"AMF.AttUeDereg\"}', 'UE发起的去注册请求次数', 'AMF.AttUeDereg');
INSERT INTO `kpi_title` VALUES (39, 'AMF', 'AMF.A.08', '{\"cn\":\"UE发起的去注册成功次数\",\"en\":\"AMF.SuccUeDereg\"}', 'UE发起的去注册成功次数', 'AMF.SuccUeDereg');
INSERT INTO `kpi_title` VALUES (40, 'AMF', 'AMF.A.09', '{\"cn\":\"AMF发起的去注册请求次数\",\"en\":\"AMF.AttAmfDereg\"}', 'AMF发起的去注册请求次数', 'AMF.AttAmfDereg');
INSERT INTO `kpi_title` VALUES (41, 'AMF', 'AMF.A.10', '{\"cn\":\"AMF发起的去注册成功次数\",\"en\":\"AMF.SuccAmfDereg\"}', 'AMF发起的去注册成功次数', 'AMF.SuccAmfDereg');
INSERT INTO `kpi_title` VALUES (42, 'AMF', 'AMF.A.11', '{\"cn\":\"UDM发起的去注册请求次数\",\"en\":\"AMF.AttUdmDereg\"}', 'UDM发起的去注册请求次数', 'AMF.AttUdmDereg');
INSERT INTO `kpi_title` VALUES (43, 'AMF', 'AMF.A.12', '{\"cn\":\"UDM发起的去注册成功次数\",\"en\":\"AMF.SuccUdmDereg\"}', 'UDM发起的去注册成功次数', 'AMF.SuccUdmDereg');
INSERT INTO `kpi_title` VALUES (44, 'AMF', 'AMF.A.13', '{\"cn\":\"AMF寻呼失败次数\",\"en\":\"AMF.PagFail\"}', 'AMF寻呼失败次数', 'AMF.PagFail');
INSERT INTO `kpi_title` VALUES (45, 'AMF', 'AMF.A.14', '{\"cn\":\"AMF隐式去注册次数\",\"en\":\"AMF.ImplicitDereg\"}', 'AMF隐式去注册次', 'AMF.ImplicitDereg');
-- 更新UDM 20250613
INSERT INTO `kpi_title` VALUES (60, 'UDM', 'UDM.01', '{\"cn\": \"5G注册用户数\", \"en\": \"UDR.5gActSub\"}', '5G注册用户', 'UDR.5gActSub');
INSERT INTO `kpi_title` VALUES (61, 'UDM', 'UDM.02', '{\"cn\": \"AMF发起的UECM注册请求次数\", \"en\": \"UDM.AmfUecmRegReq\"}', 'AMF发起的UECM注册请求次', 'UDM.AmfUecmRegReq');
INSERT INTO `kpi_title` VALUES (62, 'UDM', 'UDM.03', '{\"cn\": \"AMF发起的UECM注册成功次数\", \"en\": \"UDM.AmfUecmRegSucc\"}', 'AMF发起的UECM注册成功次', 'UDM.AmfUecmRegSucc');
INSERT INTO `kpi_title` VALUES (63, 'UDM', 'UDM.04', '{\"cn\": \"SMF发起的UECM注册成功次数\", \"en\": \"UDM.SmfUecmRegSucc\"}', 'SMF发起的UECM注册成功次', 'UDM.SmfUecmRegSucc');
INSERT INTO `kpi_title` VALUES (64, 'UDM', 'UDM.05', '{\"cn\": \"SMF发起的UECM注册请求次数\", \"en\": \"UDM.SmfUecmRegReq\"}', 'SMF发起的UECM注册请求次', 'UDM.SmfUecmRegReq');
-- INSERT INTO `kpi_title` VALUES (65, 'UDM', 'UDM.06', '{\"cn\": \"4G注册用户数\", \"en\": \"SUB.EpsActSubsInHss\"}', '4G注册用户数', 'SUB.EpsActSubsInHss');
-- INSERT INTO `kpi_title` VALUES (66, 'UDM', 'UDM.07', '{\"cn\": \"4G鉴权信息查询成功次数\", \"en\": \"DIAM.AucInfoAnsSucc\"}', '4G鉴权信息查询成功次数', 'DIAM.AucInfoAnsSucc');
-- INSERT INTO `kpi_title` VALUES (67, 'UDM', 'UDM.08', '{\"cn\": \"4G鉴权信息查询请求次数\", \"en\": \"DIAM.AucInfoReq\"}', '4G鉴权信息查询请求次数', 'DIAM.AucInfoReq');
-- INSERT INTO `kpi_title` VALUES (68, 'UDM', 'UDM.09', '{\"cn\": \"4G更新位置成功次数\", \"en\": \"DIAM.UpdateLocationAnsSucc\"}', '4G更新位置成功次数', 'DIAM.UpdateLocationAnsSucc');
-- INSERT INTO `kpi_title` VALUES (69, 'UDM', 'UDM.10', '{\"cn\": \"4G更新位置请求次数\", \"en\": \"DIAM.UpdateLocationReq\"}', '4G更新位置请求次数', 'DIAM.UpdateLocationReq');
-- INSERT INTO `kpi_title` VALUES (70, 'UDM', 'UDM.11', '{\"cn\": \"SAR成功响应总次数\", \"en\": \"UR.SuccSAA\"}', 'SAR成功响应总次数', 'UR.SuccSAA');
-- INSERT INTO `kpi_title` VALUES (71, 'UDM', 'UDM.12', '{\"cn\": \"SAR请求总次数\", \"en\": \"UR.AttSAR\"}', 'SAR请求总次数', 'UR.AttSAR');
-- INSERT INTO `kpi_title` VALUES (72, 'UDM', 'UDM.13', '{\"cn\": \"LIR成功响应总次数\", \"en\": \"LIQ.SuccLIA\"}', 'LIR成功响应总次数', 'LIQ.SuccLIA');
-- INSERT INTO `kpi_title` VALUES (73, 'UDM', 'UDM.14', '{\"cn\": \"LIR请求总次数\", \"en\": \"LIQ.AttLIR\"}', 'LIR请求总次数', 'LIQ.AttLIR');
-- UDM融合AUSF
INSERT INTO `kpi_title` VALUES (437, 'UDM', 'AUSF.01', '{\"cn\": \"鉴权成功次数\", \"en\": \"Ausf.UeAuthAnsSucc\"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO `kpi_title` VALUES (438, 'UDM', 'AUSF.02', '{\"cn\": \"鉴权请求次数\", \"en\": \"Ausf.UeAuthReq\"}', '鉴权请求次数', 'Ausf.UeAuthReq');
INSERT INTO `kpi_title` VALUES (78, 'UDM', 'AUSF.01', '{\"cn\": \"鉴权成功次数\", \"en\": \"Ausf.UeAuthAnsSucc\"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO `kpi_title` VALUES (79, 'UDM', 'AUSF.02', '{\"cn\": \"鉴权请求次数\", \"en\": \"Ausf.UeAuthReq\"}', '鉴权请求次数', 'Ausf.UeAuthReq');
-- 更新AUSF 20250613
INSERT INTO `kpi_title` VALUES (80, 'AUSF', 'AUSF.01', '{\"cn\": \"鉴权成功次数\", \"en\": \"Ausf.UeAuthAnsSucc\"}', '鉴权成功次数', 'Ausf.UeAuthAnsSucc');
INSERT INTO `kpi_title` VALUES (81, 'AUSF', 'AUSF.02', '{\"cn\": \"鉴权请求次数\", \"en\": \"Ausf.UeAuthReq\"}', '鉴权请求次数', 'Ausf.UeAuthReq');
-- 更新UPF 20250613
INSERT INTO `kpi_title` VALUES (90, 'UPF', 'UPF.01', '{\"cn\": \"PFCP会话建立成功次数\", \"en\": \"UPF.PfcpSessionEstabSucc\"}', 'PFCP会话建立成功次数', 'UPF.PfcpSessionEstabSucc');
INSERT INTO `kpi_title` VALUES (91, 'UPF', 'UPF.02', '{\"cn\": \"PFCP会话建立请求次数\", \"en\": \"UPF.PfcpSessionEstabReq\"}', 'PFCP会话建立请求次数', 'UPF.PfcpSessionEstabReq');
INSERT INTO `kpi_title` VALUES (92, 'UPF', 'UPF.03', '{\"cn\": \"N6接口上行字节数\", \"en\": \"UPF.N6OgOct\"}', 'N6接口上行字节数', 'UPF.N6OgOct');
INSERT INTO `kpi_title` VALUES (93, 'UPF', 'UPF.04', '{\"cn\": \"N6接口下行字节数\", \"en\": \"UPF.N6IncOct\"}', 'N6接口下行字节数', 'UPF.N6IncOct');
INSERT INTO `kpi_title` VALUES (94, 'UPF', 'UPF.05', '{\"cn\": \"N3接口上行字节数\", \"en\": \"UPF.N3OgOct\"}', 'N3接口上行字节数', 'UPF.N3OgOct');
INSERT INTO `kpi_title` VALUES (95, 'UPF', 'UPF.06', '{\"cn\": \"N3接口下行字节数\", \"en\": \"UPF.N3IncOct\"}', 'N3接口下行字节数', 'UPF.N3IncOct');
-- INSERT INTO `kpi_title` VALUES (96, 'UPF', 'UPF.07', '{\"cn\": \"SGi接口上行字节数\", \"en\": \"IP.PeakThroughputUlSgi\"}', 'SGi接口上行字节数', 'IP.PeakThroughputUlSgi');
-- INSERT INTO `kpi_title` VALUES (97, 'UPF', 'UPF.08', '{\"cn\": \"SGi接口下行字节数\", \"en\": \"IP.PeakThroughputDlSgi\"}', 'SGi接口下行字节数', 'IP.PeakThroughputDlSgi');
-- INSERT INTO `kpi_title` VALUES (98, 'UPF', 'UPF.09', '{\"cn\": \"S1-U接口上行字节数\", \"en\": \"GTP.OutOctS1uSgw\"}', 'S1-U接口上行字节数', 'GTP.OutOctS1uSgw');
-- INSERT INTO `kpi_title` VALUES (99, 'UPF', 'UPF.10', '{\"cn\": \"S1-U接口下行字节数\", \"en\": \"GTP.IncOctS1uSgw\"}', 'S1-U接口下行字节数', 'GTP.IncOctS1uSgw');
-- 更新SMF 20250613
INSERT INTO `kpi_title` VALUES (120, 'SMF', 'SMF.01', '{\"cn\": \"5G实时PDU会话数\", \"en\": \"SMF.MeanPduSession\"}', '5G实时PDU会话数', 'SMF.MeanPduSession');
INSERT INTO `kpi_title` VALUES (121, 'SMF', 'SMF.02', '{\"cn\": \"PDU会话建立成功次数\", \"en\": \"SMF.SuccCreatePduSession\"}', 'PDU会话建立成功次数', 'SMF.SuccCreatePduSession');
INSERT INTO `kpi_title` VALUES (122, 'SMF', 'SMF.03', '{\"cn\": \"PDU会话建立请求次数\", \"en\": \"SMF.AttCreatePduSession\"}', 'PDU会话建立请求次数', 'SMF.AttCreatePduSession');
INSERT INTO `kpi_title` VALUES (123, 'SMF', 'SMF.04', '{\"cn\": \"IMS PDU会话建立成功次数\", \"en\": \"SMF.SuccCreatePduSession._Ims\"}', 'IMS PDU会话建立成功次数', 'SMF.SuccCreatePduSession._Ims');
INSERT INTO `kpi_title` VALUES (124, 'SMF', 'SMF.05', '{\"cn\": \"IMS PDU会话建立请求次数\", \"en\": \"SMF.AttCreatePduSession._Ims\"}', 'IMS PDU会话建立请求次数', 'SMF.AttCreatePduSession._Ims');
-- INSERT INTO `kpi_title` VALUES (125, 'SMF', 'SMF.06', '{\"cn\": \"EPS-Fallback成功数\", \"en\": \"SMF.SuccSmfModifyBearerResponse.Epsfb\"}', 'EPS-Fallback成功数', 'SMF.SuccSmfModifyBearerResponse.Epsfb');
-- INSERT INTO `kpi_title` VALUES (126, 'SMF', 'SMF.07', '{\"cn\": \"EPS-Fallback请求数\", \"en\": \"SMF.AttSmfModifyPduSession.Epsfb\"}', 'EPS-Fallback请求数', 'SMF.AttSmfModifyPduSession.Epsfb');
-- INSERT INTO `kpi_title` VALUES (127, 'SMF', 'SMF.08', '{\"cn\": \"4G在线会话数\", \"en\": \"SM.MeanNbrBearerPgw.Default\"}', '4G在线会话数', 'SM.MeanNbrBearerPgw.Default');
-- INSERT INTO `kpi_title` VALUES (128, 'SMF', 'SMF.09', '{\"cn\": \"PGW缺省承载建立成功个数\", \"en\": \"SM.SuccCreateDefaultEpsBearer\"}', 'PGW缺省承载建立成功个数', 'SM.SuccCreateDefaultEpsBearer');
-- INSERT INTO `kpi_title` VALUES (129, 'SMF', 'SMF.10', '{\"cn\": \"PGW缺省承载建立请求个数\", \"en\": \"SM.AttCreateDefaultEpsBearer\"}', 'PGW缺省承载建立请求个数', 'SM.AttCreateDefaultEpsBearer');
-- INSERT INTO `kpi_title` VALUES (130, 'SMF', 'SMF.11', '{\"cn\": \"PGW专用承载建立成功个数\", \"en\": \"SM.SuccCreateDedicatedEpsBearer\"}', 'PGW专用承载建立成功个数', 'SM.SuccCreateDedicatedEpsBearer');
-- INSERT INTO `kpi_title` VALUES (131, 'SMF', 'SMF.12', '{\"cn\": \"PGW专用承载建立请求个数\", \"en\": \"SM.AttCreateDedicatedEpsBearer\"}', 'PGW专用承载建立请求个数', 'SM.AttCreateDedicatedEpsBearer');
-- INSERT INTO `kpi_title` VALUES (132, 'SMF', 'SMF.13', '{\"cn\": \"IMS缺省承载成功建立个数\", \"en\": \"SM.SuccCreateDefaultEpsBearer._Ims\"}', 'IMS缺省承载成功建立个数', 'SM.SuccCreateDefaultEpsBearer._Ims');
-- INSERT INTO `kpi_title` VALUES (133, 'SMF', 'SMF.14', '{\"cn\": \"IMS缺省承载请求建立个数\", \"en\": \"SM.AttCreateDefaultEpsBearer._Ims\"}', 'IMS缺省承载请求建立个数', 'SM.AttCreateDefaultEpsBearer._Ims');
INSERT INTO `kpi_title` VALUES (134, 'SMF', 'SMF.A.01', '{\"cn\":\"PDU会话接受次数\",\"en\":\"SMF.PduSessAcpt\"}', 'PDU会话接受次数', 'SMF.PduSessAcpt');
INSERT INTO `kpi_title` VALUES (135, 'SMF', 'SMF.A.02', '{\"cn\":\"基站Pdu资源创建成功次数\",\"en\":\"SM.PduResSetupSucc\"}', '基站Pdu资源创建成功次数', 'SM.PduResSetupSucc');
INSERT INTO `kpi_title` VALUES (136, 'SMF', 'SMF.A.03', '{\"cn\":\"查询用户SM数据失败次数\",\"en\":\"SM.RetrieveSmDataFail\"}', '查询用户SM数据失败次数', 'SM.RetrieveSmDataFail');
INSERT INTO `kpi_title` VALUES (137, 'SMF', 'SMF.A.04', '{\"cn\":\"PFCP会话建立失败次数\",\"en\":\"SM.PfcpSessEstFail\"}', 'PFCP会话建立失败次数', 'SM.PfcpSessEstFail');
INSERT INTO `kpi_title` VALUES (138, 'SMF', 'SMF.A.05', '{\"cn\":\"基站Pdu资源创建失败次数\",\"en\":\"SM.PduResSetupFail\"}', '基站Pdu资源创建失败次数', 'SM.PduResSetupFail');
INSERT INTO `kpi_title` VALUES (139, 'SMF', 'SMF.A.06', '{\"cn\":\"PFCP会话修改失败次数\",\"en\":\"SM.PfcpSessMdfyFail\"}', 'PFCP会话修改失败次数', 'SM.PfcpSessMdfyFail');
INSERT INTO `kpi_title` VALUES (140, 'SMF', 'SMF.A.07', '{\"cn\":\"PDU会话拒绝次数\",\"en\":\"SM.PduSessRejt\"}', 'PDU会话拒绝次数', 'SM.PduSessRejt');
INSERT INTO `kpi_title` VALUES (141, 'SMF', 'SMF.A.08', '{\"cn\":\"PDU会话释放指示次数\",\"en\":\"SM.PduSessRelCmd\"}', 'PDU会话释放指示次数', 'SM.PduSessRelCmd');
-- 更新NSSF 20250613
INSERT INTO `kpi_title` VALUES (150, 'NSSF', 'NSSF.A.02', '{\"cn\":\"可用AMF注册次数\",\"en\":\"NSSF.SuccAvailAMFPut\"}', '可用AMF注册成功次数', 'NSSF.SuccAvailAMFPut');
INSERT INTO `kpi_title` VALUES (151, 'NSSF', 'NSSF.A.03', '{\"cn\":\"可用AMF注册更新成功次数\",\"en\":\"NSSF.AvailAMFPut\"}', '可用AMF注册次数', 'NSSF.AvailAMFPut');
INSERT INTO `kpi_title` VALUES (152, 'NSSF', 'NSSF.A.04', '{\"cn\":\"可用AMF注册更新次数\",\"en\":\"NSSF.SuccAvailAMFPatch\"}', '可用AMF注册更新成功次数', 'NSSF.SuccAvailAMFPatch');
INSERT INTO `kpi_title` VALUES (153, 'NSSF', 'NSSF.A.01', '{\"cn\":\"可用AMF注册成功次数\",\"en\":\"NSSF.AvailAMFPatch\"}', '可用AMF注册更新次数', 'NSSF.AvailAMFPatch');
INSERT INTO `kpi_title` VALUES (154, 'NSSF', 'NSSF.A.05', '{\"cn\":\"可用AMF去注册成功次数\",\"en\":\"NSSF.SuccAvailAMFDelete\"}', '可用AMF去注册成功次数', 'NSSF.SuccAvailAMFDelete');
INSERT INTO `kpi_title` VALUES (155, 'NSSF', 'NSSF.A.06', '{\"cn\":\"可用AMF去注册次数\",\"en\":\"NSSF.AvailAMFDelete\"}', '可用AMF去注册次数', 'NSSF.AvailAMFDelete');
INSERT INTO `kpi_title` VALUES (156, 'NSSF', 'NSSF.A.07', '{\"cn\":\"网元订阅成功次数\",\"en\":\"NSSF.SuccAvailSubscription\"}', '网元订阅成功次数', 'NSSF.SuccAvailSubscription');
INSERT INTO `kpi_title` VALUES (157, 'NSSF', 'NSSF.A.08', '{\"cn\":\"网元订阅次数\",\"en\":\"NSSF.AvailSubscription\"}', '网元订阅次数', 'NSSF.AvailSubscription');
INSERT INTO `kpi_title` VALUES (158, 'NSSF', 'NSSF.A.09', '{\"cn\":\"网元去订阅成功次数\",\"en\":\"NSSF.SuccAvailUnsubscription\"}', '网元去订阅成功次数', 'NSSF.SuccAvailUnsubscription');
INSERT INTO `kpi_title` VALUES (159, 'NSSF', 'NSSF.A.10', '{\"cn\":\"网元去订阅次数\",\"en\":\"NSSF.AvailUnsubscription\"}', '网元去订阅次数', 'NSSF.AvailUnsubscription');
INSERT INTO `kpi_title` VALUES (160, 'NSSF', 'NSSF.A.11', '{\"cn\":\"向NRF注册成功次数\",\"en\":\"NSSF.SuccNRFReg\"}', '向NRF注册成功次数', 'NSSF.SuccNRFReg');
INSERT INTO `kpi_title` VALUES (161, 'NSSF', 'NSSF.A.12', '{\"cn\":\"向NRF注册次数\",\"en\":\"NSSF.NRFReg\"}', '向NRF注册次数', 'NSSF.NRFReg');
INSERT INTO `kpi_title` VALUES (162, 'NSSF', 'NSSF.A.13', '{\"cn\":\"向NRF发送心跳次数\",\"en\":\"NSSF.NRFHeartbeat\"}', '向NRF发送心跳次数', 'NSSF.NRFHeartbeat');
INSERT INTO `kpi_title` VALUES (163, 'NSSF', 'NSSF.A.14', '{\"cn\":\"当前注册AMF个数\",\"en\":\"NSSF.CurrentAMFCount\"}', '当前注册AMF个数', 'NSSF.CurrentAMFCount');
INSERT INTO `kpi_title` VALUES (164, 'NSSF', 'NSSF.A.15', '{\"cn\":\"当前订阅网元个数\",\"en\":\"NSSF.CurrentSubscriperCount\"}', '当前订阅网元个数', 'NSSF.CurrentSubscriperCount');
-- 更新MME 20250626
INSERT INTO `kpi_title` VALUES (180, 'MME', 'MME.A.01', '{\"cn\":\"MME附着请求次数\",\"en\":\"EpsAttachAtt\"}', 'MME附着请求次数', 'EpsAttachAtt');
INSERT INTO `kpi_title` VALUES (181, 'MME', 'MME.A.02', '{\"cn\":\"MME附着成功次数\",\"en\":\"EpsAttachSucc\"}', 'MME附着成功次数', 'EpsAttachSucc');
-- INSERT INTO `kpi_title` VALUES (182, 'MME', 'MME.A.03', '{\"cn\":\"MME附着失败次数\",\"en\":\"EpsAttachFail\"}', 'MME附着失败次数', 'EpsAttachFail');
INSERT INTO `kpi_title` VALUES (183, 'MME', 'MME.A.04', '{\"cn\":\"MME组合附着请求次数\",\"en\":\"CombAttachAtt\"}', 'MME组合附着请求次数', 'CombAttachAtt');
INSERT INTO `kpi_title` VALUES (184, 'MME', 'MME.A.05', '{\"cn\":\"MME组合附着成功次数\",\"en\":\"CombAttachSucc\"}', 'MME组合附着成功次数', 'CombAttachSucc');
-- INSERT INTO `kpi_title` VALUES (185, 'MME', 'MME.A.06', '{\"cn\":\"MME组合附着失败次数\",\"en\":\"CombAttachFail\"}', 'MME组合附着失败次数', 'CombAttachFail');
INSERT INTO `kpi_title` VALUES (186, 'MME', 'MME.A.07', '{\"cn\":\"MME紧急附着请求次数\",\"en\":\"EmergAttachAtt\"}', 'MME紧急附着请求次数', 'EmergAttachAtt');
INSERT INTO `kpi_title` VALUES (187, 'MME', 'MME.A.08', '{\"cn\":\"MME紧急附着成功次数\",\"en\":\"EmergAttachSucc\"}', 'MME紧急附着成功次数', 'EmergAttachSucc');
-- INSERT INTO `kpi_title` VALUES (188, 'MME', 'MME.A.09', '{\"cn\":\"MME紧急附着失败次数\",\"en\":\"EmergAttachFail\"}', 'MME紧急附着失败次数', 'EmergAttachFail');
INSERT INTO `kpi_title` VALUES (189, 'MME', 'MME.A.10', '{\"cn\":\"UE发起的分离请求次数\",\"en\":\"EpsDetachUeAtt\"}', 'UE发起的分离请求次数', 'EpsDetachUeAtt');
INSERT INTO `kpi_title` VALUES (190, 'MME', 'MME.A.11', '{\"cn\":\"UE发起的分离请求成功次数\",\"en\":\"EpsDetachUeSucc\"}', 'UE发起的分离请求成功次数', 'EpsDetachUeSucc');
INSERT INTO `kpi_title` VALUES (191, 'MME', 'MME.A.12', '{\"cn\":\"MME发起的分离请求次数\",\"en\":\"EpsDetachMMEAtt\"}', 'MME发起的分离请求次数', 'EpsDetachMMEAtt');
INSERT INTO `kpi_title` VALUES (192, 'MME', 'MME.A.13', '{\"cn\":\"MME发起的分离请求成功次数\",\"en\":\"EpsDetachMMESucc\"}', 'MME发起的分离请求成功次数', 'EpsDetachMMESucc');
-- INSERT INTO `kpi_title` VALUES (193, 'MME', 'MME.A.14', '{\"cn\":\"伴随SGW内切换的TAU请求次数\",\"en\":\"TauIntraSgwAtt\"}', '伴随SGW内切换的TAU请求次数', 'TauIntraSgwAtt');
-- INSERT INTO `kpi_title` VALUES (194, 'MME', 'MME.A.15', '{\"cn\":\"伴随SGW内切换的TAU成功请求次数\",\"en\":\"TauIntraSgwSucc\"}', '伴随SGW内切换的TAU成功请求次数', 'TauIntraSgwSucc');
-- INSERT INTO `kpi_title` VALUES (195, 'MME', 'MME.A.16', '{\"cn\":\"伴随SGW内切换的TAU失败请求次数\",\"en\":\"TauIntraSgwFail\"}', '伴随SGW内切换的TAU失败请求次数', 'TauIntraSgwFail');
INSERT INTO `kpi_title` VALUES (196, 'MME', 'MME.A.17', '{\"cn\":\"MME寻呼次数\",\"en\":\"PagingEpsAtt\"}', 'MME寻呼次数', 'PagingEpsAtt');
INSERT INTO `kpi_title` VALUES (197, 'MME', 'MME.A.18', '{\"cn\":\"MME寻呼成功次数\",\"en\":\"PagingEpsSucc\"}', 'MME寻呼成功次数', 'PagingEpsSucc');
-- INSERT INTO `kpi_title` VALUES (198, 'MME', 'MME.A.19', '{\"cn\":\"MME寻呼失败次数\",\"en\":\"PagingEpsFail\"}', 'MME寻呼失败次数', 'PagingEpsFail');
INSERT INTO `kpi_title` VALUES (199, 'MME', 'MME.A.20', '{\"cn\":\"MME隐式分离请求次数\",\"en\":\"EpsImplicitDetach\"}', 'MME隐式分离请求次数', 'EpsImplicitDetach');
INSERT INTO `kpi_title` VALUES (200, 'MME', 'MME.A.21', '{\"cn\":\"MME激活专用承载请求次数\",\"en\":\"ActDedicatedEpsBearerAtt\"}', 'MME激活专用承载请求次数', 'ActDedicatedEpsBearerAtt');
INSERT INTO `kpi_title` VALUES (201, 'MME', 'MME.A.22', '{\"cn\":\"MME激活专用承载请求成功次数\",\"en\":\"ActDedicatedEpsBearerSucc\"}', 'MME激活专用承载请求成功次数', 'ActDedicatedEpsBearerSucc');
-- INSERT INTO `kpi_title` VALUES (202, 'MME', 'MME.A.23', '{\"cn\":\"MME激活专用承载请求失败次数\",\"en\":\"ActDedicatedEpsBearerFail\"}', 'MME激活专用承载请求失败次数', 'ActDedicatedEpsBearerFail');
INSERT INTO `kpi_title` VALUES (203, 'MME', 'MME.A.24', '{\"cn\":\"MME去激活专用承载请求次数\",\"en\":\"DeactEpsDedicatedBearerAtt\"}', 'MME去激活专用承载请求次数', 'DeactEpsDedicatedBearerAtt');
INSERT INTO `kpi_title` VALUES (204, 'MME', 'MME.A.25', '{\"cn\":\"MME去激活专用承载请求成功次数\",\"en\":\"DeactEpsDedicatedBearerSucc\"}', 'MME去激活专用承载请求成功次数', 'DeactEpsDedicatedBearerSucc');
INSERT INTO `kpi_title` VALUES (205, 'MME', 'MME.A.26', '{\"cn\":\"MME修改专用承载请求次数\",\"en\":\"ModEpsBearerAtt\"}', 'MME修改专用承载请求次数', 'ModEpsBearerAtt');
INSERT INTO `kpi_title` VALUES (206, 'MME', 'MME.A.27', '{\"cn\":\"MME修改专用承载请求成功次数\",\"en\":\"ModEpsBearerSucc\"}', 'MME修改专用承载请求成功次数', 'ModEpsBearerSucc');
-- INSERT INTO `kpi_title` VALUES (207, 'MME', 'MME.A.28', '{\"cn\":\"MME修改专用承载请求失败次数\",\"en\":\"ModEpsBearerFail\"}', 'MME修改专用承载请求失败次数', 'ModEpsBearerFail');
INSERT INTO `kpi_title` VALUES (208, 'MME', 'MME.A.29', '{\"cn\":\"MME服务请求次数\",\"en\":\"EpsServiceReqAtt\"}', 'MME服务请求次数', 'EpsServiceReqAtt');
INSERT INTO `kpi_title` VALUES (209, 'MME', 'MME.A.30', '{\"cn\":\"MME服务请求成功次数\",\"en\":\"EpsServiceReqSucc\"}', 'MME服务请求成功次数', 'EpsServiceReqSucc');
-- INSERT INTO `kpi_title` VALUES (210, 'MME', 'MME.A.31', '{\"cn\":\"MME服务请求失败次数\",\"en\":\"EpsServiceReqFail\"}', 'MME服务请求失败次数', 'EpsServiceReqFail');
-- 更新MOCNGW 20250613
INSERT INTO `kpi_title` VALUES (240, 'MOCNGW', 'MOCNGW.01', '{\"cn\":\"AttachRequest\",\"en\":\"AttachRequest\"}', 'AttachRequest', 'AttachRequest');
INSERT INTO `kpi_title` VALUES (241, 'MOCNGW', 'MOCNGW.02', '{\"cn\":\"AttachAccept\",\"en\":\"AttachAccept\"}', 'AttachAccept', 'AttachAccept');
INSERT INTO `kpi_title` VALUES (242, 'MOCNGW', 'MOCNGW.03', '{\"cn\":\"AttachComplete\",\"en\":\"AttachComplete\"}', 'AttachComplete', 'AttachComplete');
INSERT INTO `kpi_title` VALUES (243, 'MOCNGW', 'MOCNGW.04', '{\"cn\":\"AttachReject\",\"en\":\"AttachReject\"}', 'AttachReject', 'AttachReject');
INSERT INTO `kpi_title` VALUES (244, 'MOCNGW', 'MOCNGW.05', '{\"cn\":\"DetachRequest\",\"en\":\"DetachRequest\"}', 'DetachRequest', 'DetachRequest');
INSERT INTO `kpi_title` VALUES (245, 'MOCNGW', 'MOCNGW.06', '{\"cn\":\"DetachAccept\",\"en\":\"DetachAccept\"}', 'DetachAccept', 'DetachAccept');
INSERT INTO `kpi_title` VALUES (246, 'MOCNGW', 'MOCNGW.07', '{\"cn\":\"TrackingAreaUpdateRequest\",\"en\":\"TrackingAreaUpdateRequest\"}', 'TrackingAreaUpdateRequest', 'TrackingAreaUpdateRequest');
INSERT INTO `kpi_title` VALUES (247, 'MOCNGW', 'MOCNGW.08', '{\"cn\":\"TrackingAreaUpdateAccept\",\"en\":\"TrackingAreaUpdateAccept\"}', 'TrackingAreaUpdateAccept', 'TrackingAreaUpdateAccept');
INSERT INTO `kpi_title` VALUES (248, 'MOCNGW', 'MOCNGW.09', '{\"cn\":\"TrackingAreaUpdateComplete\",\"en\":\"TrackingAreaUpdateComplete\"}', 'TrackingAreaUpdateComplete', 'TrackingAreaUpdateComplete');
INSERT INTO `kpi_title` VALUES (249, 'MOCNGW', 'MOCNGW.10', '{\"cn\":\"TrackingAreaUpdateReject\",\"en\":\"TrackingAreaUpdateReject\"}', 'TrackingAreaUpdateReject', 'TrackingAreaUpdateReject');
INSERT INTO `kpi_title` VALUES (250, 'MOCNGW', 'MOCNGW.11', '{\"cn\":\"ServiceRequest\",\"en\":\"ServiceRequest\"}', 'ServiceRequest', 'ServiceRequest');
INSERT INTO `kpi_title` VALUES (251, 'MOCNGW', 'MOCNGW.12', '{\"cn\":\"ExtendedServiceRequest\",\"en\":\"ExtendedServiceRequest\"}', 'ExtendedServiceRequest', 'ExtendedServiceRequest');
INSERT INTO `kpi_title` VALUES (252, 'MOCNGW', 'MOCNGW.13', '{\"cn\":\"ControlPlaneServiceRequest\",\"en\":\"ControlPlaneServiceRequest\"}', 'ControlPlaneServiceRequest', 'ControlPlaneServiceRequest');
INSERT INTO `kpi_title` VALUES (253, 'MOCNGW', 'MOCNGW.14', '{\"cn\":\"ServiceReject\",\"en\":\"ServiceReject\"}', 'ServiceReject', 'ServiceReject');
INSERT INTO `kpi_title` VALUES (254, 'MOCNGW', 'MOCNGW.15', '{\"cn\":\"ServiceAccept\",\"en\":\"ServiceAccept\"}', 'ServiceAccept', 'ServiceAccept');
INSERT INTO `kpi_title` VALUES (255, 'MOCNGW', 'MOCNGW.16', '{\"cn\":\"GutiReallocationCommand\",\"en\":\"GutiReallocationCommand\"}', 'GutiReallocationCommand', 'GutiReallocationCommand');
INSERT INTO `kpi_title` VALUES (256, 'MOCNGW', 'MOCNGW.17', '{\"cn\":\"GutiReallocationComplete\",\"en\":\"GutiReallocationComplete\"}', 'GutiReallocationComplete', 'GutiReallocationComplete');
INSERT INTO `kpi_title` VALUES (257, 'MOCNGW', 'MOCNGW.18', '{\"cn\":\"AuthenticationRequest\",\"en\":\"AuthenticationRequest\"}', 'AuthenticationRequest', 'AuthenticationRequest');
INSERT INTO `kpi_title` VALUES (258, 'MOCNGW', 'MOCNGW.19', '{\"cn\":\"AuthenticationResponse\",\"en\":\"AuthenticationResponse\"}', 'AuthenticationResponse', 'AuthenticationResponse');
INSERT INTO `kpi_title` VALUES (259, 'MOCNGW', 'MOCNGW.20', '{\"cn\":\"AuthenticationReject\",\"en\":\"AuthenticationReject\"}', 'AuthenticationReject', 'AuthenticationReject');
INSERT INTO `kpi_title` VALUES (260, 'MOCNGW', 'MOCNGW.21', '{\"cn\":\"AuthenticationFailure\",\"en\":\"AuthenticationFailure\"}', 'AuthenticationFailure', 'AuthenticationFailure');
INSERT INTO `kpi_title` VALUES (261, 'MOCNGW', 'MOCNGW.22', '{\"cn\":\"IdentityRequest\",\"en\":\"IdentityRequest\"}', 'IdentityRequest', 'IdentityRequest');
INSERT INTO `kpi_title` VALUES (262, 'MOCNGW', 'MOCNGW.23', '{\"cn\":\"IdentityResponse\",\"en\":\"IdentityResponse\"}', 'IdentityResponse', 'IdentityResponse');
INSERT INTO `kpi_title` VALUES (263, 'MOCNGW', 'MOCNGW.24', '{\"cn\":\"SecurityModeCommand\",\"en\":\"SecurityModeCommand\"}', 'SecurityModeCommand', 'SecurityModeCommand');
INSERT INTO `kpi_title` VALUES (264, 'MOCNGW', 'MOCNGW.25', '{\"cn\":\"SecurityModeComplete\",\"en\":\"SecurityModeComplete\"}', 'SecurityModeComplete', 'SecurityModeComplete');
INSERT INTO `kpi_title` VALUES (265, 'MOCNGW', 'MOCNGW.26', '{\"cn\":\"SecurityModeReject\",\"en\":\"SecurityModeReject\"}', 'SecurityModeReject', 'SecurityModeReject');
INSERT INTO `kpi_title` VALUES (266, 'MOCNGW', 'MOCNGW.27', '{\"cn\":\"EmmStatus\",\"en\":\"EmmStatus\"}', 'EmmStatus', 'EmmStatus');
INSERT INTO `kpi_title` VALUES (267, 'MOCNGW', 'MOCNGW.28', '{\"cn\":\"EmmInformation\",\"en\":\"EmmInformation\"}', 'EmmInformation', 'EmmInformation');
INSERT INTO `kpi_title` VALUES (268, 'MOCNGW', 'MOCNGW.29', '{\"cn\":\"DownlinkNasTransport\",\"en\":\"DownlinkNasTransport\"}', 'DownlinkNasTransport', 'DownlinkNasTransport');
INSERT INTO `kpi_title` VALUES (269, 'MOCNGW', 'MOCNGW.30', '{\"cn\":\"UplinkNasTransport\",\"en\":\"UplinkNasTransport\"}', 'UplinkNasTransport', 'UplinkNasTransport');
INSERT INTO `kpi_title` VALUES (270, 'MOCNGW', 'MOCNGW.31', '{\"cn\":\"CsServiceNotification\",\"en\":\"CsServiceNotification\"}', 'CsServiceNotification', 'CsServiceNotification');
INSERT INTO `kpi_title` VALUES (271, 'MOCNGW', 'MOCNGW.32', '{\"cn\":\"DownlinkGenericNasTransport\",\"en\":\"DownlinkGenericNasTransport\"}', 'DownlinkGenericNasTransport', 'DownlinkGenericNasTransport');
INSERT INTO `kpi_title` VALUES (272, 'MOCNGW', 'MOCNGW.33', '{\"cn\":\"UplinkGenericNasTransport\",\"en\":\"UplinkGenericNasTransport\"}', 'UplinkGenericNasTransport', 'UplinkGenericNasTransport');
-- 更新IMS 20250627
-- INSERT INTO `kpi_title` VALUES (300, 'IMS', 'SCSCF.01', '{\"cn\": \"LTE接入注册用户数\",\"en\": \"UR.SubsLTE.fromVoLTE\"}', 'LTE接入注册用户数', 'UR.SubsLTE.fromVoLTE');
-- INSERT INTO `kpi_title` VALUES (301, 'IMS', 'SCSCF.02', '{\"cn\": \"5G接入注册用户数\",\"en\": \"UR.Subs5G.fromVo5G\"}', '5G接入注册用户数', 'UR.Subs5G.fromVo5G');
INSERT INTO `kpi_title` VALUES (302, 'IMS', 'SCSCF.03', '{\"cn\": \"初始注册成功次数\",\"en\": \"UR.SuccInitReg\"}', '初始注册成功次数', 'UR.SuccInitReg');
INSERT INTO `kpi_title` VALUES (303, 'IMS', 'SCSCF.04', '{\"cn\": \"初始注册请求次数\",\"en\": \"UR.AttInitReg\"}', '初始注册请求次数', 'UR.AttInitReg');
INSERT INTO `kpi_title` VALUES (304, 'IMS', 'SCSCF.05', '{\"cn\": \"主叫接通次数\",\"en\": \"SC.SuccSessionOrig\"}', '主叫接通次数', 'SC.SuccSessionOrig');
INSERT INTO `kpi_title` VALUES (305, 'IMS', 'SCSCF.06', '{\"cn\": \"主叫试呼次数\",\"en\": \"SC.AttSessionOrig\"}', '主叫试呼次数', 'SC.AttSessionOrig');
INSERT INTO `kpi_title` VALUES (306, 'IMS', 'SCSCF.07', '{\"cn\": \"被叫接通次数\",\"en\": \"SC.SuccSessionTerm\"}', '被叫接通次数', 'SC.SuccSessionTerm');
INSERT INTO `kpi_title` VALUES (307, 'IMS', 'SCSCF.08', '{\"cn\": \"被叫试呼次数\",\"en\": \"SC.AttSessionTerm\"}', '被叫试呼次数', 'SC.AttSessionTerm');
INSERT INTO `kpi_title` VALUES (308, 'IMS', 'SCSCF.09', '{\"cn\": \"主叫应答次数\",\"en\": \"SC.AnsSessionOrig\"}', '主叫应答次数', 'SC.AnsSessionOrig');
-- INSERT INTO `kpi_title` VALUES (309, 'IMS', 'SCSCF.10', '{\"cn\": \"主叫早释次数\",\"en\": \"SC.OrigRelBeforeRing\"}', '主叫早释次数', 'SC.OrigRelBeforeRing');
-- INSERT INTO `kpi_title` VALUES (310, 'IMS', 'SCSCF.11', '{\"cn\": \"主叫振铃早释次数\",\"en\": \"SC.OrigRelAfterRing\"}', '主叫振铃早释次数', 'SC.OrigRelAfterRing');
-- INSERT INTO `kpi_title` VALUES (311, 'IMS', 'SCSCF.12', '{\"cn\": \"主叫403请求禁止次数\",\"en\": \"SC.FailSessionOrig.403\"}', '主叫403请求禁止次数', 'SC.FailSessionOrig.403');
-- INSERT INTO `kpi_title` VALUES (312, 'IMS', 'SCSCF.13', '{\"cn\": \"主叫404未找到次数\",\"en\": \"SC.FailSessionOrig.404\"}', '主叫404未找到次数', 'SC.FailSessionOrig.404');
-- INSERT INTO `kpi_title` VALUES (313, 'IMS', 'SCSCF.14', '{\"cn\": \"主叫408请求超时次数\",\"en\": \"SC.FailSessionOrig.408\"}', '主叫408请求超时次数', 'SC.FailSessionOrig.408');
-- INSERT INTO `kpi_title` VALUES (314, 'IMS', 'SCSCF.15', '{\"cn\": \"主叫480久叫不应次\",\"en\": \"SC.FailSessionOrig.480\"}', '主叫480久叫不应次', 'SC.FailSessionOrig.480');
-- INSERT INTO `kpi_title` VALUES (315, 'IMS', 'SCSCF.16', '{\"cn\": \"主叫484Request-URI不完整次\",\"en\": \"SC.FailSessionOrig.484\"}', '主叫484Request-URI不完整次', 'SC.FailSessionOrig.484');
-- INSERT INTO `kpi_title` VALUES (316, 'IMS', 'SCSCF.17', '{\"cn\": \"主叫486用户忙次数\",\"en\": \"SC.FailSessionOrig.486\"}', '主叫486用户忙次数', 'SC.FailSessionOrig.486');
-- INSERT INTO `kpi_title` VALUES (317, 'IMS', 'SCSCF.18', '{\"cn\": \"主叫487请求终止次数\",\"en\": \"SC.FailSessionOrig.487\"}', '主叫487请求终止次数', 'SC.FailSessionOrig.487');
-- INSERT INTO `kpi_title` VALUES (318, 'IMS', 'SCSCF.19', '{\"cn\": \"主叫600用户忙次数\",\"en\": \"SC.FailSessionOrig.600\"}', '主叫600用户忙次数', 'SC.FailSessionOrig.600');
-- INSERT INTO `kpi_title` VALUES (319, 'IMS', 'SCSCF.20', '{\"cn\": \"主叫603用户拒接次数\",\"en\": \"SC.FailSessionOrig.603\"}', '主叫603用户拒接次数', 'SC.FailSessionOrig.603');
-- INSERT INTO `kpi_title` VALUES (320, 'IMS', 'SCSCF.21', '{\"cn\": \"主叫604用户信息不存在次数\",\"en\": \"SC.FailSessionOrig.604\"}', '主叫604用户信息不存在次数', 'SC.FailSessionOrig.604');
INSERT INTO `kpi_title` VALUES (321, 'IMS', 'SCSCF.22', '{\"cn\": \"被叫应答次数\",\"en\": \"SC.AnsSessionTerm\"}', '被叫应答次数', 'SC.AnsSessionTerm');
-- INSERT INTO `kpi_title` VALUES (322, 'IMS', 'SCSCF.23', '{\"cn\": \"被叫早释次\",\"en\": \"SC.TermiRelBeforeRing\"}', '被叫早释次', 'SC.TermiRelBeforeRing');
-- INSERT INTO `kpi_title` VALUES (323, 'IMS', 'SCSCF.24', '{\"cn\": \"被叫振铃早释次数\",\"en\": \"SC.TermiRelAfterRing\"}', '被叫振铃早释次数', 'SC.TermiRelAfterRing');
-- INSERT INTO `kpi_title` VALUES (324, 'IMS', 'SCSCF.25', '{\"cn\": \"被叫403请求禁止次数\",\"en\": \"SC.FailSessionTerm.403\"}', '被叫403请求禁止次数', 'SC.FailSessionTerm.403');
-- INSERT INTO `kpi_title` VALUES (325, 'IMS', 'SCSCF.26', '{\"cn\": \"被叫404未找到次数\",\"en\": \"SC.FailSessionTerm.404\"}', '被叫404未找到次数', 'SC.FailSessionTerm.404');
-- INSERT INTO `kpi_title` VALUES (326, 'IMS', 'SCSCF.27', '{\"cn\": \"被叫408请求超时次数\",\"en\": \"SC.FailSessionTerm.408\"}', '被叫408请求超时次数', 'SC.FailSessionTerm.408');
-- INSERT INTO `kpi_title` VALUES (327, 'IMS', 'SCSCF.28', '{\"cn\": \"被叫480久叫不应次数\",\"en\": \"SC.FailSessionTerm.480\"}', '被叫480久叫不应次数', 'SC.FailSessionTerm.480');
-- INSERT INTO `kpi_title` VALUES (328, 'IMS', 'SCSCF.29', '{\"cn\": \"被叫484Request-URI不完整次数\",\"en\": \"SC.FailSessionTerm.484\"}', '被叫484Request-URI不完整次数', 'SC.FailSessionTerm.484');
-- INSERT INTO `kpi_title` VALUES (329, 'IMS', 'SCSCF.30', '{\"cn\": \"被叫486用户忙次数\",\"en\": \"SC.FailSessionTerm.486\"}', '被叫486用户忙次数', 'SC.FailSessionTerm.486');
-- INSERT INTO `kpi_title` VALUES (330, 'IMS', 'SCSCF.31', '{\"cn\": \"被叫487请求终止次数\",\"en\": \"SC.FailSessionTerm.487\"}', '被叫487请求终止次数', 'SC.FailSessionTerm.487');
-- INSERT INTO `kpi_title` VALUES (331, 'IMS', 'SCSCF.32', '{\"cn\": \"被叫600用户忙次数\",\"en\": \"SC.FailSessionTerm.600\"}', '被叫600用户忙次数', 'SC.FailSessionTerm.600');
-- INSERT INTO `kpi_title` VALUES (332, 'IMS', 'SCSCF.33', '{\"cn\": \"被叫603用户拒接次数\",\"en\": \"SC.FailSessionTerm.603\"}', '被叫603用户拒接次数', 'SC.FailSessionTerm.603');
-- INSERT INTO `kpi_title` VALUES (333, 'IMS', 'SCSCF.34', '{\"cn\": \"被叫604用户信息不存在次数\",\"en\": \"SC.FailSessionTerm.604\"}', '被叫604用户信息不存在次数', 'SC.FailSessionTerm.604');
INSERT INTO `kpi_title` VALUES (334, 'IMS', 'IDD.01', '', '呼出IDD呼叫尝试次数', 'IDDOutgoingAttSessionOrig');
INSERT INTO `kpi_title` VALUES (335, 'IMS', 'IDD.02', '', '呼出IDD接通次数', 'IDDOutgoingAnsSession');
INSERT INTO `kpi_title` VALUES (336, 'IMS', 'IDD.03', '', '呼出IDD接通成功次数', 'IDDOutgoingSuccSession');
INSERT INTO `kpi_title` VALUES (337, 'IMS', 'IDD.04', '', '呼入IDD呼叫尝试次数', 'IDDIncomingAttSessionOrig');
INSERT INTO `kpi_title` VALUES (338, 'IMS', 'IDD.05', '', '呼入IDD接通次数', 'IDDIncomingAnsSession');
INSERT INTO `kpi_title` VALUES (339, 'IMS', 'IDD.06', '', '呼入IDD接通成功次数', 'IDDIncomingSuccSession');
-- 更新PCF 20250613
-- INSERT INTO `kpi_title` VALUES (350, 'PCF', 'PCF.01', '{\"cn\": \"在线N7会话数\", \"en\": \"PCF.SmAssocNbrMean\"}', '在线N7会话数', 'PCF.SmAssocNbrMean');
INSERT INTO `kpi_title` VALUES (351, 'PCF', 'PCF.02', '{\"cn\": \"SM策略关联建立成功次数\", \"en\": \"PCF.PolicySmAssocCreateSucc\"}', 'SM策略关联建立成功次数', 'PCF.PolicySmAssocCreateSucc');
INSERT INTO `kpi_title` VALUES (352, 'PCF', 'PCF.03', '{\"cn\": \"SM策略关联建立请求次数\", \"en\": \"PCF.PolicySmAssocCreateReq\"}', 'SM策略关联建立请求次数', 'PCF.PolicySmAssocCreateReq');
INSERT INTO `kpi_title` VALUES (353, 'PCF', 'PCF.04', '{\"cn\": \"SM策略关联更新成功次数\", \"en\": \"PCF.PolicySmAssocUpdateSucc\"}', 'SM策略关联更新成功次数', 'PCF.PolicySmAssocUpdateSucc');
INSERT INTO `kpi_title` VALUES (354, 'PCF', 'PCF.05', '{\"cn\": \"SM策略关联更新请求次数\", \"en\": \"PCF.PolicySmAssocUpdateReq\"}', 'SM策略关联更新请求次数', 'PCF.PolicySmAssocUpdateReq');
-- INSERT INTO `kpi_title` VALUES (355, 'PCF', 'PCF.06', '{\"cn\": \"在线Gx会话数\", \"en\": \"SM.SessionNbrMean\"}', '在线Gx会话数', 'SM.SessionNbrMean');
-- INSERT INTO `kpi_title` VALUES (356, 'PCF', 'PCF.07', '{\"cn\": \"在线Rx会话数\", \"en\": \"SM.RxSessionMean\"}', '在线Rx会话数', 'SM.RxSessionMean');
-- INSERT INTO `kpi_title` VALUES (357, 'PCF', 'PCF.08', '{\"cn\": \"PCRF策略控制发起成功次数\", \"en\": \"DIAM.CcInitialSuccess\"}', 'PCRF策略控制发起成功次数', 'DIAM.CcInitialSuccess');
-- INSERT INTO `kpi_title` VALUES (358, 'PCF', 'PCF.09', '{\"cn\": \"PCRF策略控制发起请求次数\", \"en\": \"DIAM.CcInitialRequest\"}', 'PCRF策略控制发起请求次数', 'DIAM.CcInitialRequest');
-- INSERT INTO `kpi_title` VALUES (359, 'PCF', 'PCF.10', '{\"cn\": \"应用会话授权成功次数\", \"en\": \"DIAM.AuthSucc\"}', '应用会话授权成功次数', 'DIAM.AuthSucc');
-- INSERT INTO `kpi_title` VALUES (360, 'PCF', 'PCF.11', '{\"cn\": \"应用会话授权尝试次数\", \"en\": \"DIAM.AuthRequest\"}', '应用会话授权尝试次数', 'DIAM.AuthRequest');
-- INSERT INTO `kpi_title` VALUES (361, 'PCF', 'PCF.12', '{\"cn\": \"PCRF策略控制更新成功次数\", \"en\": \"DIAM.CcUpdateSuccess\"}', 'PCRF策略控制更新成功次数', 'DIAM.CcUpdateSuccess');
-- INSERT INTO `kpi_title` VALUES (362, 'PCF', 'PCF.13', '{\"cn\": \"PCRF策略控制更新请求次数\", \"en\": \"DIAM.CcUpdateRequest\"}', 'PCRF策略控制更新请求次数', 'DIAM.CcUpdateRequest');
-- 更新SMSC 20240815
INSERT INTO `kpi_title` VALUES (380, 'SMSC', 'SMSC.A.01', '{\"cn\": \"MS到SMSC短信请求次数\", \"en\": \"SMSC.MStoSMSCAtt\"}', 'MS到SMSC短信请求次数', 'SMSC.MStoSMSCAtt');
INSERT INTO `kpi_title` VALUES (381, 'SMSC', 'SMSC.A.02', '{\"cn\": \"MS到SMSC短信成功次数\", \"en\": \"SMSC.MStoSMSCSucc\"}', 'MS到SMSC短信成功次数', 'SMSC.MStoSMSCSucc');
INSERT INTO `kpi_title` VALUES (382, 'SMSC', 'SMSC.A.03', '{\"cn\": \"MS到SMSC短信失败次数\", \"en\": \"SMSC.MStoSMSCFail\"}', 'MS到SMSC短信失败次数', 'SMSC.MStoSMSCFail');
INSERT INTO `kpi_title` VALUES (383, 'SMSC', 'SMSC.A.04', '{\"cn\": \"MS到SMSC短信字节数\", \"en\": \"SMSC.MStoSMSCBytes\"}', 'MS到SMSC短信字节数', 'SMSC.MStoSMSCBytes');
-- INSERT INTO `kpi_title` VALUES (384, 'SMSC', 'SMSC.A.05', '{\"cn\": \"VSS到SMSC短信请求次数\", \"en\": \"SMSC.VSStoSMSCAtt\"}', 'VSS到SMSC短信请求次数', 'SMSC.VSStoSMSCAtt');
-- INSERT INTO `kpi_title` VALUES (385, 'SMSC', 'SMSC.A.06', '{\"cn\": \"VSS到SMSC短信成功次数\", \"en\": \"SMSC.VSStoSMSCSucc\"}', 'VSS到SMSC短信成功次数', 'SMSC.VSStoSMSCSucc');
-- INSERT INTO `kpi_title` VALUES (386, 'SMSC', 'SMSC.A.07', '{\"cn\": \"VSS到SMSC短信失败次数\", \"en\": \"SMSC.VSStoSMSCFail\"}', 'VSS到SMSC短信失败次数', 'SMSC.VSStoSMSCFail');
-- INSERT INTO `kpi_title` VALUES (387, 'SMSC', 'SMSC.A.08', '{\"cn\": \"VSS到SMSC短信字节数\", \"en\": \"SMSC.VSStoSMSCBytes\"}', 'VSS到SMSC短信字节数', 'SMSC.VSStoSMSCBytes');
-- INSERT INTO `kpi_title` VALUES (388, 'SMSC', 'SMSC.A.09', '{\"cn\": \"PPS到SMSC短信请求次数\", \"en\": \"SMSC.PPStoSMSCAtt\"}', 'PPS到SMSC短信请求次数', 'SMSC.PPStoSMSCAtt');
-- INSERT INTO `kpi_title` VALUES (389, 'SMSC', 'SMSC.A.10', '{\"cn\": \"PPS到SMSC短信成功次数\", \"en\": \"SMSC.PPStoSMSCSucc\"}', 'PPS到SMSC短信成功次数', 'SMSC.PPStoSMSCSucc');
-- INSERT INTO `kpi_title` VALUES (390, 'SMSC', 'SMSC.A.11', '{\"cn\": \"PPS到SMSC短信失败次数\", \"en\": \"SMSC.PPStoSMSCFail\"}', 'PPS到SMSC短信失败次数', 'SMSC.PPStoSMSCFail');
-- INSERT INTO `kpi_title` VALUES (391, 'SMSC', 'SMSC.A.12', '{\"cn\": \"PPS到SMSC短信字节数\", \"en\": \"SMSC.PPStoSMSCBytes\"}', 'PPS到SMSC短信字节数', 'SMSC.PPStoSMSCBytes');
-- INSERT INTO `kpi_title` VALUES (392, 'SMSC', 'SMSC.A.13', '{\"cn\": \"SMPP到SMSC短信请求次数\", \"en\": \"SMSC.SMPPtoSMSCAtt\"}', 'SMPP到SMSC短信请求次数', 'SMSC.SMPPtoSMSCAtt');
-- INSERT INTO `kpi_title` VALUES (393, 'SMSC', 'SMSC.A.14', '{\"cn\": \"SMPP到SMSC短信成功次数\", \"en\": \"SMSC.SMPPtoSMSCSucc\"}', 'SMPP到SMSC短信成功次数', 'SMSC.SMPPtoSMSCSucc');
-- INSERT INTO `kpi_title` VALUES (394, 'SMSC', 'SMSC.A.15', '{\"cn\": \"SMPP到SMSC短信失败次数\", \"en\": \"SMSC.SMPPtoSMSCFail\"}', 'SMPP到SMSC短信失败次数', 'SMSC.SMPPtoSMSCFail');
-- INSERT INTO `kpi_title` VALUES (395, 'SMSC', 'SMSC.A.16', '{\"cn\": \"SMPP到SMSC短信字节数\", \"en\": \"SMSC.SMPPtoSMSCBytes\"}', 'SMPP到SMSC短信字节数', 'SMSC.SMPPtoSMSCBytes');
INSERT INTO `kpi_title` VALUES (396, 'SMSC', 'SMSC.A.17', '{\"cn\": \"SMSC到MS短信请求次数\", \"en\": \"SMSC.SMSCtoMSAtt\"}', 'SMSC到MS短信请求次数', 'SMSC.SMSCtoMSAtt');
INSERT INTO `kpi_title` VALUES (397, 'SMSC', 'SMSC.A.18', '{\"cn\": \"SMSC到MS短信成功次数\", \"en\": \"SMSC.SMSCtoMSSucc\"}', 'SMSC到MS短信成功次数', 'SMSC.SMSCtoMSSucc');
INSERT INTO `kpi_title` VALUES (398, 'SMSC', 'SMSC.A.19', '{\"cn\": \"SMSC到MS短信失败次数\", \"en\": \"SMSC.SMSCtoMSFail\"}', 'SMSC到MS短信失败次数', 'SMSC.SMSCtoMSFail');
INSERT INTO `kpi_title` VALUES (399, 'SMSC', 'SMSC.A.20', '{\"cn\": \"SMSC到MS短信字节数\", \"en\": \"SMSC.SMSCtoMSBytes\"}', 'SMSC到MS短信字节数', 'SMSC.SMSCtoMSBytes');
-- INSERT INTO `kpi_title` VALUES (400, 'SMSC', 'SMSC.A.21', '{\"cn\": \"SMSC到VSS短信请求次数\", \"en\": \"SMSC.SMSCtoVSSAtt\"}', 'SMSC到VSS短信请求次数', 'SMSC.SMSCtoVSSAtt');
-- INSERT INTO `kpi_title` VALUES (401, 'SMSC', 'SMSC.A.22', '{\"cn\": \"SMSC到VSS短信成功次数\", \"en\": \"SMSC.SMSCtoVSSucc\"}', 'SMSC到VSS短信成功次数', 'SMSC.SMSCtoVSSucc');
-- INSERT INTO `kpi_title` VALUES (402, 'SMSC', 'SMSC.A.23', '{\"cn\": \"SMSC到VSS短信失败次数\", \"en\": \"SMSC.SMSCtoVSSFail\"}', 'SMSC到VSS短信失败次数', 'SMSC.SMSCtoVSSFail');
-- INSERT INTO `kpi_title` VALUES (403, 'SMSC', 'SMSC.A.24', '{\"cn\": \"SMSC到VSS短信字节数\", \"en\": \"SMSC.SMSCtoVSSBytes\"}', 'SMSC到VSS短信字节数', 'SMSC.SMSCtoVSSBytes');
-- INSERT INTO `kpi_title` VALUES (404, 'SMSC', 'SMSC.A.25', '{\"cn\": \"SMSC到PPS短信请求次数\", \"en\": \"SMSC.SMSCtoPPSAtt\"}', 'SMSC到PPS短信请求次数', 'SMSC.SMSCtoPPSAtt');
-- INSERT INTO `kpi_title` VALUES (405, 'SMSC', 'SMSC.A.26', '{\"cn\": \"SMSC到PPS短信成功次数\", \"en\": \"SMSC.SMSCtoPPSucc\"}', 'SMSC到PPS短信成功次数', 'SMSC.SMSCtoPPSucc');
-- INSERT INTO `kpi_title` VALUES (406, 'SMSC', 'SMSC.A.27', '{\"cn\": \"SMSC到PPS短信失败次数\", \"en\": \"SMSC.SMSCtoPPSFail\"}', 'SMSC到PPS短信失败次数', 'SMSC.SMSCtoPPSFail');
-- INSERT INTO `kpi_title` VALUES (407, 'SMSC', 'SMSC.A.28', '{\"cn\": \"SMSC到PPS短信字节数\", \"en\": \"SMSC.SMSCtoPPSBytes\"}', 'SMSC到PPS短信字节数', 'SMSC.SMSCtoPPSBytes');
-- INSERT INTO `kpi_title` VALUES (408, 'SMSC', 'SMSC.A.29', '{\"cn\": \"SMSC到SMPP短信请求次数\", \"en\": \"SMSC.SMSCtoSMPPAtt\"}', 'SMSC到SMPP短信请求次数', 'SMSC.SMSCtoSMPPAtt');
-- INSERT INTO `kpi_title` VALUES (409, 'SMSC', 'SMSC.A.30', '{\"cn\": \"SMSC到SMPP短信成功次数\", \"en\": \"SMSC.SMSCtoSMPPucc\"}', 'SMSC到SMPP短信成功次数', 'SMSC.SMSCtoSMPPucc');
-- INSERT INTO `kpi_title` VALUES (410, 'SMSC', 'SMSC.A.31', '{\"cn\": \"SMSC到SMPP短信失败次数\", \"en\": \"SMSC.SMSCtoSMPPFail\"}', 'SMSC到SMPP短信失败次数', 'SMSC.SMSCtoSMPPFail');
-- INSERT INTO `kpi_title` VALUES (411, 'SMSC', 'SMSC.A.32', '{\"cn\": \"SMSC到SMPP短信字节数\", \"en\": \"SMSC.SMSCtoSMPPBytes\"}', 'SMSC到SMPP短信字节数', 'SMSC.SMSCtoSMPPBytes');
-- 更新CBC 20240823
INSERT INTO `kpi_title` VALUES (430, 'CBC', 'CBC.A.01', '{\"cn\": \"CBC 发起 Create Write 消息成功\", \"en\": \"WarningReqSucc\"}', 'CBC 发起 Create Write 消息成功', 'WarningReqSucc');
INSERT INTO `kpi_title` VALUES (431, 'CBC', 'CBC.A.02', '{\"cn\": \"CBC 发起 Create Write 消息失败\", \"en\": \"WarningReqFail\"}', 'CBC 发起 Create Write 消息失败', 'WarningReqFail');
INSERT INTO `kpi_title` VALUES (432, 'CBC', 'CBC.A.03', '{\"cn\": \"CBC 发起 Cancel Write 消息成功\", \"en\": \"WarningCancelSucc\"}', 'CBC 发起 Cancel Write 消息成功', 'WarningCancelSucc');
INSERT INTO `kpi_title` VALUES (433, 'CBC', 'CBC.A.04', '{\"cn\": \"CBC 发起 Cancel Write 消息失败\", \"en\": \"WarningCancelFail\"}', 'CBC 发起 Cancel Write 消息失败', 'WarningCancelFail');
-- 更新HLR 20250613
INSERT INTO `kpi_title` VALUES (440, 'HLR', 'HLR.A.001', NULL, '鉴权信息请求次数', 'AuthReqTotalNum');
INSERT INTO `kpi_title` VALUES (441, 'HLR', 'HLR.A.002', NULL, '鉴权信息请求成功次数', 'AuthSuccTotalNum');
INSERT INTO `kpi_title` VALUES (442, 'HLR', 'HLR.A.003', NULL, '鉴权请求失败:缺参数', 'AuthFailByMissPara');
INSERT INTO `kpi_title` VALUES (443, 'HLR', 'HLR.A.004', NULL, '鉴权请求失败:系统错误', 'AuthFailBySysFail');
INSERT INTO `kpi_title` VALUES (444, 'HLR', 'HLR.A.005', NULL, '鉴权请求失败:非期望的参数值', 'AuthFailByUnexptData');
INSERT INTO `kpi_title` VALUES (445, 'HLR', 'HLR.A.006', NULL, '鉴权请求失败:未知用户', 'AuthFailByUnknownUser');
INSERT INTO `kpi_title` VALUES (446, 'HLR', 'HLR.A.007', NULL, '鉴权失败报告次数', 'AuthFailReportTotalNum');
INSERT INTO `kpi_title` VALUES (447, 'HLR', 'HLR.A.008', NULL, '鉴权失败报告(错误的网络签名)次数', 'AuthFailReportByErrNetSign');
INSERT INTO `kpi_title` VALUES (448, 'HLR', 'HLR.A.009', NULL, '鉴权失败报告(错误的用户响应)次数', 'AuthFailReportByErrUserRsp');
INSERT INTO `kpi_title` VALUES (449, 'HLR', 'HLR.A.010', NULL, '登记请求次数', 'LuReqTotalNum');
INSERT INTO `kpi_title` VALUES (450, 'HLR', 'HLR.A.011', NULL, '登记成功次数', 'LuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (451, 'HLR', 'HLR.A.012', NULL, '登记失败:复制手机', 'LuFailByDuplicUnit');
INSERT INTO `kpi_title` VALUES (452, 'HLR', 'HLR.A.013', NULL, '登记失败无效ESN', 'LuFailByInvalidESN');
INSERT INTO `kpi_title` VALUES (453, 'HLR', 'HLR.A.014', NULL, '登记失败:缺鉴权参数', 'LuFailByMissAuthPara');
INSERT INTO `kpi_title` VALUES (454, 'HLR', 'HLR.A.015', NULL, '登记失败在这个MSC中不能使用', 'LuFailByMscNotAllow');
INSERT INTO `kpi_title` VALUES (455, 'HLR', 'HLR.A.016', NULL, '登记失败:终端类型不匹配', 'LuFailByUeTypeMismatch');
INSERT INTO `kpi_title` VALUES (456, 'HLR', 'HLR.A.017', NULL, '登记失败:未分配号码的手机', 'LuFailByUnAssignMsisdn');
INSERT INTO `kpi_title` VALUES (457, 'HLR', 'HLR.A.018', NULL, '登记失败:不确定', 'LuFailByUnKnown');
INSERT INTO `kpi_title` VALUES (458, 'HLR', 'HLR.A.019', NULL, '注销登记次数', 'CancelLuReqTotalNum');
INSERT INTO `kpi_title` VALUES (459, 'HLR', 'HLR.A.020', NULL, '注销登记成功次数', 'CancelLuSuccTotalNum');
INSERT INTO `kpi_title` VALUES (460, 'HLR', 'HLR.A.021', NULL, '注销失败:系统错误', 'CancelLuFailBySysFail');
INSERT INTO `kpi_title` VALUES (461, 'HLR', 'HLR.A.022', NULL, '注销失败:缺参数', 'CancelLuFailByMissPara');
INSERT INTO `kpi_title` VALUES (462, 'HLR', 'HLR.A.023', NULL, '移动台去活次数', 'MsPurgeReqTotalNum');
INSERT INTO `kpi_title` VALUES (463, 'HLR', 'HLR.A.024', NULL, '移动台去活成功次数', 'MsPurgeSuccTotalNum');
INSERT INTO `kpi_title` VALUES (464, 'HLR', 'HLR.A.025', NULL, '移动台去活:系统错误', 'MsPurgeFailBySysFail');
INSERT INTO `kpi_title` VALUES (465, 'HLR', 'HLR.A.026', NULL, '移动台去活:非期望的参数值', 'MsPurgeFailByUnexptPara');
INSERT INTO `kpi_title` VALUES (466, 'HLR', 'HLR.A.027', NULL, '移动台去活:未知用户', 'MsPurgeFailByUnknownUser');
-- INSERT INTO `kpi_title` VALUES (467, 'HLR', 'HLR.A.028', NULL, 'GPRS登记请求次数', 'GprsLuReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (468, 'HLR', 'HLR.A.029', NULL, 'GPRS登记请求成功次数', 'GprsLuSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (469, 'HLR', 'HLR.A.030', NULL, 'GPRS去登记次数', 'GprsPurgeReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (470, 'HLR', 'HLR.A.031', NULL, 'GPRS去登记成功次数', 'GprsPurgeSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (471, 'HLR', 'HLR.A.032', NULL, 'GPRS注销登记次数', 'GprsCancelLuReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (472, 'HLR', 'HLR.A.033', NULL, 'GPRS注销登记成功次数', 'GprsCancelLuSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (473, 'HLR', 'HLR.A.034', NULL, 'GPRS路由请求次数', 'GprsRoutInfoReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (474, 'HLR', 'HLR.A.035', NULL, 'GPRS用户激活失败报告次数', 'GprsActiveFailReportTotalNum');
-- INSERT INTO `kpi_title` VALUES (475, 'HLR', 'HLR.A.036', NULL, 'GPRS用户激活失败报告成功次数', 'GprsActiveFailReportSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (476, 'HLR', 'HLR.A.037', NULL, 'GPRS用户激活失败报告失败缺参数', 'GprsActiveFailReportFailByMissPara');
-- INSERT INTO `kpi_title` VALUES (477, 'HLR', 'HLR.A.038', NULL, 'GPRS用户激活失败报告失败系统错误', 'GprsActiveFailReportFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (478, 'HLR', 'HLR.A.039', NULL, 'GPRS用户激活失败报告失败非期望的参数值', 'GprsActiveFailReportFailByUnexptPara');
-- INSERT INTO `kpi_title` VALUES (479, 'HLR', 'HLR.A.040', NULL, 'GPRS用户激活失败报告失败未知用户', 'GprsActiveFailReportFailByUnKnownUser');
-- INSERT INTO `kpi_title` VALUES (480, 'HLR', 'HLR.A.041', NULL, '发起CFU业务登记且激活次数', 'CfuActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (481, 'HLR', 'HLR.A.042', NULL, 'CFU业务登记且激活成功次数', 'CfuActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (482, 'HLR', 'HLR.A.043', NULL, 'CFU登记失败MS忙', 'CfuRegFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (483, 'HLR', 'HLR.A.044', NULL, 'CFU登记失败不允许将呼叫终接到MS', 'CfuRegFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (484, 'HLR', 'HLR.A.045', NULL, 'CFU登记失败MS去登记状态', 'CfuRegFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (485, 'HLR', 'HLR.A.046', NULL, 'CFU登记失败无寻呼响应', 'CfuRegFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (486, 'HLR', 'HLR.A.047', NULL, 'CFU登记失败系统错误', 'CfuRegFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (487, 'HLR', 'HLR.A.048', NULL, 'CFU登记失败未分配电话号码', 'CfuRegFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (488, 'HLR', 'HLR.A.049', NULL, 'CFU登记失败不可用', 'CfuRegFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (489, 'HLR', 'HLR.A.050', NULL, '发起CFU业务去活次数', 'CfuDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (490, 'HLR', 'HLR.A.051', NULL, 'CFU业务去活成功次数', 'CfuDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (491, 'HLR', 'HLR.A.052', NULL, 'CFU去活失败MS忙', 'CfuDeActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (492, 'HLR', 'HLR.A.053', NULL, 'CFU去活失败不允许将呼叫终接到MS', 'CfuDeActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (493, 'HLR', 'HLR.A.054', NULL, 'CFU去活失败未分配电话号码', 'CfuDeActvFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (494, 'HLR', 'HLR.A.055', NULL, 'CFU去活失败MS去登记状态', 'CfuDeActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (495, 'HLR', 'HLR.A.056', NULL, 'CFU去活失败无寻呼响应', 'CfuDeActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (496, 'HLR', 'HLR.A.057', NULL, 'CFU去活失败系统错误', 'CfuDeActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (497, 'HLR', 'HLR.A.058', NULL, 'CFU去活失败不可用', 'CfuDeActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (498, 'HLR', 'HLR.A.059', NULL, '发起CFB业务登记且激活次数', 'CfbActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (499, 'HLR', 'HLR.A.060', NULL, 'CFB业务登记且激活成功次数', 'CfbActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (500, 'HLR', 'HLR.A.061', NULL, 'CFB登记失败MS忙', 'CfbRegFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (501, 'HLR', 'HLR.A.062', NULL, 'CFB登记失败不允许将呼叫终接到MS', 'CfbRegFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (502, 'HLR', 'HLR.A.063', NULL, 'CFB登记失败MS去登记状态', 'CfbRegFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (503, 'HLR', 'HLR.A.064', NULL, 'CFB登记失败无寻呼响应', 'CfbRegFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (504, 'HLR', 'HLR.A.065', NULL, 'CFB登记失败系统错误', 'CfbRegFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (505, 'HLR', 'HLR.A.066', NULL, 'CFB登记失败未分配电话号码', 'CfbRegFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (506, 'HLR', 'HLR.A.067', NULL, 'CFB登记失败不可用', 'CfbRegFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (507, 'HLR', 'HLR.A.068', NULL, '发起CFB业务去活次数', 'CfbDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (508, 'HLR', 'HLR.A.069', NULL, 'CFB业务去活成功次数', 'CfbDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (509, 'HLR', 'HLR.A.070', NULL, 'CFB去活失败MS忙', 'CfbDeActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (510, 'HLR', 'HLR.A.071', NULL, 'CFB去活失败不允许将呼叫终接到MS', 'CfbDeActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (511, 'HLR', 'HLR.A.072', NULL, 'CFB去活失败MS去登记状态', 'CfbDeActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (512, 'HLR', 'HLR.A.073', NULL, 'CFB去活失败无寻呼响应', 'CfbDeActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (513, 'HLR', 'HLR.A.074', NULL, 'CFB去活失败系统错误', 'CfbDeActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (514, 'HLR', 'HLR.A.075', NULL, 'CFB去活失败未分配电话号码', 'CfbDeActvFailByUnAssignMsisdn ');
-- INSERT INTO `kpi_title` VALUES (515, 'HLR', 'HLR.A.076', NULL, 'CFB去活失败不可用', 'CfbDeActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (516, 'HLR', 'HLR.A.077', NULL, '发起CFNRy业务登记且激活次数', 'CfnryActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (517, 'HLR', 'HLR.A.078', NULL, 'CFNRy业务登记且激活成功次数', 'CfnryActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (518, 'HLR', 'HLR.A.079', NULL, 'CFNRy登记失败MS忙', 'CfnryRegFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (519, 'HLR', 'HLR.A.080', NULL, 'CFNRy登记失败不允许将呼叫终接到MS', 'CfnryRegFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (520, 'HLR', 'HLR.A.081', NULL, 'CFNRy登记失败MS去登记状态', 'CfnryRegFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (521, 'HLR', 'HLR.A.082', NULL, 'CFNRy登记失败无寻呼响应', 'CfnryRegFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (522, 'HLR', 'HLR.A.083', NULL, 'CFNRy登记失败系统错误', 'CfnryRegFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (523, 'HLR', 'HLR.A.084', NULL, 'CFNRy登记失败未分配电话号码', 'CfnryRegFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (524, 'HLR', 'HLR.A.085', NULL, 'CFNRy登记失败不可用', 'CfnryRegFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (525, 'HLR', 'HLR.A.086', NULL, '发起CFNRy业务去活次数', 'CfnryDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (526, 'HLR', 'HLR.A.087', NULL, 'CFNRy业务去活成功次数', 'CfnryDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (527, 'HLR', 'HLR.A.088', NULL, 'CFNRy去活失败MS忙', 'CfnryDeActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (528, 'HLR', 'HLR.A.089', NULL, 'CFNRy去活失败不允许将呼叫终接到MS', 'CfnryDeActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (529, 'HLR', 'HLR.A.090', NULL, 'CFNRy去活失败MS去登记状态', 'CfnryDeActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (530, 'HLR', 'HLR.A.091', NULL, 'CFNRy去活失败无寻呼响应', 'CfnryDeActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (531, 'HLR', 'HLR.A.092', NULL, 'CFNRy去活失败系统错误', 'CfnryDeActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (532, 'HLR', 'HLR.A.093', NULL, 'CFNRy去活失败未分配电话号码', 'CfnryDeActvFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (533, 'HLR', 'HLR.A.094', NULL, 'CFNRy去活失败不可用', 'CfnryDeActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (534, 'HLR', 'HLR.A.095', NULL, '发起CFNRc)业务登记且激活次数', 'CfnrcActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (535, 'HLR', 'HLR.A.096', NULL, '(CFNRc)业务登记且激活成功次数', 'CfnrcActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (536, 'HLR', 'HLR.A.097', NULL, '(CFNRc)登记失败MS忙', 'CfnrcRegFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (537, 'HLR', 'HLR.A.098', NULL, '(CFNRc)登记失败不允许将呼叫终接到MS', 'CfnrcRegFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (538, 'HLR', 'HLR.A.099', NULL, '(CFNRc)登记失败MS去登记状态', 'CfnrcRegFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (539, 'HLR', 'HLR.A.100', NULL, '(CFNRc)登记失败:无寻呼响应', 'CfnrcRegFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (540, 'HLR', 'HLR.A.101', NULL, '(CFNRc)登记失败:系统错误', 'CfnrcRegFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (541, 'HLR', 'HLR.A.102', NULL, '(CFNRc)登记失败:未分配电话号码', 'CfnrcRegFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (542, 'HLR', 'HLR.A.103', NULL, '(CFNRc)登记失败:不可用', 'CfnrcRegFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (543, 'HLR', 'HLR.A.104', NULL, '发起CFNRc)业务去活次数', 'CfnrcDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (544, 'HLR', 'HLR.A.105', NULL, 'CFNRc业务去活成功次数', 'CfnrcDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (545, 'HLR', 'HLR.A.106', NULL, 'CFNRc)去活失败MS忙', 'CfnrcDeActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (546, 'HLR', 'HLR.A.107', NULL, 'CFNRc)去活失败不允许将呼叫终接到MS', 'CfnrcDeActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (547, 'HLR', 'HLR.A.108', NULL, 'CFNRc)去活失败MS去登记状态', 'CfnrcDeActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (548, 'HLR', 'HLR.A.109', NULL, 'CFNRc)去活失败:无寻呼响应', 'CfnrcDeActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (549, 'HLR', 'HLR.A.110', NULL, 'CFNRc)去活失败:系统错误', 'CfnrcDeActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (550, 'HLR', 'HLR.A.111', NULL, 'CFNRc)去活失败:未分配电话号码', 'CfnrcDeActvFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (551, 'HLR', 'HLR.A.112', NULL, 'CFNRc)去活失败:不可用', 'CfnrcDeActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (552, 'HLR', 'HLR.A.113', NULL, '发起CW业务激活次数', 'CwActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (553, 'HLR', 'HLR.A.114', NULL, 'CW业务激活成功次数', 'CwActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (554, 'HLR', 'HLR.A.115', NULL, 'CW激活失败MS忙', 'CwActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (555, 'HLR', 'HLR.A.116', NULL, 'CW激活失败不允许将呼叫终接到MS', 'CwActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (556, 'HLR', 'HLR.A.117', NULL, 'CW激活失败MS去登记状态', 'CwActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (557, 'HLR', 'HLR.A.118', NULL, 'CW激活失败无寻呼响应', 'CwActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (558, 'HLR', 'HLR.A.119', NULL, 'CW激活失败系统错误', 'CwActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (559, 'HLR', 'HLR.A.120', NULL, 'CW激活失败未分配电话号码', 'CwActvFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (560, 'HLR', 'HLR.A.121', NULL, 'CW激活失败不可用', 'CwActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (561, 'HLR', 'HLR.A.122', NULL, '发起CW业务去活次数', 'CwDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (562, 'HLR', 'HLR.A.123', NULL, 'CW业务去活成功次数', 'CwDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (563, 'HLR', 'HLR.A.124', NULL, 'CW去活失败MS忙', 'CwDeActvFailByMsBusy');
-- INSERT INTO `kpi_title` VALUES (564, 'HLR', 'HLR.A.125', NULL, 'CW去活失败不允许将呼叫终接到MS', 'CwDeActvFailByMsDenied');
-- INSERT INTO `kpi_title` VALUES (565, 'HLR', 'HLR.A.126', NULL, 'CW去活失败MS去登记状态', 'CwDeActvFailByMsErase');
-- INSERT INTO `kpi_title` VALUES (566, 'HLR', 'HLR.A.127', NULL, 'CW去活失败无寻呼响应', 'CwDeActvFailByNoPagingResp');
-- INSERT INTO `kpi_title` VALUES (567, 'HLR', 'HLR.A.128', NULL, 'CW去活失败系统错误', 'CwDeActvFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (568, 'HLR', 'HLR.A.129', NULL, 'CW去活失败未分配电话号码', 'CwDeActvFailByUnAssignMsisdn');
-- INSERT INTO `kpi_title` VALUES (569, 'HLR', 'HLR.A.130', NULL, 'CW去活失败不可用', 'CwDeActvFailByUnavailable');
-- INSERT INTO `kpi_title` VALUES (570, 'HLR', 'HLR.A.131', NULL, '发起前转业务去活次数', 'CFDeActvReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (571, 'HLR', 'HLR.A.132', NULL, '前转业务去活成功次数', 'CFDeActvSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (572, 'HLR', 'HLR.A.133', NULL, '发起补充业务登记次数', 'SSRegReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (573, 'HLR', 'HLR.A.134', NULL, '发起补充业务登记成功次数', 'SSRegSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (574, 'HLR', 'HLR.A.135', NULL, '获取路由尝试次数', 'RouteInfoReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (575, 'HLR', 'HLR.A.136', NULL, '获取路由成功次数', 'RouteInfoSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (576, 'HLR', 'HLR.A.137', NULL, '获取路由尝试失败:缺席用户', 'RouteInfoFailByAbsentSub');
-- INSERT INTO `kpi_title` VALUES (577, 'HLR', 'HLR.A.138', NULL, '获取路由尝试失败:未知用户', 'RouteInfoFailByUnknownSub');
-- INSERT INTO `kpi_title` VALUES (578, 'HLR', 'HLR.A.139', NULL, '获取路由尝试失败:系统错误', 'RouteInfoFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (579, 'HLR', 'HLR.A.140', NULL, '获取路由尝试失败:终呼拒绝', 'RouteInfoFailByCalledReject');
-- INSERT INTO `kpi_title` VALUES (580, 'HLR', 'HLR.A.141', NULL, '获取路由尝试失败:缺参数', 'RouteInfoFailByDataMiss');
-- INSERT INTO `kpi_title` VALUES (581, 'HLR', 'HLR.A.142', NULL, '获取路由尝试失败:设备不支持', 'RouteInfoFailByFacNotSupport');
-- INSERT INTO `kpi_title` VALUES (582, 'HLR', 'HLR.A.143', NULL, '获取路由尝试失败:不支持路由优化', 'RouteInfoFailByORNotAllowed');
-- INSERT INTO `kpi_title` VALUES (583, 'HLR', 'HLR.A.144', NULL, 'SRI触发漫游号码请求失败缺席用户', 'RouteNumberFailByAbsentSub');
-- INSERT INTO `kpi_title` VALUES (584, 'HLR', 'HLR.A.145', NULL, 'SRI触发漫游号码请求失败缺参数', 'RouteNumberFailByDataMiss');
-- INSERT INTO `kpi_title` VALUES (585, 'HLR', 'HLR.A.146', NULL, 'SRI触发漫游号码请求失败设备不支持', 'RouteNumberFailByFacNotSupport');
-- INSERT INTO `kpi_title` VALUES (586, 'HLR', 'HLR.A.147', NULL, 'SRI触发漫游号码请求失败无漫游号码分配', 'RouteNumberFailByNoAssign');
-- INSERT INTO `kpi_title` VALUES (587, 'HLR', 'HLR.A.148', NULL, 'SRI触发漫游号码请求失败不支持路由优化', 'RouteNumberFailByORNotAllowed');
-- INSERT INTO `kpi_title` VALUES (588, 'HLR', 'HLR.A.149', NULL, 'SRI触发漫游号码请求次数', 'RouteNumberReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (589, 'HLR', 'HLR.A.150', NULL, 'SRI触发漫游号码请求失败系统错误', 'RouteNumberFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (590, 'HLR', 'HLR.A.151', NULL, 'SRI触发漫游号码请求失败非期望的参数值', 'RouteNumberFailByUnexpData');
-- INSERT INTO `kpi_title` VALUES (591, 'HLR', 'HLR.A.152', NULL, 'SRI触发漫游号码请求成功次数', 'RouteNumberSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (592, 'HLR', 'HLR.A.153', NULL, '路由失败:呼叫闭锁', 'SMRouteFailByCallBarred');
-- INSERT INTO `kpi_title` VALUES (593, 'HLR', 'HLR.A.154', NULL, '路由失败:缺参数', 'SMRouteFailByDataMiss');
-- INSERT INTO `kpi_title` VALUES (594, 'HLR', 'HLR.A.155', NULL, '路由失败:设备不支持', 'SMRouteFailByFacNotSupport');
-- INSERT INTO `kpi_title` VALUES (595, 'HLR', 'HLR.A.156', NULL, '路由失败:系统错误', 'SMRouteFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (596, 'HLR', 'HLR.A.157', NULL, '路由失败:非期望的参数值', 'SMRouteFailByUnexptPara');
-- INSERT INTO `kpi_title` VALUES (597, 'HLR', 'HLR.A.158', NULL, '路由失败:未知用户', 'SMRouteFailByUnknownSub');
-- INSERT INTO `kpi_title` VALUES (598, 'HLR', 'HLR.A.159', NULL, '终呼失败:非法用户', 'SMRouteFailByIllegalSub');
-- INSERT INTO `kpi_title` VALUES (599, 'HLR', 'HLR.A.160', NULL, '终呼失败:缺席用户', 'SMRouteFailByAbsentSub');
-- INSERT INTO `kpi_title` VALUES (600, 'HLR', 'HLR.A.161', NULL, '终呼失败:终呼时用户忙', 'SMRouteFailByBusySub');
-- INSERT INTO `kpi_title` VALUES (601, 'HLR', 'HLR.A.162', NULL, '终呼失败:系统错误', 'SMRouteFailBySysFail');
-- INSERT INTO `kpi_title` VALUES (602, 'HLR', 'HLR.A.163', NULL, '终呼失败:不期望的参数值', 'SMRouteFailByUnexptPara');
-- INSERT INTO `kpi_title` VALUES (603, 'HLR', 'HLR.A.164', NULL, '终呼失败:消息等待队列满', 'SMRouteFailByMsgQueueFull');
-- INSERT INTO `kpi_title` VALUES (604, 'HLR', 'HLR.A.165', NULL, '接收GSM MAP_ALERT消息次数', 'GsmAlertReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (605, 'HLR', 'HLR.A.166', NULL, '接收GSM MAP_ALERT消息成功次数', 'GsmAlertSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (606, 'HLR', 'HLR.A.167', NULL, '重启指示发送次数', 'ResetReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (607, 'HLR', 'HLR.A.168', NULL, '重启成功次数', 'ResetSuccTotalNum');
-- INSERT INTO `kpi_title` VALUES (608, 'HLR', 'HLR.A.169', NULL, '数据恢复请求次数', 'RestoreDataReqTotalNum');
-- INSERT INTO `kpi_title` VALUES (609, 'HLR', 'HLR.A.170', NULL, '数据恢复成功次数', 'RestoreDataReqSuccNum');
INSERT INTO `kpi_title` VALUES (610, 'HLR', 'HLR.A.171', NULL, 'C2G Boss开户成功次数', 'AddUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (611, 'HLR', 'HLR.A.172', NULL, 'C2G Boss销户成功次数', 'DelUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (612, 'HLR', 'HLR.A.173', NULL, 'C2G Boss修改用户成功次数', 'ModUserBossSuccNum');
INSERT INTO `kpi_title` VALUES (613, 'HLR', 'HLR.A.174', NULL, 'C2G Boss开户请求次数', 'AddUserBossReqNum');
INSERT INTO `kpi_title` VALUES (614, 'HLR', 'HLR.A.175', NULL, 'C2G Boss受理失败返回IMSI not used次数', 'BossServFailByImsiNot');
INSERT INTO `kpi_title` VALUES (615, 'HLR', 'HLR.A.176', NULL, 'C2G Boss受理失败返回ISDN not used次数', 'BossServFailByIsdnNot');
INSERT INTO `kpi_title` VALUES (616, 'HLR', 'HLR.A.177', NULL, 'C2G Boss受理失败返回其他错误次数', 'BossServFailByOther');
INSERT INTO `kpi_title` VALUES (617, 'HLR', 'HLR.A.178', NULL, 'C2G Boss受理失败返回repeat IMSI次数', 'BossServFailByRepImsi');
INSERT INTO `kpi_title` VALUES (618, 'HLR', 'HLR.A.179', NULL, 'C2G Boss受理失败返回repeat ISDN次数', 'BossServFailByRepIsdn');
INSERT INTO `kpi_title` VALUES (619, 'HLR', 'HLR.A.180', NULL, 'C2G Boss销户请求次数', 'DelUserBossReqNum');
INSERT INTO `kpi_title` VALUES (620, 'HLR', 'HLR.A.181', NULL, 'C2G Boss修改用户请求次数', 'ModUserBossReqNum');
SET FOREIGN_KEY_CHECKS = 1;

File diff suppressed because one or more lines are too long

View File

@@ -13,31 +13,31 @@ CREATE TABLE `alarm` (
`ne_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元名称',
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元省份地域',
`pv_flag` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元标识虚拟化标识',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`perceived_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '告警级别 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度',
`perceived_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '告警级别',
`object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象ID',
`object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象名称',
`object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象类型',
`location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警定位信息',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因',
`specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因ID',
`add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警辅助信息',
`ack_state` int DEFAULT '0' COMMENT '确认状态 0: Unacked, 1: Acked',
`ack_time` bigint DEFAULT '0' COMMENT '确认时间 秒级',
`ack_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '确认用户',
`clear_type` int DEFAULT '0' COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear',
`ack_state` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotAck' COMMENT '确认状态',
`ack_time` bigint DEFAULT '0' COMMENT '确认时间',
`ack_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '确认用户',
`clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态',
`clear_time` bigint DEFAULT '0' COMMENT '清除时间',
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_uni_aid_ne_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,
UNIQUE KEY `uk_uni_ne_aid` (`ne_type`,`ne_id`,`alarm_id`) USING BTREE,
KEY `idx_status_severity_time` (`alarm_status`,`orig_severity`,`event_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_记录表';

View File

@@ -10,22 +10,22 @@ CREATE TABLE `alarm_event` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象ID',
`object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象名称',
`object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象类型',
`location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警定位信息',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因',
`specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因ID',
`add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警辅助信息',
`clear_type` int DEFAULT '0' COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear',
`clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态',
`clear_time` bigint DEFAULT '0' COMMENT '清除时间',
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_ti_aid_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,

View File

@@ -10,16 +10,16 @@ CREATE TABLE `alarm_forward_log` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_type` varchar(10) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度 ',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
`type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
`target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送目标用户',
`result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送结果',
PRIMARY KEY (`id`) USING BTREE

View File

@@ -8,14 +8,14 @@ CREATE TABLE `alarm_log` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_日志记录';

View File

@@ -0,0 +1,38 @@
/*
Navicat Premium Data Transfer
Source Server : root@192.168.2.242
Source Server Type : MariaDB
Source Server Version : 100622 (10.6.22-MariaDB-0ubuntu0.22.04.1)
Source Host : 192.168.2.242:33066
Source Schema : omc_db
Target Server Type : MariaDB
Target Server Version : 100622 (10.6.22-MariaDB-0ubuntu0.22.04.1)
File Encoding : 65001
Date: 01/08/2025 10:07:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for cbc_message
-- ----------------------------
DROP TABLE IF EXISTS `cbc_message`;
CREATE TABLE `cbc_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`message_json` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`status` enum('ACTIVE','INACTIVE') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'INACTIVE',
`detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT current_timestamp(),
`updated_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `id`(`id`) USING BTREE,
INDEX `idx_ne_time`(`ne_type`, `ne_id`, `created_at`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 64 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'CDR事件_MF' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -1,6 +1,3 @@
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for kpi_c_title
-- ----------------------------
@@ -18,28 +15,36 @@ CREATE TABLE `kpi_c_title` (
`updated_at` bigint DEFAULT '0',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `idx_ne_kpi_id` (`ne_type`,`kpi_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标标题';
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标标题';
INSERT INTO `kpi_c_title` VALUES (1, 'AMF', 'AMF.C.01', 'Regstration Success Rate', '(\'AMF.03\'/\'AMF.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (2, 'AMF', 'AMF.C.02', 'Paging Success Rate', '((\'AMF.15\'+\'AMF.16\')/\'AMF.17\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (3, 'AMF', 'AMF.C.03', 'Service Request Success Rate', '(1-\'AMF.18\'/\'AMF.19\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (4, 'AMF', 'AMF.C.04', '5G Register Subscriber', '\'AMF.01\'', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (5, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '\'SMF.01\'', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (6, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(\'SMF.02\'/\'SMF.03\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (7, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(\'SMF.04\'/\'SMF.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (8, 'MME', 'MME.C.01', 'Attach Success Rate ', '(\'MME.A.05\'/\'MME.A.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (9, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate ', '(\'UPF.01\'/\'UPF.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (10, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(\'UPF.03\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (11, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(\'UPF.06\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (12, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate ', '(\'UDM.03\'/\'UDM.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (13, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate ', '(\'UDM.04\'/\'UDM.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (14, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(\'SCSCF.03\'/\'SCSCF.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (15, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(\'SCSCF.05\'/\'SCSCF.06\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (16, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(\'SCSCF.07\'/\'SCSCF.08\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (17, 'IMS', 'IMS.C.04', 'Service_Success_Rate ', '((\'SCSCF.05\'+\'SCSCF.07\')/(\'SCSCF.06\'+\'SCSCF.08\'))*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (18, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate ', '(\'SMF.13\'/\'SMF.14\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (19, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((\'SMF.09\'+\'SMF.11\')/(\'SMF.10\'+\'SMF.12\') )*100', '%', '', '2', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (22, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(\'UPF.05\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (23, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(\'UPF.04\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
SET FOREIGN_KEY_CHECKS = 1;
INSERT INTO `kpi_c_title` VALUES (20, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '\'SMF.01\'', ' ', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (21, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(\'SMF.02\'/\'SMF.03\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (22, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(\'SMF.04\'/\'SMF.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (23, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate', '(\'SMF.13\'/\'SMF.14\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (24, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((\'SMF.09\'+\'SMF.11\')/(\'SMF.10\'+\'SMF.12\') )*100', '%', '', '0', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (40, 'MME', 'MME.C.01', 'Combine Attach Success Rate', '(\'MME.A.05\'/\'MME.A.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (41, 'MME', 'MME.C.02', 'Attach Success Rate', '(\'MME.A.02\'/\'MME.A.01\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (60, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate', '(\'UPF.01\'/\'UPF.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (61, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(\'UPF.03\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (62, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(\'UPF.05\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (63, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(\'UPF.06\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (64, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(\'UPF.04\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (65, 'UPF', 'UPF.C.08', 'Uplink Packet Loss Rate', '(((\'UPF.05\')*8/5/1000/1000) - ((\'UPF.03\')*8/5/1000/1000)) / ((\'UPF.05\')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (66, 'UPF', 'UPF.C.09', 'Downlink Packet Loss Rate', '(((\'UPF.04\')*8/5/1000/1000) - ((\'UPF.06\')*8/5/1000/1000)) / ((\'UPF.04\')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (80, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate', '(\'UDM.03\'/\'UDM.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (81, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate', '(\'UDM.04\'/\'UDM.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (90, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(\'SCSCF.03\'/\'SCSCF.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (91, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(\'SCSCF.05\'/\'SCSCF.06\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (92, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(\'SCSCF.07\'/\'SCSCF.08\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (93, 'IMS', 'IMS.C.04', 'Service_Success_Rate', '((\'SCSCF.05\'+\'SCSCF.07\')/(\'SCSCF.06\'+\'SCSCF.08\'))*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (94, 'IMS', 'IMS.C.05', 'IDDOutgoing_Success_Rate', '(\'IDD.03\'/\'IDD.01\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT INTO `kpi_c_title` VALUES (95, 'IMS', 'IMS.C.06', 'IDDIncoming_Success_Rate', '(\'IDD.06\'/\'IDD.04\')*100', '%', '', '1', 'admin', 1739362260083);

View File

@@ -63,21 +63,21 @@ INSERT INTO `sys_dict_data` VALUES (34, 'sys_role_datascope', 'dictData.datascop
INSERT INTO `sys_dict_data` VALUES (35, 'sys_role_datascope', 'dictData.datascope.dept', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (36, 'sys_role_datascope', 'dictData.datascope.deptAndChid', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (37, 'sys_role_datascope', 'dictData.datascope.self', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', '2', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', 'CommunicationAlarm', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', 'EquipmentAlarm', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', 'ProcessingFailure', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', 'EnvironmentalAlarm', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', 'QualityOfServiceAlarm', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', 'NotClear', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', 'AutoClear', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', 'ManualClear', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', 'NotAck', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', 'Ack', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', 'Critical', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', 'Major', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', 'Minor', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', 'Warning', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', 'Event', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (53, 'index_status', 'dictType.index_status.normal', 'normal', 1, '#91cc75', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (54, 'index_status', 'dictType.index_status.abnormal', 'abnormal', 2, '#ee6666', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (55, 'cdr_sip_code', 'dictData.cdr_sip_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -94,9 +94,9 @@ INSERT INTO `sys_dict_data` VALUES (65, 'ue_auth_code', 'dictData.ue_auth_code.0
INSERT INTO `sys_dict_data` VALUES (66, 'ue_auth_code', 'dictData.ue_auth_code.005', '005', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (67, 'ue_auth_code', 'dictData.ue_auth_code.006', '006', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (68, 'ue_auth_code', 'dictData.ue_auth_code.007', '007', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'auth-result', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'cm-state', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'Auth', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'Detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'CM', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (72, 'ue_event_cm_state', 'dictData.ue_event_cm_state.connected', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (73, 'ue_event_cm_state', 'dictData.ue_event_cm_state.idle', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (74, 'ue_event_cm_state', 'dictData.ue_event_cm_state.inactive', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -193,6 +193,8 @@ INSERT INTO `sys_dict_data` VALUES (164, 'cdr_sip_code_cause', 'dictData.cdr_sip
INSERT INTO `sys_dict_data` VALUES (165, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (166, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (167, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (168, 'trace_interfaces', 'dictData.trace_interfaces.14', 'N14', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
INSERT INTO `sys_dict_data` VALUES (169, 'trace_interfaces', 'dictData.trace_interfaces.5', 'N5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -559,7 +559,7 @@ INSERT INTO `sys_i18n` VALUES (541, 'dictData.cdr_sip_code.404', '404 找不到'
INSERT INTO `sys_i18n` VALUES (542, 'dictData.cdr_sip_code.487', '487 请求已终止', '487 Request Terminated');
INSERT INTO `sys_i18n` VALUES (543, 'dictData.cdr_sip_code.503', '503 服务不可用', '503 Service Unavailable');
INSERT INTO `sys_i18n` VALUES (544, 'dictData.cdr_sip_code.504', '504 服务器超时', '504 Server Timeout');
INSERT INTO `sys_i18n` VALUES (545, 'dictData.cdr_sip_code.603', '603 下降', '603 Decline');
INSERT INTO `sys_i18n` VALUES (545, 'dictData.cdr_sip_code.603', '603 拒绝', '603 Decline');
INSERT INTO `sys_i18n` VALUES (546, 'dictData.cdr_sip_code.606', '606 不可接受', '606 Not Acceptable');
INSERT INTO `sys_i18n` VALUES (547, 'cache.name.token', '用户令牌', 'User Token');
INSERT INTO `sys_i18n` VALUES (548, 'cache.name.sys_config', '参数管理', 'Parameters Management');
@@ -747,13 +747,13 @@ INSERT INTO `sys_i18n` VALUES (729, 'dictData.cdr_sip_code_cause.200', '正常
INSERT INTO `sys_i18n` VALUES (730, 'dictData.cdr_sip_code_cause.202', '申请已被接受处理,但尚未完成 ', 'The request has been accepted for processing, but it hasn it completed yet');
INSERT INTO `sys_i18n` VALUES (731, 'dictData.cdr_sip_code_cause.302', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO `sys_i18n` VALUES (732, 'dictData.cdr_sip_code_cause.402', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO `sys_i18n` VALUES (733, 'dictData.cdr_sip_code_cause.403', '绝 MO 用户', 'MO User Rejected');
INSERT INTO `sys_i18n` VALUES (734, 'dictData.cdr_sip_code_cause.404', 'MT 用户离线', 'MT User Offline');
INSERT INTO `sys_i18n` VALUES (733, 'dictData.cdr_sip_code_cause.403', '接主叫用户', 'MO User Rejected');
INSERT INTO `sys_i18n` VALUES (734, 'dictData.cdr_sip_code_cause.404', '被叫用户离线', 'MT User Offline');
INSERT INTO `sys_i18n` VALUES (735, 'dictData.cdr_sip_code_cause.480', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO `sys_i18n` VALUES (736, 'dictData.cdr_sip_code_cause.481', '电话无法拨出', 'Call cannot be dialed');
INSERT INTO `sys_i18n` VALUES (737, 'dictData.cdr_sip_code_cause.482', '闪断', 'Flashback');
INSERT INTO `sys_i18n` VALUES (738, 'dictData.cdr_sip_code_cause.486', 'MT 用户忙', 'MT User Busy');
INSERT INTO `sys_i18n` VALUES (739, 'dictData.cdr_sip_code_cause.487', 'MO 用户断线', 'MO User Disconnected');
INSERT INTO `sys_i18n` VALUES (738, 'dictData.cdr_sip_code_cause.486', '被叫用户忙', 'MT User Busy');
INSERT INTO `sys_i18n` VALUES (739, 'dictData.cdr_sip_code_cause.487', '主叫挂断', 'MO User Disconnected');
INSERT INTO `sys_i18n` VALUES (740, 'dictData.cdr_sip_code_cause.408', '服务器等待响应的时间过长', 'The server waits too long for a response');
INSERT INTO `sys_i18n` VALUES (741, 'dictData.cdr_sip_code_cause.488', '媒体详细信息与服务器支持的内容不匹配', 'Media details didnt match what the server supports');
INSERT INTO `sys_i18n` VALUES (742, 'dictData.cdr_sip_code_cause.489', '因其他原因呼叫失败', 'Call failure for other reason');
@@ -761,7 +761,7 @@ INSERT INTO `sys_i18n` VALUES (743, 'dictData.cdr_sip_code_cause.500', '服务
INSERT INTO `sys_i18n` VALUES (744, 'dictData.cdr_sip_code_cause.503', '服务器超载或因维护而停机,无法处理呼叫', 'The server is overloaded or down for maintenance and can it process the call');
INSERT INTO `sys_i18n` VALUES (745, 'dictData.cdr_sip_code_cause.504', '服务器尝试以您的名义与另一台服务器通信,但未及时收到回复,并超时了', 'The server tried to talk to another server on your behalf, didnt get a reply in time, and timed out');
INSERT INTO `sys_i18n` VALUES (746, 'dictData.cdr_sip_code_cause.580', '因其他原因呼叫失败', 'Call failure for other reason');
INSERT INTO `sys_i18n` VALUES (747, 'dictData.cdr_sip_code_cause.603', 'MT 明确拒绝通话', 'MT explicitly rejected the call');
INSERT INTO `sys_i18n` VALUES (747, 'dictData.cdr_sip_code_cause.603', '被叫拒接', 'MT explicitly rejected the call');
INSERT INTO `sys_i18n` VALUES (748, 'dictData.cdr_sip_code_cause.606', '呼叫已到达用户设备,但会话设置的某些部分不可接受', 'The call reached the users device, but some parts of the session setup weren it acceptable');
INSERT INTO `sys_i18n` VALUES (749, 'dictType.cdr_sip_code_cause', 'IMS-Voice-SIP响应代码类别类型原因', 'IMS-Voice-SIP Response Code Category Type Cause');
INSERT INTO `sys_i18n` VALUES (750, 'job.backup_export_log', '备份-日志数据定期导出', 'Backup-Periodic export of Log Data');
@@ -770,5 +770,28 @@ INSERT INTO `sys_i18n` VALUES (752, 'job.ne_alarm_state_check_cmd', '网元告
INSERT INTO `sys_i18n` VALUES (753, 'job.ne_alarm_state_check_cmd_remark', '检查网元的内存/CPU/磁盘检查健康状况,在出现过阈值时发出警报。\r\n\r\nAlarm type:\r\nCommunicationAlarm=1\r\nEquipmentAlarm=2\r\nProcessingFailure=3\r\nEnvironmentalAlarm=4\r\nQualityOfServiceAlarm=5\r\n\r\nSeverity:\r\nCritical=1\r\nMajor=2\r\nMinor=3\r\nWarning=4\r\n\r\nAddInfo: 告警补充信息\r\ncpuUseGt: CPU使用率大于 范围0~100*CPU核心数\r\nmemUseGt: 内存使用率大于, 范围0~100%\r\ndiskUseGt: 磁盘使用率大于, 范围0~100%', 'Checks the memory/CPU/disk check health of the network element and sends alerts when thresholds are crossed.\n\nAlarm type:\nCommunicationAlarm=1\nEquipmentAlarm=2\nProcessingFailure=3\nEnvironmentalAlarm=4\nQualityOfServiceAlarm=5\n\nSeverity:\nCritical=1\nMajor=2\nMinor=3\nWarning=4\r\n\r\nAddInfo: Additional information on alarms\r\ncpuUseGt: CPU utilization is greater than, range 0~100*number of CPU cores\r\nmemUseGt: Memory utilization greater than, range 0 to 100%\r\ndiskUseGt: Disk utilization greater than, range 0 to 100%');
INSERT INTO `sys_i18n` VALUES (754, 'job.ne_alarm_state_check_license', '网元告警-License到期检查', 'NE Alarm-License Expire Check');
INSERT INTO `sys_i18n` VALUES (755, 'job.ne_alarm_state_check_license_remark', '检查网元的License是否即将到期在出现过阈值时发出警报。\r\n\r\nAlarm type:\r\nCommunicationAlarm=1\r\nEquipmentAlarm=2\r\nProcessingFailure=3\r\nEnvironmentalAlarm=4\r\nQualityOfServiceAlarm=5\r\n\r\nSeverity:\r\nCritical=1\r\nMajor=2\r\nMinor=3\r\nWarning=4\r\n\r\nAddInfo: 告警补充信息\r\ndayLt: 天数小于默认30天', 'Checks if the network element is License is about to expire and sends an alert if a threshold is crossed.\n\nAlarm type:\nCommunicationAlarm=1\nEquipmentAlarm=2\nProcessingFailure=3\nEnvironmentalAlarm=4\nQualityOfServiceAlarm=5\n\nSeverity:\nCritical=1\nMajor=2\nMinor=3\nWarning=4\r\n\r\nAddInfo: Additional information on alarms\r\ndayLt: Days less than, default 30 days');
INSERT INTO `sys_i18n` VALUES (756, 'dictData.trace_interfaces.14', 'N14', 'N14');
INSERT INTO `sys_i18n` VALUES (757, 'dictData.trace_interfaces.5', 'N5', 'N5');
INSERT INTO `sys_i18n` VALUES (758, "alarm.export.alarmCode", "告警编码", "Alarm Code");
INSERT INTO `sys_i18n` VALUES (759, "config.sys.user.fristPasswdChangeRemark", "关闭改为false 开启改为true, 建议同时设置密码有效期", "Off to false On to true, it is recommended to set the password expiration date at the same time.");
INSERT INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent');
INSERT INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information');
INSERT INTO `sys_i18n` VALUES (2002, 'menu.psap.agent.callback', '回拨管理', 'Callback Management');
INSERT INTO `sys_i18n` VALUES (2003, 'callback.status.NEW', '新建', 'New');
INSERT INTO `sys_i18n` VALUES (2004, 'callback.status.IN_PROGRESS', '处理中', 'In Progress');
INSERT INTO `sys_i18n` VALUES (2005, 'callback.status.NO_ANSWER_1', '未应答1', 'No Answer 1');
INSERT INTO `sys_i18n` VALUES (2006, 'callback.status.NO_ANSWER_2', '未应答2', 'No Answer 2');
INSERT INTO `sys_i18n` VALUES (2007, 'callback.status.TIMEOUT', '超时', 'Timeout');
INSERT INTO `sys_i18n` VALUES (2008, 'callback.status.PENDING', '挂起', 'Pending');
INSERT INTO `sys_i18n` VALUES (2009, 'callback.status.CLOSED', '关闭', 'Closed');
INSERT INTO `sys_i18n` VALUES (2010, 'job.export.cdr.mf', '定期导出MF话单', 'Periodic Export of MF Call Records');
INSERT INTO `sys_i18n` VALUES (2011, 'job.psap.ticket.monitor', '回拨工单监控', 'Callback Ticket Monitoring');
INSERT INTO `sys_i18n` VALUES (2012, 'menu.omc.cdr', '话单', 'Call Records');
INSERT INTO `sys_i18n` VALUES (2013, 'menu.omc.cdr.mf', '紧急呼叫话单', 'Emergency Call Records');
INSERT INTO `sys_i18n` VALUES (2014, 'menu.omc.cdr.crbt', '彩铃话单', 'Color Ring Back Tone Records');
INSERT INTO `sys_i18n` VALUES (2015, 'menu.omc.cdr.mms', '彩信话单', 'Multimedia Message Service Records');
INSERT INTO `sys_i18n` VALUES (2016, 'menu.ue.cbc.cbe', '广播', 'Broadcast');
INSERT INTO `sys_i18n` VALUES (2017, 'log.operate.title.cbcMessage', '广播事件', 'Broadcast Event');
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -36,9 +36,9 @@ INSERT INTO `sys_job` VALUES (10, 'job.delete_ne_config_backup', 'SYSTEM', 'dele
INSERT INTO `sys_job` VALUES (11, 'job.delete_alarm_record', 'SYSTEM', 'delete_alarm_record', '{\"storeDays\":7}', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_alarm_record_remark');
INSERT INTO `sys_job` VALUES (12, 'job.delete_kpi_record', 'SYSTEM', 'delete_kpi_record', '{\"storeDays\":7,\"neList\":[\"IMS\",\"AMF\",\"UDM\",\"UPF\",\"MME\",\"SMSC\",\"SMF\",\"MME\"]}', '0 20 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_kpi_record_remark');
INSERT INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
INSERT INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
INSERT INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
INSERT INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
INSERT INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
INSERT INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
INSERT INTO `sys_job` VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{\"backupPath\":\"/udm_data/auth\",\"storeDays\":30},{\"backupPath\":\"/udm_data/sub\",\"storeDays\":30},{\"backupPath\":\"/udm_data/voip\",\"storeDays\":30},{\"backupPath\":\"/udm_data/volte\",\"storeDays\":30},{\"backupPath\":\"/cdr/ims_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/smsc_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/smf_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/sgwc_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/log/sys_log_operate\",\"storeDays\":30,\"storeNum\":7},{\"backupPath\":\"/log/sys_log_login\",\"storeDays\":30,\"storeNum\":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
INSERT INTO `sys_job` VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{\"dataType\":[\"auth\",\"sub\",\"voip\",\"volte\"],\"fileType\":\"txt\"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');

View File

@@ -149,8 +149,8 @@ INSERT INTO `sys_menu` VALUES (2106, 'menu.perf.kpiKeyTarget', 2099, 12, 'kpiKey
INSERT INTO `sys_menu` VALUES (2107, 'menu.mml', 0, 8, 'mmlManage', '', '1', '0', 'D', '1', '1', '', 'icon-zhizuoliucheng', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mmlRemark');
INSERT INTO `sys_menu` VALUES (2108, 'menu.mml.ne', 2107, 1, 'neOperate', 'mmlManage/neOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:neOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.neRemark');
INSERT INTO `sys_menu` VALUES (2109, 'menu.mml.udm', 2107, 2, 'udmOperate', 'mmlManage/udmOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:udmOperate:index', 'icon-gonggaodayi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.udmRemark');
INSERT INTO `sys_menu` VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '1', '1', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.setRemark');
INSERT INTO `sys_menu` VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.omcRemark');
INSERT INTO `sys_menu` VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '0', '0', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.setRemark');
INSERT INTO `sys_menu` VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '0', '0', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.omcRemark');
INSERT INTO `sys_menu` VALUES (2112, 'menu.dashboard.sgwcCDR', 2140, 12, 'sgwcCDR', 'dashboard/sgwcCDR/index', '1', '0', 'M', '1', '1', 'sgwc#cdr:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2113, 'menu.security', 0, 14, 'security', '', '1', '0', 'D', '1', '1', '', 'icon-suofang', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.securityRemark');
INSERT INTO `sys_menu` VALUES (2114, 'menu.system.systemSet', 1, 60, 'setting', 'system/setting/index', '1', '1', 'M', '1', '1', 'system:setting:index', 'icon-piliang', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.system.systemSetRemark');
@@ -158,8 +158,8 @@ INSERT INTO `sys_menu` VALUES (2115, 'menu.system.systemResource', 1, 6, 'monito
INSERT INTO `sys_menu` VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:smsc:content', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2118, 'menu.dashboard.smfCDRByIMSI', 2140, 7, 'smfCDRByIMSI', 'dashboard/smfCDRByIMSI/index', '1', '0', 'M', '1', '1', 'smf#cdr:index', 'icon-gerenzhanghu', '0', 'system', 1728641403588,'system', 1728641403588, '');
-- INSERT INTO `sys_menu` VALUES (2119, 'menu.ueUser.n3iwf', 5, 8, 'n3iwf', 'neUser/n3iwf/index', '1', '0', 'M', '0', '1', 'neUser:n3iwf:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
-- INSERT INTO `sys_menu` VALUES (2120, 'menu.ueUser.pcf', 5, 9, 'pcf', 'neUser/pcf/index', '1', '0', 'M', '1', '1', 'neUser:pcf:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2119, 'Alarm Overview', 2129, 6, 'alarm-overview', 'faultManage/alarm-overview/index', '1', '1', 'M', '1', '1', 'faultManage:active-overview:index', 'icon-wenjian', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2120, 'Dashboard2', 2131, 8, 'dashboard2', 'dashboard/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview2:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2121, 'menu.system.user.editRole', 100, 8, '', '', '1', '1', 'B', '1', '1', 'system:user:editRole', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2122, 'menu.system.setting.i18n', 2114, 1, '', '', '1', '1', 'B', '1', '1', 'system:setting:i18n', '#', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.system.setting.i18nRemark');
INSERT INTO `sys_menu` VALUES (2123, 'menu.log.neFile', 2089, 9, 'neFile', 'ne/neFile/index', '1', '0', 'M', '1', '1', 'ne:neFile:index', 'icon-tubiaohuizhi', '0', 'system', 1728641403588,'system', 1728641403588, '');
@@ -177,6 +177,7 @@ INSERT INTO `sys_menu` VALUES (2135, 'menu.ne.neHost', 4, 15, 'neHost', 'ne/neHo
INSERT INTO `sys_menu` VALUES (2136, 'menu.ne.neHostCommand', 4, 18, 'neHostCommand', 'ne/neHostCommand/index', '1', '0', 'M', '1', '0', 'ne:neHostCommand:list', 'icon-fuzhidaima', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2137, 'menu.ne.neInfo', 4, 10, 'neInfo', 'ne/neInfo/index', '1', '0', 'M', '1', '1', 'ne:neInfo:list', 'icon-fuzhidaima', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amfUE', 'dashboard/amfUE/index', '1', '0', 'M', '1', '1', 'amf#ue:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2139, 'Key Performance Dashboard', 2099, 8, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2140, 'menu.monitor.cdr', 2089, 10, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2141, 'menu.monitor.event', 2089, 20, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588,'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2142, 'menu.ne.neQuickSetup', 4, 40, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, '');
@@ -208,6 +209,8 @@ INSERT INTO `sys_menu` VALUES (2167, 'menu.dashboard.overview.imsUeNum', 2132, 2
INSERT INTO `sys_menu` VALUES (2168, 'menu.dashboard.overview.gnbBase', 2132, 6, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:gnbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (2169, 'menu.dashboard.overview.enbBase', 2132, 8, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:enbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
INSERT INTO `sys_menu` VALUES (20000, 'menu.ue.cbc.cbe', 5, 20, 'cbe', 'cbc/cbe/index', '1', '0', 'M', '1', '1', 'cbc#dashboard:cdr:index', 'icon-tubiaoku', '0', 'system', 1711352709786, 'system', 1747796007372, '');
SET FOREIGN_KEY_CHECKS = 1;
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -163,6 +163,7 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2166);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2167);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2168);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2169);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 20000);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 4);
@@ -204,7 +205,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2097);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2107);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2108);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2109);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2111);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2113);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2114);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2115);
@@ -239,6 +239,7 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2166);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2167);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2168);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2169);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 20000);
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1);
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 4);

View File

@@ -7,8 +7,8 @@ CREATE TABLE `ue_event` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,

View File

@@ -7,8 +7,8 @@ CREATE TABLE `ue_event_amf` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,

View File

@@ -7,8 +7,8 @@ CREATE TABLE `ue_event_mme` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,

View File

@@ -11,31 +11,31 @@ CREATE TABLE IF NOT EXISTS `alarm` (
`ne_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元名称',
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元省份地域',
`pv_flag` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元标识虚拟化标识',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`perceived_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '告警级别 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度',
`perceived_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '告警级别',
`object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象ID',
`object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象名称',
`object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象类型',
`location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警定位信息',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因',
`specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因ID',
`add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警辅助信息',
`ack_state` int DEFAULT '0' COMMENT '确认状态 0: Unacked, 1: Acked',
`ack_time` bigint DEFAULT '0' COMMENT '确认时间 秒级',
`ack_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '确认用户',
`clear_type` int DEFAULT '0' COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear',
`ack_state` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotAck' COMMENT '确认状态',
`ack_time` bigint DEFAULT '0' COMMENT '确认时间',
`ack_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '确认用户',
`clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态',
`clear_time` bigint DEFAULT '0' COMMENT '清除时间',
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_uni_aid_ne_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,
UNIQUE KEY `uk_uni_ne_aid` (`ne_type`,`ne_id`,`alarm_id`) USING BTREE,
KEY `idx_status_severity_time` (`alarm_status`,`orig_severity`,`event_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_记录表';
@@ -54,31 +54,49 @@ ALTER TABLE `alarm` MODIFY COLUMN `ne_id` varchar(64) CHARACTER SET utf8mb4 COLL
ALTER TABLE `alarm` MODIFY COLUMN `ne_name` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元名称' AFTER `ne_id`;
ALTER TABLE `alarm` MODIFY COLUMN `province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元省份地域' AFTER `ne_name`;
ALTER TABLE `alarm` MODIFY COLUMN `pv_flag` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '网元标识虚拟化标识' AFTER `province`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 同网元类型连续递增' AFTER `pv_flag`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 连续递增' AFTER `pv_flag`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID' AFTER `alarm_seq`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警标题' AFTER `alarm_id`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_code` int(11) NULL DEFAULT 0 COMMENT '告警状态码' AFTER `alarm_title`;
ALTER TABLE `alarm` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间 秒级' AFTER `alarm_code`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5' AFTER `event_time`;
ALTER TABLE `alarm` MODIFY COLUMN `orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)' AFTER `alarm_type`;
ALTER TABLE `alarm` MODIFY COLUMN `perceived_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '告警级别 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)' AFTER `orig_severity`;
ALTER TABLE `alarm` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间' AFTER `alarm_code`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警类型' AFTER `event_time`;
ALTER TABLE `alarm` MODIFY COLUMN `orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度' AFTER `alarm_type`;
ALTER TABLE `alarm` MODIFY COLUMN `perceived_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '告警级别' AFTER `orig_severity`;
ALTER TABLE `alarm` MODIFY COLUMN `object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象ID' AFTER `perceived_severity`;
ALTER TABLE `alarm` MODIFY COLUMN `object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象名称' AFTER `object_uid`;
ALTER TABLE `alarm` MODIFY COLUMN `object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象类型' AFTER `object_name`;
ALTER TABLE `alarm` MODIFY COLUMN `location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警定位信息' AFTER `object_type`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '告警状态 0:clear, 1:active' AFTER `location_info`;
ALTER TABLE `alarm` MODIFY COLUMN `alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态' AFTER `location_info`;
ALTER TABLE `alarm` MODIFY COLUMN `specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警问题原因' AFTER `alarm_status`;
ALTER TABLE `alarm` MODIFY COLUMN `specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警问题原因ID' AFTER `specific_problem`;
ALTER TABLE `alarm` MODIFY COLUMN `add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警辅助信息' AFTER `specific_problem_id`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_state` int(11) NULL DEFAULT 0 COMMENT '确认状态 0: Unacked, 1: Acked' AFTER `add_info`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_time` bigint(20) NULL DEFAULT 0 COMMENT '确认时间 秒级' AFTER `ack_state`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '确认用户' AFTER `ack_time`;
ALTER TABLE `alarm` MODIFY COLUMN `clear_type` int(11) NULL DEFAULT 0 COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear' AFTER `ack_user`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_state` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotAck' COMMENT '确认状态' AFTER `add_info`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_time` bigint(20) NULL DEFAULT 0 COMMENT '确认时间' AFTER `ack_state`;
ALTER TABLE `alarm` MODIFY COLUMN `ack_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '确认用户' AFTER `ack_time`;
ALTER TABLE `alarm` MODIFY COLUMN `clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态' AFTER `ack_user`;
ALTER TABLE `alarm` MODIFY COLUMN `clear_time` bigint(20) NULL DEFAULT 0 COMMENT '清除时间' AFTER `clear_type`;
ALTER TABLE `alarm` MODIFY COLUMN `clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '清除用户' AFTER `clear_time`;
ALTER TABLE `alarm` MODIFY COLUMN `clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户' AFTER `clear_time`;
ALTER TABLE `alarm` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `clear_user`;
ALTER TABLE `alarm` ADD UNIQUE INDEX `uk_uni_aid_ne_aseq`(`ne_type`, `ne_id`, `alarm_id`, `alarm_seq`) USING BTREE;
ALTER TABLE `alarm` ADD UNIQUE INDEX `uk_uni_ne_aid`(`ne_type`, `ne_id`, `alarm_id`) USING BTREE;
ALTER TABLE `alarm` ADD INDEX `idx_status_severity_time`(`alarm_status`, `orig_severity`, `event_time`) USING BTREE;
-- 更新数据
UPDATE `alarm` SET `alarm_type` = 'CommunicationAlarm' WHERE `alarm_type` = '1';
UPDATE `alarm` SET `alarm_type` = 'EquipmentAlarm' WHERE `alarm_type` = '2';
UPDATE `alarm` SET `alarm_type` = 'ProcessingFailure' WHERE `alarm_type` = '3';
UPDATE `alarm` SET `alarm_type` = 'EnvironmentalAlarm' WHERE `alarm_type` = '4';
UPDATE `alarm` SET `alarm_type` = 'QualityOfServiceAlarm' WHERE `alarm_type` = '5';
UPDATE `alarm` SET `orig_severity` = 'Critical', `perceived_severity` = 'Critical' WHERE `orig_severity` = '1';
UPDATE `alarm` SET `orig_severity` = 'Major', `perceived_severity` = 'Major' WHERE `orig_severity` = '2';
UPDATE `alarm` SET `orig_severity` = 'Minor', `perceived_severity` = 'Minor' WHERE `orig_severity` = '3';
UPDATE `alarm` SET `orig_severity` = 'Warning', `perceived_severity` = 'Warning' WHERE `orig_severity` = '4';
UPDATE `alarm` SET `orig_severity` = 'Event', `perceived_severity` = 'Event' WHERE `orig_severity` = '5';
UPDATE `alarm` SET `alarm_status` = 'Clear' WHERE `alarm_status` = '0';
UPDATE `alarm` SET `alarm_status` = 'Active' WHERE `alarm_status` = '1';
UPDATE `alarm` SET `ack_state` = 'NotAck' WHERE `ack_state` = '0';
UPDATE `alarm` SET `ack_state` = 'Ack' WHERE `ack_state` = '1';
UPDATE `alarm` SET `clear_type` = 'NotClear' WHERE `clear_type` = '0';
UPDATE `alarm` SET `clear_type` = 'AutoClear' WHERE `clear_type` = '1';
UPDATE `alarm` SET `clear_type` = 'ManualClear' WHERE `clear_type` = '2';
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -8,25 +8,25 @@ CREATE TABLE IF NOT EXISTS `alarm_event` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象ID',
`object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象名称',
`object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '对象类型',
`location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警定位信息',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因',
`specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警问题原因ID',
`add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警辅助信息',
`clear_type` int DEFAULT '0' COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear',
`clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态',
`clear_time` bigint DEFAULT '0' COMMENT '清除时间',
`clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户',
`timestamp` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_ti_aid_aseq` (`ne_type`,`ne_id`,`alarm_id`,`alarm_seq`) USING BTREE,
UNIQUE KEY `uk_ti_aid` (`ne_type`,`ne_id`,`alarm_id`) USING BTREE,
KEY `idx_astatus_etime` (`alarm_status`,`event_time`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_事件记录表';
@@ -51,25 +51,31 @@ ALTER TABLE `alarm_event` DROP INDEX `idx_severity_status`;
ALTER TABLE `alarm_event` COMMENT = '告警_事件记录表';
ALTER TABLE `alarm_event` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元类型' AFTER `id`;
ALTER TABLE `alarm_event` MODIFY COLUMN `ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '网元ID' AFTER `ne_type`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 同网元类型连续递增' AFTER `ne_id`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 连续递增' AFTER `ne_id`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' COMMENT '告警ID' AFTER `alarm_seq`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警标题' AFTER `alarm_id`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_code` int(11) NULL DEFAULT 0 COMMENT '告警状态码' AFTER `alarm_title`;
ALTER TABLE `alarm_event` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间 秒级' AFTER `alarm_code`;
ALTER TABLE `alarm_event` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间' AFTER `alarm_code`;
ALTER TABLE `alarm_event` MODIFY COLUMN `object_uid` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象ID' AFTER `event_time`;
ALTER TABLE `alarm_event` MODIFY COLUMN `object_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象名称' AFTER `object_uid`;
ALTER TABLE `alarm_event` MODIFY COLUMN `object_type` varchar(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '对象类型' AFTER `object_name`;
ALTER TABLE `alarm_event` MODIFY COLUMN `location_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警定位信息' AFTER `object_type`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '告警状态 0:clear, 1:active' AFTER `location_info`;
ALTER TABLE `alarm_event` MODIFY COLUMN `alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态' AFTER `location_info`;
ALTER TABLE `alarm_event` MODIFY COLUMN `specific_problem` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警问题原因' AFTER `alarm_status`;
ALTER TABLE `alarm_event` MODIFY COLUMN `specific_problem_id` varchar(100) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警问题原因ID' AFTER `specific_problem`;
ALTER TABLE `alarm_event` MODIFY COLUMN `add_info` varchar(2048) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警辅助信息' AFTER `specific_problem_id`;
ALTER TABLE `alarm_event` MODIFY COLUMN `clear_type` int(11) NULL DEFAULT 0 COMMENT '清除状态 0: Unclear, 1: AutoClear, 2: ManualClear' AFTER `add_info`;
ALTER TABLE `alarm_event` MODIFY COLUMN `clear_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'NotClear' COMMENT '清除状态' AFTER `add_info`;
ALTER TABLE `alarm_event` MODIFY COLUMN `clear_time` bigint(20) NULL DEFAULT 0 COMMENT '清除时间' AFTER `clear_type`;
ALTER TABLE `alarm_event` MODIFY COLUMN `clear_user` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '清除用户' AFTER `clear_time`;
ALTER TABLE `alarm_event` MODIFY COLUMN `clear_user` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '清除用户' AFTER `clear_time`;
ALTER TABLE `alarm_event` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `clear_user`;
ALTER TABLE `alarm_event` ADD UNIQUE INDEX `uk_ti_aid_aseq`(`ne_type`, `ne_id`, `alarm_id`, `alarm_seq`) USING BTREE;
ALTER TABLE `alarm_event` ADD UNIQUE INDEX `uk_ti_aid`(`ne_type`, `ne_id`, `alarm_id`) USING BTREE;
ALTER TABLE `alarm_event` ADD INDEX `idx_astatus_etime`(`alarm_status`, `event_time`) USING BTREE;
-- 更新数据
UPDATE `alarm_event` SET `alarm_status` = 'Clear' WHERE `alarm_status` = '0';
UPDATE `alarm_event` SET `alarm_status` = 'Active' WHERE `alarm_status` = '1';
UPDATE `alarm_event` SET `clear_type` = 'NotClear' WHERE `clear_type` = '0';
UPDATE `alarm_event` SET `clear_type` = 'AutoClear' WHERE `clear_type` = '1';
UPDATE `alarm_event` SET `clear_type` = 'ManualClear' WHERE `clear_type` = '2';
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -8,16 +8,16 @@ CREATE TABLE IF NOT EXISTS `alarm_forward_log` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_type` varchar(10) COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度 ',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
`type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
`type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL',
`target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送目标用户',
`result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '发送结果',
PRIMARY KEY (`id`) USING BTREE
@@ -33,17 +33,32 @@ ALTER TABLE `alarm_forward_log` DROP COLUMN `log_time`;
ALTER TABLE `alarm_forward_log` COMMENT = '告警_转发日志记录';
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `id`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '' AFTER `ne_type`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 同网元类型连续递增' AFTER `ne_id`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT '告警序号 连续递增' AFTER `ne_id`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警ID' AFTER `alarm_seq`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `alarm_code` int(11) NULL DEFAULT 0 COMMENT '告警状态码' AFTER `alarm_id`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警标题' AFTER `alarm_code`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '告警状态 0:clear, 1:active' AFTER `alarm_title`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `alarm_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5' AFTER `alarm_status`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)' AFTER `alarm_type`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态' AFTER `alarm_title`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态' AFTER `alarm_title`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型' AFTER `alarm_status`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型' AFTER `alarm_status`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度' AFTER `alarm_type`;
ALTER TABLE `alarm_forward_log` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间 秒级' AFTER `orig_severity`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `created_at` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `event_time`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `type` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '转发方式 SMS/EMAIL' AFTER `created_at`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '转发方式 SMS/EMAIL' AFTER `created_at`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `target` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '发送目标用户' AFTER `type`;
ALTER TABLE `alarm_forward_log` ADD COLUMN `result` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '发送结果' AFTER `target`;
-- 更新数据
UPDATE `alarm_forward_log` SET `alarm_type` = 'CommunicationAlarm' WHERE `alarm_type` = '1';
UPDATE `alarm_forward_log` SET `alarm_type` = 'EquipmentAlarm' WHERE `alarm_type` = '2';
UPDATE `alarm_forward_log` SET `alarm_type` = 'ProcessingFailure' WHERE `alarm_type` = '3';
UPDATE `alarm_forward_log` SET `alarm_type` = 'EnvironmentalAlarm' WHERE `alarm_type` = '4';
UPDATE `alarm_forward_log` SET `alarm_type` = 'QualityOfServiceAlarm' WHERE `alarm_type` = '5';
UPDATE `alarm_forward_log` SET `orig_severity` = 'Critical' WHERE `orig_severity` = '1';
UPDATE `alarm_forward_log` SET `orig_severity` = 'Major' WHERE `orig_severity` = '2';
UPDATE `alarm_forward_log` SET `orig_severity` = 'Minor' WHERE `orig_severity` = '3';
UPDATE `alarm_forward_log` SET `orig_severity` = 'Warning' WHERE `orig_severity` = '4';
UPDATE `alarm_forward_log` SET `orig_severity` = 'Event' WHERE `orig_severity` = '5';
UPDATE `alarm_forward_log` SET `alarm_status` = 'Clear' WHERE `alarm_status` = '0';
UPDATE `alarm_forward_log` SET `alarm_status` = 'Active' WHERE `alarm_status` = '1';
SET FOREIGN_KEY_CHECKS=1;

View File

@@ -5,14 +5,14 @@ CREATE TABLE IF NOT EXISTS `alarm_log` (
`id` int NOT NULL AUTO_INCREMENT,
`ne_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_id` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 同网元类型连续递增',
`alarm_seq` int DEFAULT '0' COMMENT '告警序号 连续递增',
`alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警ID',
`alarm_code` int DEFAULT '0' COMMENT '告警状态码',
`alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警标题',
`alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '告警状态 0:clear, 1:active',
`alarm_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5',
`orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间 秒级',
`alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态',
`alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型',
`orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度',
`event_time` bigint DEFAULT '0' COMMENT '事件产生时间',
`created_at` bigint DEFAULT '0' COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='告警_日志记录';
@@ -28,10 +28,25 @@ ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_seq` int(11) NULL DEFAULT 0 COMMENT
ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警ID' AFTER `alarm_seq`;
ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_code` int(11) NULL DEFAULT 0 COMMENT '告警状态码' AFTER `alarm_id`;
ALTER TABLE `alarm_log` ADD COLUMN `alarm_title` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警标题' AFTER `alarm_code`;
ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_status` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '告警状态 0:clear, 1:active' AFTER `alarm_title`;
ALTER TABLE `alarm_log` ADD COLUMN `alarm_type` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '告警类型 CommunicationAlarm=1,EquipmentAlarm=2,ProcessingFailure=3,EnvironmentalAlarm=4,QualityOfServiceAlarm=5' AFTER `alarm_status`;
ALTER TABLE `alarm_log` ADD COLUMN `orig_severity` varchar(10) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '3' COMMENT '严重程度 1: Critical, 2: Major, 3: Minor, 4: Warning, 5: Event(Only VNF)' AFTER `alarm_type`;
ALTER TABLE `alarm_log` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间 秒级' AFTER `orig_severity`;
ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_status` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Active' COMMENT '告警状态' AFTER `alarm_title`;
ALTER TABLE `alarm_log` ADD COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型' AFTER `alarm_status`;
ALTER TABLE `alarm_log` MODIFY COLUMN `alarm_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '告警类型' AFTER `alarm_status`;
ALTER TABLE `alarm_log` ADD COLUMN `orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度' AFTER `alarm_type`;
ALTER TABLE `alarm_log` MODIFY COLUMN `orig_severity` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'Minor' COMMENT '严重程度' AFTER `alarm_type`;
ALTER TABLE `alarm_log` MODIFY COLUMN `event_time` bigint(20) NULL DEFAULT 0 COMMENT '事件产生时间' AFTER `orig_severity`;
ALTER TABLE `alarm_log` ADD COLUMN `created_at` bigint(20) NULL DEFAULT 0 COMMENT '创建时间' AFTER `event_time`;
-- 更新数据
UPDATE `alarm_log` SET `alarm_type` = 'CommunicationAlarm' WHERE `alarm_type` = '1';
UPDATE `alarm_log` SET `alarm_type` = 'EquipmentAlarm' WHERE `alarm_type` = '2';
UPDATE `alarm_log` SET `alarm_type` = 'ProcessingFailure' WHERE `alarm_type` = '3';
UPDATE `alarm_log` SET `alarm_type` = 'EnvironmentalAlarm' WHERE `alarm_type` = '4';
UPDATE `alarm_log` SET `alarm_type` = 'QualityOfServiceAlarm' WHERE `alarm_type` = '5';
UPDATE `alarm_log` SET `orig_severity` = 'Critical' WHERE `orig_severity` = '1';
UPDATE `alarm_log` SET `orig_severity` = 'Major' WHERE `orig_severity` = '2';
UPDATE `alarm_log` SET `orig_severity` = 'Minor' WHERE `orig_severity` = '3';
UPDATE `alarm_log` SET `orig_severity` = 'Warning' WHERE `orig_severity` = '4';
UPDATE `alarm_log` SET `orig_severity` = 'Event' WHERE `orig_severity` = '5';
UPDATE `alarm_log` SET `alarm_status` = 'Clear' WHERE `alarm_status` = '0';
UPDATE `alarm_log` SET `alarm_status` = 'Active' WHERE `alarm_status` = '1';
-- Dump completed on 2024-02-18 18:26:55

View File

@@ -0,0 +1,37 @@
/*
Navicat Premium Data Transfer
Source Server : root@192.168.2.242
Source Server Type : MariaDB
Source Server Version : 100622 (10.6.22-MariaDB-0ubuntu0.22.04.1)
Source Host : 192.168.2.242:33066
Source Schema : omc_db
Target Server Type : MariaDB
Target Server Version : 100622 (10.6.22-MariaDB-0ubuntu0.22.04.1)
File Encoding : 65001
Date: 01/08/2025 10:07:00
*/
SET NAMES utf8mb4;
SET FOREIGN_KEY_CHECKS = 0;
-- ----------------------------
-- Table structure for cbc_message
-- ----------------------------
CREATE TABLE IF NOT EXISTS `cbc_message` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`message_json` varchar(10240) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`status` enum('ACTIVE','INACTIVE') CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT 'INACTIVE',
`detail` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL,
`created_at` bigint(20) NULL DEFAULT current_timestamp(),
`updated_at` bigint(20) NULL DEFAULT NULL,
PRIMARY KEY (`id`) USING BTREE,
INDEX `id`(`id`) USING BTREE,
INDEX `idx_ne_time`(`ne_type`, `ne_id`, `created_at`) USING BTREE
) ENGINE = InnoDB AUTO_INCREMENT = 64 CHARACTER SET = utf8mb4 COLLATE = utf8mb4_general_ci COMMENT = 'CDR事件_MF' ROW_FORMAT = Dynamic;
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -17,32 +17,7 @@ CREATE TABLE IF NOT EXISTS `kpi_c_title` (
`updated_at` bigint DEFAULT '0',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `idx_ne_kpi_id` (`ne_type`,`kpi_id`) USING BTREE
) ENGINE=InnoDB AUTO_INCREMENT=24 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标标题';
-- ----------------------------
-- Data for kpi_c_title
-- ----------------------------
INSERT IGNORE INTO `kpi_c_title` VALUES (1, 'AMF', 'AMF.C.01', 'Regstration Success Rate', '(\'AMF.03\'/\'AMF.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (2, 'AMF', 'AMF.C.02', 'Paging Success Rate', '((\'AMF.15\'+\'AMF.16\')/\'AMF.17\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (3, 'AMF', 'AMF.C.03', 'Service Request Success Rate', '(1-\'AMF.18\'/\'AMF.19\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (4, 'AMF', 'AMF.C.04', '5G Register Subscriber', '\'AMF.01\'', ' ', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (5, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '\'SMF.01\'', ' ', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (6, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(\'SMF.02\'/\'SMF.03\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (7, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(\'SMF.04\'/\'SMF.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (8, 'MME', 'MME.C.01', 'Attach Success Rate ', '(\'MME.A.05\'/\'MME.A.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (9, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate ', '(\'UPF.01\'/\'UPF.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (10, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(\'UPF.03\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (11, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(\'UPF.06\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (12, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate ', '(\'UDM.03\'/\'UDM.02\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (13, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate ', '(\'UDM.04\'/\'UDM.05\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (14, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(\'SCSCF.03\'/\'SCSCF.04\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (15, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(\'SCSCF.05\'/\'SCSCF.06\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (16, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(\'SCSCF.07\'/\'SCSCF.08\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (17, 'IMS', 'IMS.C.04', 'Service_Success_Rate ', '((\'SCSCF.05\'+\'SCSCF.07\')/(\'SCSCF.06\'+\'SCSCF.08\'))*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (18, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate ', '(\'SMF.13\'/\'SMF.14\')*100', '%', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (19, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((\'SMF.09\'+\'SMF.11\')/(\'SMF.10\'+\'SMF.12\') )*100', '%', '', '2', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (22, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(\'UPF.05\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
INSERT IGNORE INTO `kpi_c_title` VALUES (23, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(\'UPF.04\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='KPI_自定义指标标题';
-- ----------------------------
-- COLUMN for kpi_c_title
@@ -58,4 +33,40 @@ ALTER TABLE `kpi_c_title` MODIFY COLUMN `created_by` varchar(32) CHARACTER SET u
ALTER TABLE `kpi_c_title` MODIFY COLUMN `updated_at` bigint(20) NULL DEFAULT 0 AFTER `created_by`;
ALTER TABLE `kpi_c_title` COMMENT = 'KPI_自定义指标标题';
-- ----------------------------
-- Data for kpi_c_title
-- ----------------------------
DELETE FROM `kpi_c_title` WHERE `id`<=23;
REPLACE INTO `kpi_c_title` VALUES (1, 'AMF', 'AMF.C.01', 'Regstration Success Rate', '(\'AMF.03\'/\'AMF.02\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (2, 'AMF', 'AMF.C.02', 'Paging Success Rate', '((\'AMF.15\'+\'AMF.16\')/\'AMF.17\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (3, 'AMF', 'AMF.C.03', 'Service Request Success Rate', '(1-\'AMF.18\'/\'AMF.19\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (4, 'AMF', 'AMF.C.04', '5G Register Subscriber', '\'AMF.01\'', ' ', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (20, 'SMF', 'SMF.C.01', 'SA_MeanPduSession', '\'SMF.01\'', ' ', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (21, 'SMF', 'SMF.C.02', 'PDU Session Establishment Success Rate', '(\'SMF.02\'/\'SMF.03\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (22, 'SMF', 'SMF.C.03', 'IMS Session Establishment Success Rate', '(\'SMF.04\'/\'SMF.05\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (23, 'SMF', 'SMF.C.06', 'IMS_DefaultBear_Success_Rate', '(\'SMF.13\'/\'SMF.14\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (24, 'SMF', 'SMF.C.07', 'Bear_Success_Rate_new', '((\'SMF.09\'+\'SMF.11\')/(\'SMF.10\'+\'SMF.12\') )*100', '%', '', '0', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (40, 'MME', 'MME.C.01', 'Combine Attach Success Rate', '(\'MME.A.05\'/\'MME.A.04\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (41, 'MME', 'MME.C.02', 'Attach Success Rate', '(\'MME.A.02\'/\'MME.A.01\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (60, 'UPF', 'UPF.C.01', 'PFCP Establish Success Rate', '(\'UPF.01\'/\'UPF.02\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (61, 'UPF', 'UPF.C.02', 'N6_Uplink_Throughout', '(\'UPF.03\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (62, 'UPF', 'UPF.C.03', 'N3_Uplink_Throughout', '(\'UPF.05\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (63, 'UPF', 'UPF.C.06', 'N3_Downlink_Throughout', '(\'UPF.06\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (64, 'UPF', 'UPF.C.07', 'N6_Downlink_Throughout', '(\'UPF.04\')*8/5/1000/1000', 'Mbps', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (65, 'UPF', 'UPF.C.08', 'Uplink Packet Loss Rate', '(((\'UPF.05\')*8/5/1000/1000) - ((\'UPF.03\')*8/5/1000/1000)) / ((\'UPF.05\')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (66, 'UPF', 'UPF.C.09', 'Downlink Packet Loss Rate', '(((\'UPF.04\')*8/5/1000/1000) - ((\'UPF.06\')*8/5/1000/1000)) / ((\'UPF.04\')*8/5/1000/1000) * 100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (80, 'UDM', 'UDM.C.01', 'AMF_UECM_Success_Rate', '(\'UDM.03\'/\'UDM.02\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (81, 'UDM', 'UDM.C.02', 'SMF_UECM_Success_Rate', '(\'UDM.04\'/\'UDM.05\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (90, 'IMS', 'IMS.C.01', 'InitReg_Success_Rate', '(\'SCSCF.03\'/\'SCSCF.04\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (91, 'IMS', 'IMS.C.02', 'MO_Success_Rate', '(\'SCSCF.05\'/\'SCSCF.06\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (92, 'IMS', 'IMS.C.03', 'MT_Success_Rate', '(\'SCSCF.07\'/\'SCSCF.08\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (93, 'IMS', 'IMS.C.04', 'Service_Success_Rate', '((\'SCSCF.05\'+\'SCSCF.07\')/(\'SCSCF.06\'+\'SCSCF.08\'))*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (94, 'IMS', 'IMS.C.05', 'IDDOutgoing_Success_Rate', '(\'IDD.03\'/\'IDD.01\')*100', '%', '', '1', 'admin', 1739362260083);
REPLACE INTO `kpi_c_title` VALUES (95, 'IMS', 'IMS.C.06', 'IDDIncoming_Success_Rate', '(\'IDD.06\'/\'IDD.04\')*100', '%', '', '1', 'admin', 1739362260083);
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -67,21 +67,21 @@ REPLACE INTO `sys_dict_data` VALUES (34, 'sys_role_datascope', 'dictData.datasco
REPLACE INTO `sys_dict_data` VALUES (35, 'sys_role_datascope', 'dictData.datascope.dept', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (36, 'sys_role_datascope', 'dictData.datascope.deptAndChid', '4', 4, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (37, 'sys_role_datascope', 'dictData.datascope.self', '5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', '2', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', '0', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', '1', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', '1', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', '2', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', '3', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', '4', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', '5', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (38, 'active_alarm_type', 'dictData.active_alarm_type.communication', 'CommunicationAlarm', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (39, 'active_alarm_type', 'dictData.active_alarm_type.equipment', 'EquipmentAlarm', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (40, 'active_alarm_type', 'dictData.active_alarm_type.processing', 'ProcessingFailure', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (41, 'active_alarm_type', 'dictData.active_alarm_type.environmental', 'EnvironmentalAlarm', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (42, 'active_alarm_type', 'dictData.active_alarm_type.qualityOfService', 'QualityOfServiceAlarm', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (43, 'active_clear_type', 'dictData.active_clear_type.notCleared', 'NotClear', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (44, 'active_clear_type', 'dictData.active_clear_type.auto', 'AutoClear', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (45, 'active_clear_type', 'dictData.active_clear_type.hand', 'ManualClear', 2, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (46, 'active_ack_state', 'dictData.active_ack_state.unconfirmed', 'NotAck', 0, '', 'processing', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (47, 'active_ack_state', 'dictData.active_ack_state.confirmed', 'Ack', 1, '', 'success', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (48, 'active_alarm_severity', 'dictData.active_alarm_severity.critical', 'Critical', 1, '', 'gold', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (49, 'active_alarm_severity', 'dictData.active_alarm_severity.major', 'Major', 2, '', 'cyan', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (50, 'active_alarm_severity', 'dictData.active_alarm_severity.minor', 'Minor', 3, '', 'blue ', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (51, 'active_alarm_severity', 'dictData.active_alarm_severity.warning', 'Warning', 4, '', 'yellow', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (52, 'active_alarm_severity', 'dictData.active_alarm_severity.event', 'Event', 5, '', 'purple', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (53, 'index_status', 'dictType.index_status.normal', 'normal', 1, '#91cc75', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (54, 'index_status', 'dictType.index_status.abnormal', 'abnormal', 2, '#ee6666', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (55, 'cdr_sip_code', 'dictData.cdr_sip_code.200', '200', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -98,9 +98,9 @@ REPLACE INTO `sys_dict_data` VALUES (65, 'ue_auth_code', 'dictData.ue_auth_code.
REPLACE INTO `sys_dict_data` VALUES (66, 'ue_auth_code', 'dictData.ue_auth_code.005', '005', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (67, 'ue_auth_code', 'dictData.ue_auth_code.006', '006', 6, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (68, 'ue_auth_code', 'dictData.ue_auth_code.007', '007', 7, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'auth-result', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'cm-state', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (69, 'ue_event_type', 'dictData.ue_event_type.auth', 'Auth', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (70, 'ue_event_type', 'dictData.ue_event_type.detach', 'Detach', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (71, 'ue_event_type', 'dictData.ue_event_type.state', 'CM', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (72, 'ue_event_cm_state', 'dictData.ue_event_cm_state.connected', '1', 1, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (73, 'ue_event_cm_state', 'dictData.ue_event_cm_state.idle', '2', 2, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (74, 'ue_event_cm_state', 'dictData.ue_event_cm_state.inactive', '3', 3, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
@@ -197,6 +197,8 @@ REPLACE INTO `sys_dict_data` VALUES (164, 'cdr_sip_code_cause', 'dictData.cdr_si
REPLACE INTO `sys_dict_data` VALUES (165, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.580', '580', 19, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (166, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.603', '603', 21, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (167, 'cdr_sip_code_cause', 'dictData.cdr_sip_code_cause.606', '606', 22, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (168, 'trace_interfaces', 'dictData.trace_interfaces.14', 'N14', 14, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
REPLACE INTO `sys_dict_data` VALUES (169, 'trace_interfaces', 'dictData.trace_interfaces.5', 'N5', 5, '', '', '1', '0', 'system', 1699348237468, 'system', 1699348237468, '');
SET FOREIGN_KEY_CHECKS = 1;

View File

@@ -556,7 +556,7 @@ REPLACE INTO `sys_i18n` VALUES (541, 'dictData.cdr_sip_code.404', '404 找不到
REPLACE INTO `sys_i18n` VALUES (542, 'dictData.cdr_sip_code.487', '487 请求已终止', '487 Request Terminated');
REPLACE INTO `sys_i18n` VALUES (543, 'dictData.cdr_sip_code.503', '503 服务不可用', '503 Service Unavailable');
REPLACE INTO `sys_i18n` VALUES (544, 'dictData.cdr_sip_code.504', '504 服务器超时', '504 Server Timeout');
REPLACE INTO `sys_i18n` VALUES (545, 'dictData.cdr_sip_code.603', '603 下降', '603 Decline');
REPLACE INTO `sys_i18n` VALUES (545, 'dictData.cdr_sip_code.603', '603 拒绝', '603 Decline');
REPLACE INTO `sys_i18n` VALUES (546, 'dictData.cdr_sip_code.606', '606 不可接受', '606 Not Acceptable');
REPLACE INTO `sys_i18n` VALUES (547, 'cache.name.token', '用户令牌', 'User Token');
REPLACE INTO `sys_i18n` VALUES (548, 'cache.name.sys_config', '参数管理', 'Parameters Management');
@@ -744,13 +744,13 @@ REPLACE INTO `sys_i18n` VALUES (729, 'dictData.cdr_sip_code_cause.200', '正常
REPLACE INTO `sys_i18n` VALUES (730, 'dictData.cdr_sip_code_cause.202', '申请已被接受处理,但尚未完成 ', 'The request has been accepted for processing, but it hasn it completed yet');
REPLACE INTO `sys_i18n` VALUES (731, 'dictData.cdr_sip_code_cause.302', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO `sys_i18n` VALUES (732, 'dictData.cdr_sip_code_cause.402', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO `sys_i18n` VALUES (733, 'dictData.cdr_sip_code_cause.403', '绝 MO 用户', 'MO User Rejected');
REPLACE INTO `sys_i18n` VALUES (734, 'dictData.cdr_sip_code_cause.404', 'MT 用户离线', 'MT User Offline');
REPLACE INTO `sys_i18n` VALUES (733, 'dictData.cdr_sip_code_cause.403', '接主叫用户', 'MO User Rejected');
REPLACE INTO `sys_i18n` VALUES (734, 'dictData.cdr_sip_code_cause.404', '被叫用户离线', 'MT User Offline');
REPLACE INTO `sys_i18n` VALUES (735, 'dictData.cdr_sip_code_cause.480', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO `sys_i18n` VALUES (736, 'dictData.cdr_sip_code_cause.481', '电话无法拨出', 'Call cannot be dialed');
REPLACE INTO `sys_i18n` VALUES (737, 'dictData.cdr_sip_code_cause.482', '闪断', 'Flashback');
REPLACE INTO `sys_i18n` VALUES (738, 'dictData.cdr_sip_code_cause.486', 'MT 用户忙', 'MT User Busy');
REPLACE INTO `sys_i18n` VALUES (739, 'dictData.cdr_sip_code_cause.487', 'MO 用户断线', 'MO User Disconnected');
REPLACE INTO `sys_i18n` VALUES (738, 'dictData.cdr_sip_code_cause.486', '被叫用户忙', 'MT User Busy');
REPLACE INTO `sys_i18n` VALUES (739, 'dictData.cdr_sip_code_cause.487', '主叫挂断', 'MO User Disconnected');
REPLACE INTO `sys_i18n` VALUES (740, 'dictData.cdr_sip_code_cause.408', '服务器等待响应的时间过长', 'The server waits too long for a response');
REPLACE INTO `sys_i18n` VALUES (741, 'dictData.cdr_sip_code_cause.488', '媒体详细信息与服务器支持的内容不匹配', 'Media details didnt match what the server supports');
REPLACE INTO `sys_i18n` VALUES (742, 'dictData.cdr_sip_code_cause.489', '因其他原因呼叫失败', 'Call failure for other reason');
@@ -758,7 +758,7 @@ REPLACE INTO `sys_i18n` VALUES (743, 'dictData.cdr_sip_code_cause.500', '服务
REPLACE INTO `sys_i18n` VALUES (744, 'dictData.cdr_sip_code_cause.503', '服务器超载或因维护而停机,无法处理呼叫', 'The server is overloaded or down for maintenance and can it process the call');
REPLACE INTO `sys_i18n` VALUES (745, 'dictData.cdr_sip_code_cause.504', '服务器尝试以您的名义与另一台服务器通信,但未及时收到回复,并超时了', 'The server tried to talk to another server on your behalf, didnt get a reply in time, and timed out');
REPLACE INTO `sys_i18n` VALUES (746, 'dictData.cdr_sip_code_cause.580', '因其他原因呼叫失败', 'Call failure for other reason');
REPLACE INTO `sys_i18n` VALUES (747, 'dictData.cdr_sip_code_cause.603', 'MT 明确拒绝通话', 'MT explicitly rejected the call');
REPLACE INTO `sys_i18n` VALUES (747, 'dictData.cdr_sip_code_cause.603', '被叫拒接', 'MT explicitly rejected the call');
REPLACE INTO `sys_i18n` VALUES (748, 'dictData.cdr_sip_code_cause.606', '呼叫已到达用户设备,但会话设置的某些部分不可接受', 'The call reached the users device, but some parts of the session setup weren it acceptable');
REPLACE INTO `sys_i18n` VALUES (749, 'dictType.cdr_sip_code_cause', 'IMS-Voice-SIP响应代码类别类型原因', 'IMS-Voice-SIP Response Code Category Type Cause');
REPLACE INTO `sys_i18n` VALUES (750, 'job.backup_export_log', '备份-日志数据定期导出', 'Backup-Periodic export of Log Data');
@@ -767,5 +767,28 @@ REPLACE INTO `sys_i18n` VALUES (752, 'job.ne_alarm_state_check_cmd', '网元告
REPLACE INTO `sys_i18n` VALUES (753, 'job.ne_alarm_state_check_cmd_remark', '检查网元的内存/CPU/磁盘检查健康状况,在出现过阈值时发出警报。\r\n\r\nAlarm type:\r\nCommunicationAlarm=1\r\nEquipmentAlarm=2\r\nProcessingFailure=3\r\nEnvironmentalAlarm=4\r\nQualityOfServiceAlarm=5\r\n\r\nSeverity:\r\nCritical=1\r\nMajor=2\r\nMinor=3\r\nWarning=4\r\n\r\nAddInfo: 告警补充信息\r\ncpuUseGt: CPU使用率大于 范围0~100*CPU核心数\r\nmemUseGt: 内存使用率大于, 范围0~100%\r\ndiskUseGt: 磁盘使用率大于, 范围0~100%', 'Checks the memory/CPU/disk check health of the network element and sends alerts when thresholds are crossed.\n\nAlarm type:\nCommunicationAlarm=1\nEquipmentAlarm=2\nProcessingFailure=3\nEnvironmentalAlarm=4\nQualityOfServiceAlarm=5\n\nSeverity:\nCritical=1\nMajor=2\nMinor=3\nWarning=4\r\n\r\nAddInfo: Additional information on alarms\r\ncpuUseGt: CPU utilization is greater than, range 0~100*number of CPU cores\r\nmemUseGt: Memory utilization greater than, range 0 to 100%\r\ndiskUseGt: Disk utilization greater than, range 0 to 100%');
REPLACE INTO `sys_i18n` VALUES (754, 'job.ne_alarm_state_check_license', '网元告警-License到期检查', 'NE Alarm-License Expire Check');
REPLACE INTO `sys_i18n` VALUES (755, 'job.ne_alarm_state_check_license_remark', '检查网元的License是否即将到期在出现过阈值时发出警报。\r\n\r\nAlarm type:\r\nCommunicationAlarm=1\r\nEquipmentAlarm=2\r\nProcessingFailure=3\r\nEnvironmentalAlarm=4\r\nQualityOfServiceAlarm=5\r\n\r\nSeverity:\r\nCritical=1\r\nMajor=2\r\nMinor=3\r\nWarning=4\r\n\r\nAddInfo: 告警补充信息\r\ndayLt: 天数小于默认30天', 'Checks if the network element is License is about to expire and sends an alert if a threshold is crossed.\n\nAlarm type:\nCommunicationAlarm=1\nEquipmentAlarm=2\nProcessingFailure=3\nEnvironmentalAlarm=4\nQualityOfServiceAlarm=5\n\nSeverity:\nCritical=1\nMajor=2\nMinor=3\nWarning=4\r\n\r\nAddInfo: Additional information on alarms\r\ndayLt: Days less than, default 30 days');
REPLACE INTO `sys_i18n` VALUES (756, 'dictData.trace_interfaces.14', 'N14', 'N14');
REPLACE INTO `sys_i18n` VALUES (757, 'dictData.trace_interfaces.5', 'N5', 'N5');
REPLACE INTO `sys_i18n` VALUES (758, "alarm.export.alarmCode", "告警编码", "Alarm Code");
REPLACE INTO `sys_i18n` VALUES (759, "config.sys.user.fristPasswdChangeRemark", "关闭改为false 开启改为true, 建议同时设置密码有效期", "Off to false On to true, it is recommended to set the password expiration date at the same time.");
REPLACE INTO `sys_i18n` VALUES (2000, 'menu.psap.agent', '座席', 'Agent');
REPLACE INTO `sys_i18n` VALUES (2001, 'menu.psap.agent.callings', '并行话务', 'Calling Information');
REPLACE INTO `sys_i18n` VALUES (2002, 'menu.psap.agent.callback', '回拨管理', 'Callback Management');
REPLACE INTO `sys_i18n` VALUES (2003, 'callback.status.NEW', '新建', 'New');
REPLACE INTO `sys_i18n` VALUES (2004, 'callback.status.IN_PROGRESS', '处理中', 'In Progress');
REPLACE INTO `sys_i18n` VALUES (2005, 'callback.status.NO_ANSWER_1', '未应答1', 'No Answer 1');
REPLACE INTO `sys_i18n` VALUES (2006, 'callback.status.NO_ANSWER_2', '未应答2', 'No Answer 2');
REPLACE INTO `sys_i18n` VALUES (2007, 'callback.status.TIMEOUT', '超时', 'Timeout');
REPLACE INTO `sys_i18n` VALUES (2008, 'callback.status.PENDING', '挂起', 'Pending');
REPLACE INTO `sys_i18n` VALUES (2009, 'callback.status.CLOSED', '关闭', 'Closed');
REPLACE INTO `sys_i18n` VALUES (2010, 'job.export.cdr.mf', '定期导出MF话单', 'Periodic Export of MF Call Records');
REPLACE INTO `sys_i18n` VALUES (2011, 'job.psap.ticket.monitor', '回拨工单监控', 'Callback Ticket Monitoring');
REPLACE INTO `sys_i18n` VALUES (2012, 'menu.omc.cdr', '话单', 'Call Records');
REPLACE INTO `sys_i18n` VALUES (2013, 'menu.omc.cdr.mf', '紧急呼叫话单', 'Emergency Call Records');
REPLACE INTO `sys_i18n` VALUES (2014, 'menu.omc.cdr.crbt', '彩铃话单', 'Color Ring Back Tone Records');
REPLACE INTO `sys_i18n` VALUES (2015, 'menu.omc.cdr.mms', '彩信话单', 'Multimedia Message Service Records');
REPLACE INTO `sys_i18n` VALUES (2016, 'menu.ue.cbc.cbe', '广播', 'Broadcast');
REPLACE INTO `sys_i18n` VALUES (2017, 'log.operate.title.cbcMessage', '广播事件', 'Broadcast Event');
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -52,9 +52,9 @@ REPLACE INTO `sys_job` VALUES (10, 'job.delete_ne_config_backup', 'SYSTEM', 'del
REPLACE INTO `sys_job` VALUES (11, 'job.delete_alarm_record', 'SYSTEM', 'delete_alarm_record', '{\"storeDays\":7}', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_alarm_record_remark');
REPLACE INTO `sys_job` VALUES (12, 'job.delete_kpi_record', 'SYSTEM', 'delete_kpi_record', '{\"storeDays\":7,\"neList\":[\"IMS\",\"AMF\",\"UDM\",\"UPF\",\"MME\",\"SMSC\",\"SMF\",\"MME\"]}', '0 20 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.delete_kpi_record_remark');
REPLACE INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
REPLACE INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
REPLACE INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"2\",\"origSeverity\":\"2\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
REPLACE INTO `sys_job` VALUES (20, 'job.ne_alarm_state_check', 'SYSTEM', 'ne_alarm_state_check', '{\"alarmTitle\":\"NE State Check Alarm\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"alarm cause: the system state of target NE has not been received\",\"specificProblemId\":\"AC10000\",\"addInfo\":\"\"}', '0/30 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_remark');
REPLACE INTO `sys_job` VALUES (21, 'job.ne_alarm_state_check_cmd', 'SYSTEM', 'ne_alarm_state_check_cmd', '{\"alarmTitle\":\"NE State Check Alarm CPU/Menory/Disk\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: CPU/Menory/Disk status received from target NE reaches the threshold\",\"specificProblemId\":\"AC10100\",\"addInfo\":\"\",\"cpuUseGt\":70,\"memUseGt\":70,\"diskUseGt\":70}', '0/15 * * * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_cmd_remark');
REPLACE INTO `sys_job` VALUES (22, 'job.ne_alarm_state_check_license', 'SYSTEM', 'ne_alarm_state_check_license', '{\"alarmTitle\":\"NE State Check Alarm License\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\":\"Major\",\"specificProblem\":\"Alarm Cause: License received from target NE is about to expire\",\"specificProblemId\":\"AC10200\",\"addInfo\":\"\",\"dayLt\":7}', '0 5 0 * * ?', '3', '0', '1', '0', 'system', 1698478134839, 'system', 1698478134839, 'job.ne_alarm_state_check_license_remark');
REPLACE INTO `sys_job` VALUES (30, 'job.backup_remove_file', 'SYSTEM', 'backup_remove_file', '[{\"backupPath\":\"/udm_data/auth\",\"storeDays\":30},{\"backupPath\":\"/udm_data/sub\",\"storeDays\":30},{\"backupPath\":\"/udm_data/voip\",\"storeDays\":30},{\"backupPath\":\"/udm_data/volte\",\"storeDays\":30},{\"backupPath\":\"/cdr/ims_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/smsc_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/smf_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/cdr/sgwc_cdr_event\",\"storeDays\":30},{\"backupPath\":\"/log/sys_log_operate\",\"storeDays\":30,\"storeNum\":7},{\"backupPath\":\"/log/sys_log_login\",\"storeDays\":30,\"storeNum\":7}]', '0 10 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'system', 1698478134839, 'job.backup_remove_file_remark');
REPLACE INTO `sys_job` VALUES (31, 'job.backup_export_udm', 'SYSTEM', 'backup_export_udm', '{\"dataType\":[\"auth\",\"sub\",\"voip\",\"volte\"],\"fileType\":\"txt\"}', '0 35 0 * * ?', '3', '0', '1', '1', 'system', 1698478134839, 'supervisor', 1745481169354, 'job.backup_export_udm_remark');

View File

@@ -171,8 +171,8 @@ REPLACE INTO `sys_menu` VALUES (2106, 'menu.perf.kpiKeyTarget', 2099, 12, 'kpiKe
REPLACE INTO `sys_menu` VALUES (2107, 'menu.mml', 0, 8, 'mmlManage', '', '1', '0', 'D', '1', '1', '', 'icon-zhizuoliucheng', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mmlRemark');
REPLACE INTO `sys_menu` VALUES (2108, 'menu.mml.ne', 2107, 1, 'neOperate', 'mmlManage/neOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:neOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.neRemark');
REPLACE INTO `sys_menu` VALUES (2109, 'menu.mml.udm', 2107, 2, 'udmOperate', 'mmlManage/udmOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:udmOperate:index', 'icon-gonggaodayi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.udmRemark');
REPLACE INTO `sys_menu` VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '1', '1', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.setRemark');
REPLACE INTO `sys_menu` VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '1', '1', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.omcRemark');
REPLACE INTO `sys_menu` VALUES (2110, 'menu.mml.set', 2107, 4, 'mmlSet', 'mmlManage/mmlSet/index', '1', '0', 'M', '0', '0', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.setRemark');
REPLACE INTO `sys_menu` VALUES (2111, 'menu.mml.omc', 2107, 3, 'omcOperate', 'mmlManage/omcOperate/index', '1', '1', 'M', '0', '0', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.mml.omcRemark');
REPLACE INTO `sys_menu` VALUES (2112, 'menu.dashboard.sgwcCDR', 2140, 12, 'sgwcCDR', 'dashboard/sgwcCDR/index', '1', '0', 'M', '1', '1', 'sgwc#cdr:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2113, 'menu.security', 0, 14, 'security', '', '1', '0', 'D', '1', '1', '', 'icon-suofang', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.securityRemark');
REPLACE INTO `sys_menu` VALUES (2114, 'menu.system.systemSet', 1, 60, 'setting', 'system/setting/index', '1', '1', 'M', '1', '1', 'system:setting:index', 'icon-piliang', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.system.systemSetRemark');
@@ -180,8 +180,8 @@ REPLACE INTO `sys_menu` VALUES (2115, 'menu.system.systemResource', 1, 6, 'monit
REPLACE INTO `sys_menu` VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:smsc:content', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2118, 'menu.dashboard.smfCDRByIMSI', 2140, 7, 'smfCDRByIMSI', 'dashboard/smfCDRByIMSI/index', '1', '0', 'M', '1', '1', 'smf#cdr:index', 'icon-gerenzhanghu', '0', 'system', 1728641403588,'system', 1728641403588, '');
-- REPLACE INTO `sys_menu` VALUES (2119, 'menu.ueUser.n3iwf', 5, 8, 'n3iwf', 'neUser/n3iwf/index', '1', '0', 'M', '0', '1', 'neUser:n3iwf:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
-- REPLACE INTO `sys_menu` VALUES (2120, 'menu.ueUser.pcf', 5, 9, 'pcf', 'neUser/pcf/index', '1', '0', 'M', '1', '1', 'neUser:pcf:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2119, 'Alarm Overview', 2129, 6, 'alarm-overview', 'faultManage/alarm-overview/index', '1', '1', 'M', '1', '1', 'faultManage:active-overview:index', 'icon-wenjian', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2120, 'Dashboard2', 2131, 8, 'dashboard2', 'dashboard/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview2:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2121, 'menu.system.user.editRole', 100, 8, '', '', '1', '1', 'B', '1', '1', 'system:user:editRole', '#', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2122, 'menu.system.setting.i18n', 2114, 1, '', '', '1', '1', 'B', '1', '1', 'system:setting:i18n', '#', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.system.setting.i18nRemark');
REPLACE INTO `sys_menu` VALUES (2123, 'menu.log.neFile', 2089, 9, 'neFile', 'ne/neFile/index', '1', '0', 'M', '1', '1', 'ne:neFile:index', 'icon-tubiaohuizhi', '0', 'system', 1728641403588,'system', 1728641403588, '');
@@ -199,6 +199,7 @@ REPLACE INTO `sys_menu` VALUES (2135, 'menu.ne.neHost', 4, 15, 'neHost', 'ne/neH
REPLACE INTO `sys_menu` VALUES (2136, 'menu.ne.neHostCommand', 4, 18, 'neHostCommand', 'ne/neHostCommand/index', '1', '0', 'M', '1', '0', 'ne:neHostCommand:list', 'icon-fuzhidaima', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2137, 'menu.ne.neInfo', 4, 10, 'neInfo', 'ne/neInfo/index', '1', '0', 'M', '1', '1', 'ne:neInfo:list', 'icon-fuzhidaima', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amfUE', 'dashboard/amfUE/index', '1', '0', 'M', '1', '1', 'amf#ue:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2139, 'Key Performance Dashboard', 2099, 8, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2140, 'menu.monitor.cdr', 2089, 10, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2141, 'menu.monitor.event', 2089, 20, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588,'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2142, 'menu.ne.neQuickSetup', 4, 40, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', '0', 'system', 1728641403588,'system', 1728641403588, '');
@@ -230,6 +231,8 @@ REPLACE INTO `sys_menu` VALUES (2167, 'menu.dashboard.overview.imsUeNum', 2132,
REPLACE INTO `sys_menu` VALUES (2168, 'menu.dashboard.overview.gnbBase', 2132, 6, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:gnbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (2169, 'menu.dashboard.overview.enbBase', 2132, 8, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:enbBase', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '');
REPLACE INTO `sys_menu` VALUES (20000, 'menu.ue.cbc.cbe', 5, 20, 'cbe', 'cbc/cbe/index', '1', '0', 'M', '1', '1', 'cbc#dashboard:cdr:index', 'icon-tubiaoku', '0', 'system', 1711352709786, 'system', 1747796007372, '');
SET FOREIGN_KEY_CHECKS = 1;
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -162,6 +162,7 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2166);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2167);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2168);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 2169);
INSERT IGNORE INTO `sys_role_menu` VALUES (2, 20000);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 1);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 4);
@@ -203,7 +204,6 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2097);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2107);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2108);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2109);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2111);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2113);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2114);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2115);
@@ -238,6 +238,7 @@ INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2166);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2167);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2168);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 2169);
INSERT IGNORE INTO `sys_role_menu` VALUES (3, 20000);
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 1);
INSERT IGNORE INTO `sys_role_menu` VALUES (4, 4);

View File

@@ -6,8 +6,8 @@ CREATE TABLE IF NOT EXISTS `ue_event` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '0' COMMENT '接收到时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,
@@ -22,8 +22,8 @@ ALTER TABLE `ue_event` DROP INDEX `idx_type_timestamp`;
ALTER TABLE `ue_event` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `id`;
ALTER TABLE `ue_event` MODIFY COLUMN `ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `ne_type`;
ALTER TABLE `ue_event` MODIFY COLUMN `rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '可能没有' AFTER `ne_name`;
ALTER TABLE `ue_event` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 48 COMMENT '接收到的timestamp秒级存储毫秒时间' AFTER `rm_uid`;
ALTER TABLE `ue_event` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型 auth-result detach cm-state' AFTER `timestamp`;
ALTER TABLE `ue_event` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 0 COMMENT '接收到时间' AFTER `rm_uid`;
ALTER TABLE `ue_event` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型' AFTER `timestamp`;
ALTER TABLE `ue_event` MODIFY COLUMN `event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'data JSON String' AFTER `event_type`;
ALTER TABLE `ue_event` MODIFY COLUMN `created_at` bigint(20) NULL DEFAULT 0 COMMENT '记录创建存储毫秒' AFTER `event_json`;
ALTER TABLE `ue_event` ADD INDEX `idx_type_t`(`event_type`, `timestamp`) USING BTREE;

View File

@@ -6,8 +6,8 @@ CREATE TABLE IF NOT EXISTS `ue_event_amf` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '0' COMMENT '接收到时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,
@@ -22,11 +22,15 @@ ALTER TABLE `ue_event_amf` DROP INDEX `idx_type_timestamp`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `id`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `ne_type`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '可能没有' AFTER `ne_name`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 48 COMMENT '接收到的timestamp秒级存储毫秒时间' AFTER `rm_uid`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型 auth-result detach cm-state' AFTER `timestamp`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 0 COMMENT '接收到时间' AFTER `rm_uid`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型' AFTER `timestamp`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'data JSON String' AFTER `event_type`;
ALTER TABLE `ue_event_amf` MODIFY COLUMN `created_at` bigint(20) NULL DEFAULT 0 COMMENT '记录创建存储毫秒' AFTER `event_json`;
ALTER TABLE `ue_event_amf` ADD INDEX `idx_amf_type_t`(`event_type`, `timestamp`) USING BTREE;
ALTER TABLE `ue_event_amf` COMMENT = 'UE事件_AMF终端接入';
-- 更新数据
UPDATE `ue_event_amf` SET `event_type` = 'Auth' WHERE `event_type` = 'auth-result';
UPDATE `ue_event_amf` SET `event_type` = 'Detach' WHERE `event_type` = 'detach';
UPDATE `ue_event_amf` SET `event_type` = 'CM' WHERE `event_type` = 'cm-state';
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -6,8 +6,8 @@ CREATE TABLE IF NOT EXISTS `ue_event_mme` (
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
`rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '可能没有',
`timestamp` bigint DEFAULT '48' COMMENT '接收到的timestamp秒级存储毫秒时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型 auth-result detach cm-state',
`timestamp` bigint DEFAULT '0' COMMENT '接收到时间',
`event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '事件类型',
`event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci COMMENT 'data JSON String',
`created_at` bigint DEFAULT '0' COMMENT '记录创建存储毫秒',
PRIMARY KEY (`id`) USING BTREE,
@@ -22,11 +22,15 @@ ALTER TABLE `ue_event_mme` DROP INDEX `idx_type_timestamp`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `id`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' AFTER `ne_type`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `rm_uid` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '可能没有' AFTER `ne_name`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 48 COMMENT '接收到的timestamp秒级存储毫秒时间' AFTER `rm_uid`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型 auth-result detach cm-state' AFTER `timestamp`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `timestamp` bigint(20) NULL DEFAULT 0 COMMENT '接收到时间' AFTER `rm_uid`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `event_type` varchar(16) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '事件类型' AFTER `timestamp`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `event_json` text CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT NULL COMMENT 'data JSON String' AFTER `event_type`;
ALTER TABLE `ue_event_mme` MODIFY COLUMN `created_at` bigint(20) NULL DEFAULT 0 COMMENT '记录创建存储毫秒' AFTER `event_json`;
ALTER TABLE `ue_event_mme` ADD INDEX `idx_mme_type_t`(`event_type`, `timestamp`) USING BTREE;
ALTER TABLE `ue_event_mme` COMMENT = 'UE事件_MME终端接入';
-- 更新数据
UPDATE `ue_event_mme` SET `event_type` = 'Auth' WHERE `event_type` = 'auth-result';
UPDATE `ue_event_mme` SET `event_type` = 'Detach' WHERE `event_type` = 'detach';
UPDATE `ue_event_mme` SET `event_type` = 'CM' WHERE `event_type` = 'cm-state';
-- Dump completed on 2025-02-14 15:26:56

View File

@@ -7,21 +7,15 @@ serverVersion: "std"
# interface encryption, default false
# serverCryptoApi: false
# route service configuration
# service listen ipv4/v6 and port, support multiple routines
# ip: 0.0.0.0 or ::0, support IPv4/v6
server:
- ipv4: 0.0.0.0
ipv6: ""
port: 33030 # http listen port
schema: http
- ipv4: 0.0.0.0
ipv6: ""
port: 33443 # https listen port
schema: https
certFile: /usr/local/etc/omc/certs/www.omc.net.crt
keyFile: /usr/local/etc/omc/certs/www.omc.net.key
routeServer:
- addr: "0.0.0.0:33030" # route http port
schema: "http"
- addr: "0.0.0.0:33443" # route https port
schema: "https"
certFile: "/usr/local/etc/omc/certs/www.omc.net.crt"
keyFile: "/usr/local/etc/omc/certs/www.omc.net.key"
# web service configuration
# if you are using nginx to take over, you can disable the
@@ -29,12 +23,12 @@ webServer:
enabled: true # web server enabled, default false
rootDir: /usr/local/etc/omc/web
listen:
- addr: 0.0.0.0:80
schema: http
- addr: 0.0.0.0:443
schema: https
certFile: /usr/local/etc/omc/certs/www.omc.net.crt
keyFile: /usr/local/etc/omc/certs/www.omc.net.key
- addr: "0.0.0.0:80" # web http port
schema: "http"
- addr: "0.0.0.0:443" # web https port
schema: "https"
certFile: "/usr/local/etc/omc/certs/www.omc.net.crt"
keyFile: "/usr/local/etc/omc/certs/www.omc.net.key"
# track configuration for NE signaling trace
# host fill in the specific IP address
@@ -61,7 +55,6 @@ database:
# default data source name
defaultDataSourceName: "std"
# redis cached data
redis:
dataSource:
@@ -73,135 +66,11 @@ redis:
# default data source name
defaultDataSourceName: "default"
# file: log file name
# level: /trace/debug/info/warn/error/fatal, default: debug
# duration: rotation time with xx hours, example: 1/12/24 hours
# count: rotation count of log, default is 30 rotation
# log
logger:
file: /var/log/omc_restagent.log
level: warn
duration: 24
count: 90
fileDir: "/var/log" # Log File Dir
fileName: "omc.log" # Log File Name
level: 2 # Log Level of 0:silent<1:info<2:warn<3:error
maxDay: 7 # Log retention Days
maxSize: 10 # Log File cutting by size
# sleep: time delay for after write buffer (millisecond)
# deadLine: timeout for io read and write (second)
mml:
sleep: 200
deadLine: 10
sizeRow: 600
sizeCol: 128
bufferSize: 65535
mmlHome: ./mmlhome
# NE config
ne:
user: omcuser
etcdir: /usr/local/etc
bindir: /usr/local/bin
omcdir: /usr/local/omc
scpdir: /tmp
licensedir: /usr/local/etc/{neType}/license
# backup etc list of IMS, does not contain spaces
etcListIMS: "{*.yaml,mmtel,vars.cfg}"
etcListDefault: "{*.yaml,*.conf,*.cfg}"
# true/false to overwrite config file when dpkg ne software
dpkgOverwrite: false
# dpkg timeout (second)
dpkgTimeout: 180
# chk2ne: true/false, if put OmcNeConfig parameters to NE
omc:
uriPrefix: "/omc/rest"
neType: OMC
neId: 001
rmUID: 4400HX101
neName: OMC
province: ""
vendor: ""
dn: ""
chk2ne: false
capability: 50
sn: "-"
expiryDate: "-"
checksign: false
rootDir: /usr/local/omc
binDir: /usr/local/omc/bin
backup: /usr/local/omc/backup
upload: /usr/local/omc/upload
frontUpload: /usr/local/omc/htdocs/front/upload
frontTraceDir: /usr/local/omc/htdocs/front/trace
software: /usr/local/omc/software
license: /usr/local/omc/license
gtpUri: gtp:192.168.2.119:32152
checkContentType: false
testMode: false
rbacMode: true
runDir: /usr/local/omc/run
cmdTimeout: 120
# Alarm module setting
# Forward interface:
# TLS Skip verify: true/false
# email/sms
# smProxy: sms(Short Message Service)/smsc(SMS Centre)
# dataCoding: 0:GSM7BIT, 1:ASCII, 2:BINARY8BIT1, 3:LATIN1,
# 4:BINARY8BIT2, 6:CYRILLIC, 7:HEBREW, 8:UCS2
alarm:
alarmEmailForward:
enable: true
emailList:
smtp: mail.smtp.com
port: 25
user: smtpext@smtp.com
password: "1000smtp@omc!"
tlsSkipVerify: true
alarmSMSForward:
enable: true
mobileList:
smscAddr: "192.168.13.114:2775"
systemID: "omc"
password: "omc123"
systemType: "UTRAN"
dataCoding: 0
serviceNumber: "OMC"
sms:
apiURL: http://smsc.xxx.com/
accessKeyID: xxxx
accessKeySecret: xxxx
signName: xxx SMSC
templateCode: 1000
smProxy: smsc
# User authorized information
# crypt: mysql/md5/bcrypt
# token: true/false to check accessToken
# expires for session, unit: second
# Support single/multiple session of user
#
auth:
crypt: bcrypt
token: true
expires: 1800
session: multiple
publicKey: /usr/local/omc/etc/certs/omc
privateKey: /usr/local/omc/etc/certs/omc
# Parameter for limit number
# rmuid_maxnum: the max number of rmUID, default: 50
# alarmid_maxnum: the max number of AlarmID, default: 50
# pmid_maxnum: the max number of pmID, default: 50
# subid_maxnum: the max number of subscription ID, default: 20
# uri_maxlen: the max length of uri, default: 8192
# rmuid_regexp: regexp pattern of rmUID
params:
rmuidmaxnum: 50
alarmidmaxnum: 50
pmidmaxnum: 50
subidmaxnum: 20
urimaxlen: 2100000
rmuidregexp: "[0-9]{4}[A-Z]{2}[A-Z]{2}[0-9A-Z]{1}[0-9A-Z]{3}[0-9A-Z]{1,16}"
testConfig:
enabled: false
file: /usr/local/omc/etc/testconfig.yaml

View File

@@ -1,87 +0,0 @@
# file: log file name
# level: /trace/debug/info/warn/error/fatal, default: debug
# duration: rotation time with xx hours, example: 1/12/24 hours
# count: rotation count of log, default is 30 rotation
logger:
file: /var/log/omc_sshsvc.log
level: warn
duration: 24
count: 30
# file: MML log file name
# duration: rotation time with xx hours, example: 1/12/24 hours
# count: rotation count of log, default is 30 rotation
# level: cmd/ret log cmd/log cmd & result
logmml:
file: /var/log/omc_mml.log
duration: 24
count: 30
level: cmd
# ssh service listen ipv4/v6 and port, support multiple routines
# ip: 0.0.0.0 or ::0, support IPv4/v6
# session: single/multiple session for one user
sshd:
listenAddr: 0.0.0.0
listenPort: 32222
privateKey: /root/.ssh/id_rsa
maxConnNum: 2
timeout: 1800
session: multiple
mmlHome: /usr/local/omc/mmlhome
userName: manager
password: pass123
authType: local
tagNE: omc
# authType: local/omc
telnetServer:
listenAddr: 0.0.0.0
listenPort: 32323
maxConnNum: 2
timeout: 1800
session: multiple
mmlHome: /usr/local/omc/mmlhome
userName: manager
password: pass123
authType: local
tagNE: omc
# authproto: NoAuth/MD5/SHA
# privProto: NoPriv/DES/AES/AES192/AES256
snmpServer:
listenAddr: '[::]'
listenPort: 34957
userName: manager
authPass: pass123
authproto: MD5
privPass: "3F2A1B4C5D6E7F8A9B0C1D2E3F4A5B6C7D8E9F0A1B2C3D4E"
privProto: DES
engineID: "8000000004323030313a6462383a3a39313636"
trapPort: 34958
trapListen: false
trapBool: false
trapTick: 60
timeOut: 5
trapTarget: ""
database:
type: mysql
user: root
password: 1000omc@kp!
host: 127.0.0.1
port: 33066
name: omc_db
connParam: charset=utf8mb4&collation=utf8mb4_general_ci&parseTime=True&interpolateParams=True
omc:
httpUri: http://127.0.0.1:33030
userCrypt: bcrypt
ne:
port: 4100
sleep: 200
user: admin
password: admin

View File

@@ -1,142 +0,0 @@
package aaaa
import (
"encoding/json"
"fmt"
"net/http"
"strings"
"time"
"github.com/go-resty/resty/v2"
"be.ems/lib/config"
"be.ems/lib/dborm"
"be.ems/lib/log"
"be.ems/lib/oauth"
"be.ems/lib/services"
)
var (
UriAAAASSO = config.DefaultUriPrefix + "/aaaa/{apiVersion}/security/sso" // for 4A external
CustomUriAAAASSO = config.UriPrefix + "/aaaa/{apiVersion}/security/sso" // for 4A external
)
var client = resty.New()
func init() {
/*
client.
SetTimeout(10 * time.Second).
SetRetryCount(1).
SetRetryWaitTime(1 * time.Second).
SetRetryMaxWaitTime(2 * time.Second).
SetRetryAfter(func(client *resty.Client, resp *resty.Response) (time.Duration, error) {
return 0, errors.New("quota exceeded")
})
*/
client.SetTimeout(3 * time.Second)
}
type AAAATicket struct {
Ticket string `json:"ticket"`
}
type SSOResult struct {
SSO struct {
Result string `json:"result"`
ResultMsg string `json:"result_msg"`
Ticket string `json:"ticket"`
ResultMsgcode string `json:"result_msgcode"`
Account []struct {
Accid string `json:"accid"`
} `json:"account"`
} `json:"sso"`
}
// Get system state from NF/NFs
func GetSSOFromAAAA(w http.ResponseWriter, r *http.Request) {
log.Info("GetSSOFromAAAA processing... ")
vars := r.URL.Query()
ticket := vars["ticket"]
if len(ticket) == 0 {
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Debug("ticket:", ticket)
log.Debugf("r.RemoteAddr:%s r.Host: %s", r.RemoteAddr, r.Host)
aaaaIp := r.RemoteAddr[:strings.Index(r.RemoteAddr, ":")]
omcIp := r.Host[:strings.Index(r.Host, ":")]
log.Debugf("aaaaIp=%s omcIp=%s", aaaaIp, omcIp)
requestURI2NF := fmt.Sprintf("http://%s:8080/qryUserByTicket", aaaaIp)
log.Debug("requestURI2NF:", requestURI2NF)
aaaaTicket := &AAAATicket{
Ticket: ticket[0],
}
body, err := json.Marshal(aaaaTicket)
if err != nil {
log.Error("Failed to json.Marshal:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
SetBody(body).
Post(requestURI2NF)
if err != nil {
log.Error("Failed to Post:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("response:", response)
switch response.StatusCode() {
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
ssoResult := new(SSOResult)
json.Unmarshal(response.Body(), ssoResult)
var accid string
if len(ssoResult.SSO.Account) != 0 {
accid = ssoResult.SSO.Account[0].Accid
}
log.Debug("accid:", accid)
exist, err := dborm.XormIsExistUser(accid)
if err != nil {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
token := oauth.GenRandToken("aaaa") // Generate new token to session ID
affected, err := dborm.XormInsertSession(accid, r.RemoteAddr, token,
config.GetExpiresFromConfig(), config.GetYamlConfig().Auth.Session)
if err != nil {
log.Error("Failed to XormInsertSession:", err)
if affected == -1 {
services.ResponseForbidden403MultiLoginNotAllowed(w)
} else {
services.ResponseBadRequest400IncorrectLogin(w)
}
return
}
if exist == true {
redirectUrl := fmt.Sprintf("http://%s:8888/home.html?user=%s&token=%s", omcIp, accid, token)
services.ResponseRedirect(w, redirectUrl, accid, token)
return
} else {
services.ResponseBadRequest400IncorrectLogin(w)
return
}
default:
services.ResponseForbidden403NotPermission(w)
return
}
}

View File

@@ -1,102 +0,0 @@
package cdr
import (
"encoding/json"
"fmt"
"net/http"
"strings"
"time"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
neService "be.ems/src/modules/network_element/service"
wsService "be.ems/src/modules/ws/service"
)
var (
UriCDREvent = config.DefaultUriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrEvent"
UriCDRFile = config.DefaultUriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrFile"
CustomUriCDREvent = config.UriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrEvent"
CustomUriCDRFile = config.UriPrefix + "/cdrManagement/v1/elementType/{elementTypeValue}/objectType/cdrFile"
)
// PostCDREventFrom 接收CDR数据请求
func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
log.Info("PostCDREventFrom processing... ")
neType := ctx.GetParam(r, "elementTypeValue")
var body struct {
NeType string `json:"neType" `
NeName string `json:"neName" `
RmUID string `json:"rmUID" `
Timestamp int `json:"timestamp" `
CDR map[string]any `json:"CDR" `
}
if err := ctx.ShouldBindJSON(r, &body); err != nil {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
neTypeLower := strings.ToLower(body.NeType)
if neType == "" || neType != neTypeLower {
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("inconsistent network element types"))
return
}
// 是否存在网元
neInfo := neService.NewNeInfo.FindByRmuid(body.RmUID)
if neInfo.NeType != body.NeType || neInfo.RmUID != body.RmUID {
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
return
}
cdrByte, err := json.Marshal(body.CDR)
if err != nil {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 执行插入表
type CDREvent struct {
ID int64 `json:"-" gorm:"column:id;primaryKey;autoIncrement"`
NeType string `json:"neType" gorm:"column:ne_type"`
NeName string `json:"neName" gorm:"column:ne_name"`
RmUid string `json:"rmUid" gorm:"column:rm_uid"`
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
CdrJson string `json:"cdrJSON" gorm:"column:cdr_json"` // data JSON String
CreatedAt int64 `json:"-" gorm:"column:created_at"` // 记录创建存储毫秒
}
data := CDREvent{
NeType: body.NeType,
NeName: body.NeName,
RmUid: body.RmUID,
Timestamp: int64(body.Timestamp) * 1000,
CdrJson: string(cdrByte),
CreatedAt: time.Now().UnixMilli(),
}
tableName := fmt.Sprintf("cdr_event_%s", neTypeLower)
if err := db.DB("").Table(tableName).Create(&data).Error; err != nil {
log.Error("Failed to insert "+tableName, err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 推送到ws订阅组
switch neInfo.NeType {
case "IMS":
if v, ok := body.CDR["recordType"]; ok && (v == "MOC" || v == "MTSM") {
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_IMS_CDR, neInfo.NeId), data)
}
case "SMF":
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SMF_CDR, neInfo.NeId), data)
case "SMSC":
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SMSC_CDR, neInfo.NeId), data)
case "SGWC":
wsService.NewWSSend.ByGroupID(fmt.Sprintf("%s_%s", wsService.GROUP_SGWC_CDR, neInfo.NeId), data)
}
services.ResponseStatusOK204NoContent(w)
}

View File

@@ -1,95 +0,0 @@
//go:build linux
// +build linux
package cm
import (
"bytes"
"context"
"os/exec"
"time"
"be.ems/lib/log"
)
func ExecCmd(command string) error {
log.Debug("Exec command:", command)
cmd := exec.Command("/bin/bash", "-c", command)
out, err := cmd.CombinedOutput()
log.Tracef("Exec output: %v", string(out))
if err != nil {
log.Error("exe cmd error: ", err)
return err
}
/*
if err := cmd.Start(); err != nil {
log.Error("Start error: ", err)
return err
}
if err := cmd.Wait(); err != nil {
log.Error("Wait error: ", err)
return err
}
*/
return nil
}
func ExecShell(command string) error {
in := bytes.NewBuffer(nil)
cmd := exec.Command("sh")
cmd.Stdin = in
in.WriteString(command)
in.WriteString("exit\n")
if err := cmd.Start(); err != nil {
return err
}
return nil
}
func ExecOsCmd(command, os string) error {
log.Debugf("Exec %s command:%s", os, command)
var cmd *exec.Cmd
switch os {
case "Linux":
cmd = exec.Command(command)
case "Windows":
cmd = exec.Command("cmd", "/C", command)
}
out, err := cmd.CombinedOutput()
log.Tracef("Exec output: %v", string(out))
if err != nil {
log.Error("exe cmd error: ", err)
return err
}
return nil
}
func StartSSHCmdWithTimeout(duration int, sshHost, cmdStr string) error {
timeout := time.Duration(duration) * time.Second
ctx, cancel := context.WithTimeout(context.Background(), timeout) // 设置超时
defer cancel()
cmd := exec.CommandContext(ctx, "ssh", sshHost, cmdStr)
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Start()
if err != nil {
return err
}
return nil
}
func RunSSHCmd(sshHost, cmdStr string) error {
cmd := exec.Command("ssh", sshHost, cmdStr)
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
return err
}
return nil
}

View File

@@ -1,83 +0,0 @@
//go:build windows
// +build windows
package cm
import (
"bytes"
"context"
"os/exec"
"time"
"be.ems/lib/log"
)
func ExecCmd(command string) error {
log.Debug("Exec command:", command)
cmd := exec.Command("cmd", "/C", command)
out, err := cmd.CombinedOutput()
log.Tracef("Exec output: %v", string(out))
if err != nil {
log.Error("exe cmd error: ", err)
return err
}
/*
if err := cmd.Start(); err != nil {
log.Error("Start error: ", err)
return err
}
if err := cmd.Wait(); err != nil {
log.Error("Wait error: ", err)
return err
}
*/
return nil
}
func ExecOsCmd(command, os string) error {
log.Debugf("Exec %s command:%s", os, command)
var cmd *exec.Cmd
switch os {
case "Linux":
cmd = exec.Command(command)
case "Windows":
cmd = exec.Command("cmd", "/C", command)
}
out, err := cmd.CombinedOutput()
log.Tracef("Exec output: %v", string(out))
if err != nil {
log.Error("exe cmd error: ", err)
return err
}
return nil
}
func StartSSHCmdWithTimeout(duration int, sshHost, cmdStr string) error {
timeout := time.Duration(duration) * time.Second
ctx, cancel := context.WithTimeout(context.Background(), timeout) // 设置超时
defer cancel()
cmd := exec.CommandContext(ctx, "ssh", sshHost, cmdStr)
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Start()
if err != nil {
return err
}
return nil
}
func RunSSHCmd(sshHost, cmdStr string) error {
cmd := exec.Command("ssh", sshHost, cmdStr)
var stdout, stderr bytes.Buffer
cmd.Stdout = &stdout
cmd.Stderr = &stderr
err := cmd.Run()
if err != nil {
return err
}
return nil
}

View File

@@ -1,991 +0,0 @@
package cm
import (
"encoding/json"
"fmt"
"io"
"net/http"
"os"
"os/exec"
"strings"
"time"
"be.ems/lib/config"
"be.ems/lib/dborm"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/constants"
"be.ems/src/framework/database/db"
neService "be.ems/src/modules/network_element/service"
"github.com/go-resty/resty/v2"
"github.com/gorilla/mux"
)
var (
// NE CM export/import
NeCmUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
// NE info
UriNeInfo = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
// NE backup file
UriNeCmFile = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
// service action uri, action: start/stop/restart
UriNeService = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
// nf instance action uri, action: start/stop/restart
UriNeInstance = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
CustomNeCmUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/cm"
CustomUriNeInfo = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/neInfo"
CustomUriNeCmFile = config.UriPrefix + "/systemManagement/{apiVersion}/{neType}/neBackup/{fileName}"
// service action uri, action: start/stop/restart
CustomUriNeService = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/service/{action}"
// nf instance action uri, action: start/stop/restart
CustomUriNeInstance = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/instance/{action}"
)
const (
NEStatusActive = 0
NEStatusOffline = 1
NEStatusStandby = 2
NEStatusMaintain = 3
)
var client = resty.New()
func init() {
/*
client.
SetTimeout(10 * time.Second).
SetRetryCount(1).
SetRetryWaitTime(1 * time.Second).
SetRetryMaxWaitTime(2 * time.Second).
SetRetryAfter(func(client *resty.Client, resp *resty.Response) (time.Duration, error) {
return 0, errors.New("quota exceeded")
})
*/
client.
SetTimeout(time.Duration(1 * time.Second))
}
func GetNeInfo(w http.ResponseWriter, r *http.Request) {
log.Debug("GetNeInfo processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
// no, _ := strconv.ParseInt(neId, 10, 64)
neInfo, err := dborm.XormGetNeInfo(neType, neId)
if err != nil {
log.Error("dborm.XormGetNeInfo is failed:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
var response services.DataResponse
response.Data = neInfo
services.ResponseWithJson(w, http.StatusOK, response)
}
type OmcNeConfig struct {
NeId string `json:"neId" xorm:"ne_id"` // 网元标识(内部),
RmUID string `json:"rmUID" xorm:"rm_uid"` // rmUID 网元唯一标识
NeName string `json:"neName" xorm:"ne_name"` // 网元名称(内部)/友好名称(北向资源/性能等使用)
PvFlag string `json:"pvFlag" xorm:"pv_flag"` // 网元虚实性标识 VNF/PNF: 虚拟/物理
Province string `json:"province" xorm:"province"` // 网元所在省份
VendorName string `json:"vendorName" xorm:"vendor_name"` // 厂商名称
// ManagedBy string `json:"managedBy" xorm:"managed_by"` // 管理ManagedElement的ManagementNode对象类的DN值
Dn string `json:"dn" xorm:"dn"` // 资源里边的ManagedBy性能的Dn网络唯一标识
}
func PostNeInfo(w http.ResponseWriter, r *http.Request) {
log.Debug("PostNeInfo processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeUpper := strings.ToUpper(neType)
syncFlag := services.GetUriParamString(r, "sync2ne", ",", false, false)
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("Failed to o.ReadAll:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
neInfo := new(dborm.NeInfo)
err = json.Unmarshal(body, neInfo)
if err != nil {
log.Error("Failed to json.Unmarshal:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
//neInfo.UpdateTime = time.Now().Format(time.DateTime)
neInfo.UpdateTime = time.Now()
log.Debug("NE info:", neInfo)
//if !config.GetYamlConfig().OMC.Chk2Ne {
if syncFlag == "false" || neTypeUpper == config.GetYamlConfig().OMC.NeType {
neInfo.Status = NEStatusMaintain
affected, err := dborm.XormInsertNeInfo(neInfo)
if err != nil {
log.Error("Failed to insert Ne info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 刷新缓存不存在结构体网元Id空字符串
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
return
} else {
hostUri := global.CombineHostUri(neInfo.Ip, neInfo.Port)
//hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port)
apiUri := fmt.Sprintf("%s/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig?ne_id=%s", config.DefaultUriPrefix, strings.ToLower(neInfo.NeType), neInfo.NeId)
requestURI2NF := fmt.Sprintf("%s%s", hostUri, apiUri)
log.Debug("requestURI2NF:", requestURI2NF)
omcNeConfig := &OmcNeConfig{
NeId: neInfo.NeId,
RmUID: neInfo.RmUID,
NeName: neInfo.NeName,
PvFlag: neInfo.PvFlag,
Province: neInfo.Province,
VendorName: neInfo.VendorName,
Dn: neInfo.Dn,
}
body, _ = json.Marshal(omcNeConfig)
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
SetBody(body).
Put(requestURI2NF)
if err != nil {
log.Error("Failed to Put:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Info("StatusCode: ", response.StatusCode())
respMsg := make(map[string]interface{})
switch response.StatusCode() {
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
neInfo.Status = NEStatusActive
affected, err := dborm.XormInsertNeInfo(neInfo)
if err != nil {
log.Error("Failed to dborm.XormInsertNeInfo:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else if affected <= 0 {
log.Infof("Not record affected to insert ne_info")
}
// 刷新缓存不存在结构体网元Id空字符串
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
services.ResponseStatusOK204NoContent(w)
return
default:
log.Info("response body:", string(response.Body()))
body := new(map[string]interface{})
_ = json.Unmarshal(response.Body(), &body)
respMsg["error"] = body
}
services.ResponseWithJson(w, response.StatusCode(), respMsg)
return
}
}
func PutNeInfo(w http.ResponseWriter, r *http.Request) {
log.Debug("PutNeInfo processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeLower := strings.ToLower(neType)
neTypeUpper := strings.ToUpper(neType)
syncFlag := services.GetUriParamString(r, "sync2ne", ",", false, false)
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("Failed to io.ReadAll:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
neInfo := new(dborm.NeInfo)
_ = json.Unmarshal(body, neInfo)
neInfo.NeType = strings.ToUpper(neType)
neInfo.UpdateTime = time.Now()
log.Debug("NE info:", neInfo)
//if !config.GetYamlConfig().OMC.Chk2Ne {
if syncFlag == "false" || neTypeUpper == config.GetYamlConfig().OMC.NeType {
neInfo.Status = NEStatusMaintain
affected, err := dborm.XormUpdateNeInfo(neInfo)
if err != nil {
log.Error("Failed to update Ne info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 刷新缓存不存在结构体网元Id空字符串
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
return
} else {
hostUri := global.CombineHostUri(neInfo.Ip, neInfo.Port)
//hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port)
apiUri := fmt.Sprintf("%s/systemManagement/v1/elementType/%s/objectType/config/omcNeConfig?ne_id=%s", config.DefaultUriPrefix, neTypeLower, neInfo.NeId)
requestURI2NF := fmt.Sprintf("%s%s", hostUri, apiUri)
log.Debug("requestURI2NF:", requestURI2NF)
omcNeConfig := &OmcNeConfig{
NeId: neInfo.NeId,
RmUID: neInfo.RmUID,
NeName: neInfo.NeName,
PvFlag: neInfo.PvFlag,
Province: neInfo.Province,
VendorName: neInfo.VendorName,
Dn: neInfo.Dn,
}
body, _ = json.Marshal(omcNeConfig)
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{constants.HEADER_KEY: r.Header.Get(constants.HEADER_KEY)}).
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
SetBody(body).
Put(requestURI2NF)
if err != nil {
log.Error("Failed to Put:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Info("StatusCode: ", response.StatusCode())
respMsg := make(map[string]interface{})
switch response.StatusCode() {
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
neInfo.Status = NEStatusActive
affected, err := dborm.XormUpdateNeInfo(neInfo)
if err != nil {
log.Error("Failed to dborm.XormUpdateNeInfo:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else if affected <= 0 {
log.Infof("Not record affected to insert ne_info")
}
// 刷新缓存不存在结构体网元Id空字符串
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
services.ResponseStatusOK204NoContent(w)
return
default:
log.Info("response body:", string(response.Body()))
body := new(map[string]interface{})
_ = json.Unmarshal(response.Body(), &body)
respMsg["error"] = body
}
services.ResponseWithJson(w, response.StatusCode(), respMsg)
return
}
}
func DeleteNeInfo(w http.ResponseWriter, r *http.Request) {
log.Debug("DeleteNeInfo processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
neInfo := new(dborm.NeInfo)
_ = json.Unmarshal(body, neInfo)
neInfo.NeType = strings.ToUpper(neType)
neInfo.NeId = services.GetUriParamString(r, "ne_id", ",", false, false)
neInfo, err = dborm.XormGetNeInfo(neInfo.NeType, neInfo.NeId)
if err != nil || neInfo == nil {
log.Error("Failed to delete Ne info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("NE info:", neInfo)
// if NE in active status, can't delete NE
if !IsActiveNF(neInfo) {
affected, err := dborm.XormDeleteNeInfo(neInfo)
if err != nil {
log.Error("Failed to delete Ne info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 刷新缓存不存在结构体网元Id空字符串
neService.NewNeInfo.RefreshByNeTypeAndNeID(neInfo.NeType, neInfo.NeId)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
return
}
err = global.ErrCMCannotDeleteActiveNE
log.Error(err)
services.ResponseInternalServerError500ProcessError(w, err)
}
func IsActiveNF(neInfo *dborm.NeInfo) bool {
log.Debug("IsActiveNF processing... ")
hostUri := fmt.Sprintf("http://%s:%v", neInfo.Ip, neInfo.Port)
requestURI := fmt.Sprintf(config.UriPrefix+"/systemManagement/v1/elementType/%s/objectType/systemState",
strings.ToLower(neInfo.NeType))
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
Get(hostUri + requestURI)
if err != nil {
log.Error("Failed to Get:", err)
return false
}
switch response.StatusCode() {
case http.StatusOK, http.StatusCreated, http.StatusNoContent, http.StatusAccepted:
return true
}
return false
}
func ExportCmFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("ExportCmFromNF processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeUpper := strings.ToUpper(neType)
neTypeLower := strings.ToLower(neType)
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
// neInfo := new(dborm.NeInfo)
neInfo, err := dborm.XormGetNeInfo(neType, neId)
if err != nil {
log.Errorf("Failed to get ne_info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("neInfo:", neInfo)
nePath := fmt.Sprintf("%s/etc/%s", config.GetYamlConfig().OMC.Backup, neTypeLower)
isExist, err := global.PathExists(nePath)
if err != nil {
log.Errorf("Failed to stat:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
if isExist {
err = os.RemoveAll(nePath)
if err != nil {
log.Errorf("Failed to RemoveAll:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
}
err = os.MkdirAll(nePath, os.ModePerm)
if err != nil {
log.Errorf("Failed to MkdirAll:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
var scpCmd string
ipType := global.ParseIPAddr(neInfo.Ip)
omcNetypeLower := strings.ToLower(config.GetYamlConfig().OMC.NeType)
etcListIMS := "{*.yaml,mmtel,vars.cfg}"
if config.GetYamlConfig().NE.EtcListIMS != "" {
etcListIMS = config.GetYamlConfig().NE.EtcListIMS
}
switch neTypeLower {
case omcNetypeLower:
if ipType == global.IsIPv4 {
scpCmd = fmt.Sprintf("scp -r %s@%s:%s/etc/*.yaml %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.OmcDir, config.GetYamlConfig().OMC.Backup, neTypeLower)
} else {
scpCmd = fmt.Sprintf("scp -r %s@[%s]:%s/etc/*.yaml %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.OmcDir, config.GetYamlConfig().OMC.Backup, neTypeLower)
}
case "ims":
if ipType == global.IsIPv4 {
scpCmd = fmt.Sprintf("scp -r %s@%s:%s/%s/%s %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir, neTypeLower,
etcListIMS, config.GetYamlConfig().OMC.Backup, neTypeLower)
} else {
scpCmd = fmt.Sprintf("scp -r %s@[%s]:%s/%s/%s %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir, neTypeLower,
etcListIMS, config.GetYamlConfig().OMC.Backup, neTypeLower)
}
case "mme":
if ipType == global.IsIPv4 {
scpCmd = fmt.Sprintf("scp -r %s@%s:%s/%s/*.conf %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir,
neTypeLower, config.GetYamlConfig().OMC.Backup, neTypeLower)
} else {
scpCmd = fmt.Sprintf("scp -r %s@[%s]:%s/%s/*.conf %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir,
neTypeLower, config.GetYamlConfig().OMC.Backup, neTypeLower)
}
default:
if ipType == global.IsIPv4 {
scpCmd = fmt.Sprintf("scp -r %s@%s:%s/%s/*.yaml %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir,
neTypeLower, config.GetYamlConfig().OMC.Backup, neTypeLower)
} else {
scpCmd = fmt.Sprintf("scp -r %s@[%s]:%s/%s/*.yaml %s/etc/%s", config.GetYamlConfig().NE.User,
neInfo.Ip, config.GetYamlConfig().NE.EtcDir,
neTypeLower, config.GetYamlConfig().OMC.Backup, neTypeLower)
}
}
zipFile := fmt.Sprintf("%s-%s-etc-%s.zip", neTypeLower, strings.ToLower(neInfo.NeId), time.Now().Format(global.DateData))
zipFilePath := config.GetYamlConfig().OMC.Backup + "/" + zipFile
zipCmd := fmt.Sprintf("cd %s/etc && zip -r %s %s/*", config.GetYamlConfig().OMC.Backup, zipFilePath, neTypeLower)
command := fmt.Sprintf("%s&&%s", scpCmd, zipCmd)
log.Debug("command:", command)
err = ExecCmd(command)
if err != nil {
log.Error("Faile to exec command:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
md5Sum, err := global.GetFileMD5Sum(zipFilePath)
if err != nil {
log.Error("Faile to md5sum:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
//log.Debug("md5Str:", md5Sum)
path := config.GetYamlConfig().OMC.Backup
neBackup := dborm.NeBackup{NeType: neTypeUpper, NeId: neId, FileName: zipFile, Path: path, Md5Sum: md5Sum}
_, err = dborm.XormInsertTableOne("ne_backup", neBackup)
if err != nil {
log.Error("Faile to XormInsertTableOne:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
//services.ResponseFileWithNameAndMD5(w, http.StatusOK, zipFile, path, md5Sum)
services.ResponseStatusOK204NoContent(w)
}
type ImportCMJson struct {
FileName string `json:"fileName"`
}
func ImportCmToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("ImportCmToNF processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeUpper := strings.ToUpper(neType)
neTypeLower := strings.ToLower(neType)
neId := services.GetUriParamString(r, "ne_id", ",", false, false)
var fileName, path string
if services.IsJsonContentType(r) {
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Debug("Body:", string(body))
importCMJson := new(ImportCMJson)
_ = json.Unmarshal(body, importCMJson)
fileName = importCMJson.FileName
path = config.GetYamlConfig().OMC.Backup
} else {
path = config.GetYamlConfig().OMC.Upload
fileNamePath, err := services.HandleUploadFile(r, path, "")
if err != nil {
log.Error("Faile to HandleUploadFile:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
fileName = fileNamePath
}
filePath := fmt.Sprintf("%s/%s", path, fileName)
// neInfo := new(dborm.NeInfo)
neInfo, err := dborm.XormGetNeInfo(neType, neId)
if err != nil {
log.Errorf("Failed to get ne_info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("neInfo:", neInfo)
md5Sum, err := global.GetFileMD5Sum(filePath)
if err != nil {
log.Error("Faile to GetFileMD5Sum:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
//neBackup := dborm.NeBackup{NeType: neType, NeId: neId, Md5Sum: md5Sum}
//log.Debug("neBackup:", neBackup)
where := fmt.Sprintf("ne_type='%s' and ne_id='%s' and md5_sum='%s'", neTypeUpper, neId, md5Sum)
has, err := dborm.XormExistTableOne("ne_backup", where)
if err != nil {
log.Error("Faile to XormInsertTableOne:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else if !has {
err = global.ErrCMInvalidBackupFile
log.Error(err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// nePath := fmt.Sprintf("%s/etc/%s", config.GetYamlConfig().OMC.Upload, neTypeLower)
// isExist, err := global.PathExists(nePath)
// if err != nil {
// log.Errorf("Failed to stat:", err)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
// if isExist {
// err = os.RemoveAll(nePath)
// if err != nil {
// log.Errorf("Failed to remove:", err)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
// }
// unzipCmd := fmt.Sprintf("unzip -o %s -d %s", filePath, config.GetYamlConfig().OMC.Upload)
// var scpCmd string
// ipType := global.ParseIPAddr(neInfo.Ip)
// if ipType == global.IsIPv4 {
// scpCmd = fmt.Sprintf("scp -r %s/etc/%s %s@%s:%s", config.GetYamlConfig().OMC.Upload,
// neTypeLower, config.GetYamlConfig().NE.User, neInfo.Ip, config.GetYamlConfig().NE.EtcDir)
// } else {
// scpCmd = fmt.Sprintf("scp -r %s/etc/%s %s@[%s]:%s", config.GetYamlConfig().OMC.Upload,
// neTypeLower, config.GetYamlConfig().NE.User, neInfo.Ip, config.GetYamlConfig().NE.EtcDir)
// }
// err = ExecCmd(fmt.Sprintf("%s && %s", unzipCmd, scpCmd))
// if err != nil {
// log.Errorf("Faile to scp NF: neType=%s, neId=%s, ip=%s", neType, neId, neInfo.Ip)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
// nePath := fmt.Sprintf("%s/etc/%s", config.GetYamlConfig().OMC.Upload, neTypeLower)
// isExist, err := global.PathExists(nePath)
// if err != nil {
// log.Errorf("Failed to stat:", err)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
// if isExist {
// err = os.RemoveAll(nePath)
// if err != nil {
// log.Errorf("Failed to remove:", err)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
// }
var scpZipCmd string
ipType := global.ParseIPAddr(neInfo.Ip)
if ipType == global.IsIPv4 {
scpZipCmd = fmt.Sprintf("scp -r %s %s@%s:%s", filePath,
config.GetYamlConfig().NE.User, neInfo.Ip, config.GetYamlConfig().NE.ScpDir)
} else {
scpZipCmd = fmt.Sprintf("scp -r %s %s@[%s]:%s", filePath,
config.GetYamlConfig().NE.User, neInfo.Ip, config.GetYamlConfig().NE.ScpDir)
}
err = ExecCmd(scpZipCmd)
if err != nil {
log.Errorf("Faile to scp NF: neType=%s, neId=%s, ip=%s", neType, neId, neInfo.Ip)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
neFilePath := config.GetYamlConfig().NE.ScpDir + "/" + fileName
var unzipCmd string
if neTypeLower != "omc" {
unzipCmd = fmt.Sprintf("sudo unzip -o %s -d %s", neFilePath, config.GetYamlConfig().NE.EtcDir)
} else {
unzipCmd = fmt.Sprintf("sudo unzip -oj %s -d %s/etc", neFilePath, config.GetYamlConfig().NE.OmcDir)
}
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
cmd := exec.Command("ssh", sshHost, unzipCmd)
out, err := cmd.CombinedOutput()
log.Tracef("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to execute command:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
services.ResponseStatusOK204NoContent(w)
}
func DownloadNeBackupFile(w http.ResponseWriter, r *http.Request) {
log.Debug("DownloadNeBackupFile processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["neType"]
if neType == "" {
log.Error("neType is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeUpper := strings.ToUpper(neType)
//neTypeLower := strings.ToLower(neType)
fileName := vars["fileName"]
if fileName == "" {
log.Error("fileName is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
sql := fmt.Sprintf("select * from ne_backup where ne_type='%s' and file_name='%s'", neTypeUpper, fileName)
neBackup, err := db.RawDB("", sql, nil)
if err != nil {
log.Error("Faile to XormGetDataBySQL:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else if len(neBackup) == 0 {
err := global.ErrCMNotFoundTargetBackupFile
log.Error(err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
path := fmt.Sprint(neBackup[0]["path"])
md5Sum := fmt.Sprint(neBackup[0]["md5_sum"])
services.ResponseFileWithNameAndMD5(w, http.StatusOK, fileName, path, md5Sum)
}
func DeleteNeBackupFile(w http.ResponseWriter, r *http.Request) {
log.Debug("DeleteNeBackupFile processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["neType"]
if neType == "" {
log.Error("neType is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neTypeUpper := strings.ToUpper(neType)
//neTypeLower := strings.ToLower(neType)
fileName := vars["fileName"]
if fileName == "" {
log.Error("fileName is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
sql := fmt.Sprintf("select * from ne_backup where ne_type='%s' and file_name='%s'", neTypeUpper, fileName)
neBackup, err := db.RawDB("", sql, nil)
if err != nil {
log.Error("Faile to XormGetDataBySQL:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else if len(neBackup) == 0 {
err := global.ErrCMNotFoundTargetBackupFile
log.Error(err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
where := fmt.Sprintf("ne_type='%s' and file_name='%s'", neTypeUpper, fileName)
affected, err := dborm.XormDeleteDataByWhere(where, "ne_backup")
if err != nil || affected == 0 {
log.Error("Faile to XormGetDataBySQL:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
path := neBackup[0]["path"]
filePath := fmt.Sprintf("%s/%s", path, fileName)
err = os.Remove(filePath)
if err != nil {
log.Error("Faile to Remove:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
services.ResponseStatusOK204NoContent(w)
}
func PostNeServiceAction(w http.ResponseWriter, r *http.Request) {
log.Debug("PostNeServiceAction processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
//neTypeUpper := strings.ToUpper(neType)
neTypeLower := strings.ToLower(neType)
action := vars["action"]
neId := services.GetUriParamString(r, "neId", ",", false, false)
// neInfo := new(dborm.NeInfo)
neInfo, err := dborm.XormGetNeInfo(neType, neId)
if err != nil {
log.Error("Failed to get ne_info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("neInfo:", neInfo)
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
switch neTypeLower {
case "omc":
// send 204 to fe firstly
services.ResponseStatusOK204NoContent(w)
//actionCmd := fmt.Sprintf("sudo %s/bin/omcsvc.sh %s", config.GetYamlConfig().NE.OmcDir, action)
actionCmd := fmt.Sprintf("sudo systemctl %s omc", action)
go RunSSHCmd(sshHost, actionCmd)
return
// cmd := exec.Command("ssh", sshHost, actionCmd)
// out, err := cmd.CombinedOutput()
// log.Debugf("Exec output: %v", string(out))
// if err != nil {
// log.Errorf("Faile to execute ssh %s omc:%v", action, err)
// services.ResponseInternalServerError500ProcessError(w, err)
// return
// }
case "ims":
switch action {
case "start", "stop":
actionCmd := fmt.Sprintf("sudo ims-%s", action)
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Errorf("Faile to execute %s command:%v", actionCmd, err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
case "restart":
actionCmd := "sudo ims-stop && sudo ims-start"
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Errorf("Faile to execute %s command:%v", actionCmd, err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
default:
err = global.ErrCMUnknownServiceAction
log.Errorf("%v, action:%s", err, action)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
default:
actionCmd := fmt.Sprintf("sudo systemctl %s %s.service", action, neTypeLower)
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to execute command:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
}
services.ResponseStatusOK204NoContent(w)
}
func PostNeInstanceAction(w http.ResponseWriter, r *http.Request) {
log.Debug("PostNeInstanceAction processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
//neTypeUpper := strings.ToUpper(neType)
//neTypeLower := strings.ToLower(neType)
action := vars["action"]
neId := services.GetUriParamString(r, "neId", ",", false, false)
// neInfo := new(dborm.NeInfo)
neInfo, err := dborm.XormGetNeInfo(neType, neId)
if err != nil {
log.Errorf("Failed to get ne_info:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
log.Debug("neInfo:", neInfo)
sshHost := fmt.Sprintf("%s@%s", config.GetYamlConfig().NE.User, neInfo.Ip)
switch action {
case "poweron":
actionCmd := "sudo poweron"
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to execute ssh %s omc:", action, err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
case "poweroff":
actionCmd := "sudo poweroff"
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to execute ssh sudo poweroff:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
case "reboot":
actionCmd := "sudo reboot"
cmd := exec.Command("ssh", sshHost, actionCmd)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to execute ssh sudo reboot:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
default:
err = global.ErrCMUnknownInstanceAction
log.Errorf("%v, action:%s", err, action)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
services.ResponseStatusOK204NoContent(w)
}

View File

@@ -1,46 +0,0 @@
package cm_omc
import (
"fmt"
"net/http"
"be.ems/lib/services"
"github.com/gin-gonic/gin"
)
func (o *ConfigOMC) Get(c *gin.Context) {
paramName := c.Param("paramName")
results, err := o.Query(paramName)
if err != nil {
c.JSON(http.StatusInternalServerError, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.DataResp(results))
}
func (o *ConfigOMC) Post(c *gin.Context) {
err := fmt.Errorf("method not allowed")
c.JSON(http.StatusMethodNotAllowed, services.ErrResp(err.Error()))
}
func (o *ConfigOMC) Put(c *gin.Context) {
paramName := c.Param("paramName")
var paramData map[string]any
if err := c.ShouldBindJSON(&paramData); err != nil {
c.JSON(http.StatusBadRequest, services.ErrResp(err.Error()))
return
}
result, err := o.Modify(paramName, paramData)
if err != nil {
c.JSON(http.StatusInternalServerError, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.DataResp(result))
}
func (o *ConfigOMC) Delete(c *gin.Context) {
err := fmt.Errorf("method not allowed")
c.JSON(http.StatusMethodNotAllowed, services.ErrResp(err.Error()))
}

View File

@@ -1,69 +0,0 @@
package cm_omc
import (
"fmt"
"be.ems/lib/config"
)
const (
PASSWORD_MASK = "********"
)
func (o *ConfigOMC) Query(paramName string) (any, error) {
var results []any
switch paramName {
case "alarmEmailForward":
result := config.GetYamlConfig().Alarm.EmailForward
result.Password = PASSWORD_MASK
results = append(results, result)
case "alarmSMSForward":
result := config.GetYamlConfig().Alarm.SMSCForward
result.Password = PASSWORD_MASK
results = append(results, result)
default:
return nil, fmt.Errorf("invalid source parameter")
}
return results, nil
}
func (o *ConfigOMC) Add() {
}
func (o *ConfigOMC) Modify(paramName string, paramData map[string]any) (any, error) {
var results []any
switch paramName {
case "alarmEmailForward":
param := &(config.GetYamlConfig().Alarm.EmailForward)
config.UpdateStructFromMap(param, paramData)
result := *param
results = append(results, result)
err := config.WriteOrignalConfig(config.YamlConfigInfo.FilePath, paramName, paramData)
if err != nil {
fmt.Println("failed to write config yaml file:", err)
return results, err
}
case "alarmSMSForward":
param := &(config.GetYamlConfig().Alarm.SMSCForward)
config.UpdateStructFromMap(param, paramData)
result := *param
results = append(results, result)
err := config.WriteOrignalConfig(config.YamlConfigInfo.FilePath, paramName, paramData)
if err != nil {
fmt.Println("failed to write config yaml file:", err)
return results, err
}
default:
return nil, fmt.Errorf("invalid source parameter")
}
return results, nil
}
func (o *ConfigOMC) Remove() {
}

View File

@@ -1,26 +0,0 @@
package cm_omc
type ConfigOMC struct{}
type SystemConfig struct {
ForwardFlag bool `json:"forwardFlag"`
}
type AlarmEmailForward struct {
Enable bool `json:"enable"`
EmailList string `json:"emailList"`
SMTP string `json:"smtp"`
Port uint16 `json:"port"`
User string `json:"user"`
Password string `json:"password"`
TLSSkipVerify bool `json:"tlsSkipVerify"`
}
type AlarmSMSForward struct {
Enable bool `json:"enable"`
MobileList string `json:"mobileList"`
SMSCAddr string `json:"smscAddr"`
SystemID string `json:"systemID"`
Password string `json:"password"`
SystemType string `json:"systemType"`
}

View File

@@ -1,30 +0,0 @@
package cm_omc
import (
"be.ems/src/framework/middleware"
"github.com/gin-gonic/gin"
)
// Register Routes for file_export
func Register(r *gin.RouterGroup) {
cmOMC := r.Group("/omc")
{
var o *ConfigOMC
cmOMC.GET("/config/:paramName",
middleware.AuthorizeUser(nil),
o.Get,
)
cmOMC.POST("/config/:paramName",
middleware.AuthorizeUser(nil),
o.Post,
)
cmOMC.PUT("/config/:paramName",
middleware.AuthorizeUser(nil),
o.Put,
)
cmOMC.DELETE("/config/:paramName",
middleware.AuthorizeUser(nil),
o.Delete,
)
}
}

View File

@@ -1,208 +0,0 @@
package cm
import (
"strings"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"encoding/json"
"fmt"
"io"
"net/http"
neService "be.ems/src/modules/network_element/service"
"github.com/go-resty/resty/v2"
"github.com/gorilla/mux"
)
var (
// parameter config management
ParamConfigUri = config.DefaultUriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
CustomParamConfigUri = config.UriPrefix + "/systemManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/config/{paraName}"
)
func GetParamConfigFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("GetParamConfigFromNF processing... ")
neId := ctx.GetQuery(r, "ne_id")
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" || neId == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
var response services.DataResponse
if neInfo.NeId == neId && neInfo.NeId != "" {
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
log.Debug("requestURI2NF:", requestURI2NF)
resp, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
Get(requestURI2NF)
if err != nil {
log.Error("Failed to Get from NF:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
} else {
_ = json.Unmarshal(resp.Body(), &response)
}
log.Debug("response:", response)
}
services.ResponseWithJson(w, http.StatusOK, response)
}
func PostParamConfigToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("PostParamConfigToNF processing... ")
neId := ctx.GetQuery(r, "ne_id")
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" || neId == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
if neInfo.NeId != neId || neInfo.NeId == "" {
log.Error("neId is empty")
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
log.Debug("requestURI2NF: POST ", requestURI2NF)
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
client := resty.New()
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
SetBody(body).
Post(requestURI2NF)
if err != nil {
log.Error("Failed to POST to NF:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
services.ResponseWithJson(w, http.StatusNoContent, response)
}
func PutParamConfigToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("PutParamConfigToNF processing... ")
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// OMC配置接口 /api/rest/systemManagement/v1/elementType/omc/objectType/config/omcNeConfig
if v, ok := vars["paraName"]; ok && v == "omcNeConfig" && strings.ToLower(neType) == "omc" {
PutOMCNeConfig(w, r)
return
}
neId := ctx.GetQuery(r, "ne_id")
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
if neInfo.NeId != neId || neInfo.NeId == "" {
log.Error("neId is empty")
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
log.Debug("requestURI2NF: PUT ", requestURI2NF)
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
client := resty.New()
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
SetBody(body).
Put(requestURI2NF)
if err != nil {
log.Error("Failed to Put to NF:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
services.ResponseWithJson(w, http.StatusNoContent, response)
}
// PutOMCNeConfig 网元OMC配置
//
// 目前没配置返回204
func PutOMCNeConfig(w http.ResponseWriter, r *http.Request) {
services.ResponseStatusOK204NoContent(w)
}
func DeleteParamConfigToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("DeleteParamConfigToNF processing... ")
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
if neType == "" {
log.Error("elementTypeValue is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
neId := ctx.GetQuery(r, "ne_id")
neInfo := neService.NewNeInfo.FindByNeTypeAndNeID(neType, neId)
if neInfo.NeId != neId || neInfo.NeId == "" {
log.Error("neId is empty")
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.IP, neInfo.Port, r.RequestURI)
log.Debug("requestURI2NF: DELETE ", requestURI2NF)
client := resty.New()
response, err := client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
Delete(requestURI2NF)
if err != nil {
log.Error("Failed to delete parameter:", err)
services.ResponseInternalServerError500NFConnectRefused(w)
return
}
services.ResponseWithJson(w, http.StatusNoContent, response)
}

View File

@@ -1,17 +0,0 @@
package cm
import (
cm_omc "be.ems/features/cm/omc"
"be.ems/lib/log"
"github.com/gin-gonic/gin"
)
func InitSubServiceRoute(r *gin.Engine) {
log.Info("======init PM group gin.Engine")
cmGroup := r.Group("/cm")
// register sub modules routes
cm_omc.Register(cmGroup)
// return featuresGroup
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,859 +0,0 @@
package dbrest
import (
"encoding/json"
"fmt"
"io"
"net/http"
"regexp"
"strings"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/dborm"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"github.com/gorilla/mux"
)
type XormResponse struct {
Data interface{} `json:"data"`
}
type XormInsertResponse struct {
Data interface{} `json:"data"`
}
var (
// database management rest pattern discard
XormGetDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}"
XormSelectDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/select/{elementTypeValue}/{objectTypeValue}"
XormInsertDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/insert/{elementTypeValue}/{objectTypeValue}"
XormUpdateDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/update/{elementTypeValue}/{objectTypeValue}"
XormDeleteDataUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/delete/{elementTypeValue}/{objectTypeValue}"
CustomXormGetDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}"
CustomXormSelectDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/select/{elementTypeValue}/{objectTypeValue}"
CustomXormInsertDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/insert/{elementTypeValue}/{objectTypeValue}"
CustomXormUpdateDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/update/{elementTypeValue}/{objectTypeValue}"
CustomXormDeleteDataUri = config.UriPrefix + "/databaseManagement/{apiVersion}/delete/{elementTypeValue}/{objectTypeValue}"
XormCommonUri = config.DefaultUriPrefix + "/databaseManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for internal
XormDatabaseUri = config.DefaultUriPrefix + "/database/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for crontask
XormDataRestUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}"
XormExtDataUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for external
XormDataSQLUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for external
CustomXormCommonUri = config.UriPrefix + "/databaseManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for internal
CustomXormExtDataUri = config.UriPrefix + "/dataManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for external
CustomXormDataSQLUri = config.UriPrefix + "/dataManagement/{apiVersion}/{elementTypeValue}/{objectTypeValue}" // for external
// 查询数据库连接情况
UriDbConnection = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/dbConnection"
CustomUriDbConnection = config.UriPrefix + "/dataManagement/{apiVersion}/dbConnection" // for external
// 终结非法的数据库连接
UriDbStop = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/dbStop"
CustomUriDbStop = config.UriPrefix + "/dataManagement/{apiVersion}/dbStop" // for external
)
func GetUriSQLArray(r *http.Request) []string {
var sa []string
vars := r.URL.Query()
// 默认SQL
if s, ok := vars["SQL"]; ok {
for _, r := range s {
if r != "" {
sa = append(sa, r)
}
}
}
// 查询总数
if totalSQL, ok := vars["totalSQL"]; ok {
if totalSQL[0] != "" {
sa = append(sa, totalSQL[0])
}
}
// 查询列表
if rowsSQL, ok := vars["rowsSQL"]; ok {
if rowsSQL[0] != "" {
sa = append(sa, rowsSQL[0])
}
}
if len(sa) == 0 {
log.Info("SQL is not exist")
return nil
}
log.Debug("SQL array:", sa)
return sa
}
// Get table name from SQL
func GetTableNameFromSQL(s string) string {
ls := strings.ToLower(s)
i1 := strings.Index(ls, "from")
i2 := strings.Index(ls, "where")
var ts string
if i1 > 0 {
if i2 > 0 && i2 > i1 {
ts = ls[i1+4 : i2]
}
if i2 < 0 {
ts = ls[i1+4:]
}
}
tn := strings.Trim(ts, " ")
log.Debug("i1:", i1, "i2:", i2, "tn:", tn)
return tn
}
func GetTableName(sql string) string {
ls := strings.ToLower(sql)
re := regexp.MustCompile(`from\s+(\S+)`)
matches := re.FindStringSubmatch(ls)
if len(matches) < 2 {
return ""
}
return matches[1]
}
func IsQuerySQL(s string) bool {
ts := strings.Trim(strings.ToLower(s), " ")
return strings.Index(ts, "select") == 0
}
// xorm Get data from database
func ExtDatabaseExecSQL(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseExecSQL processing... ")
// var err error
// _, err = services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
//vars := mux.Vars(r)
//tblName := vars["objectTypeValue"]
var sql = GetUriSQLArray(r)
// select as must, todo ...
ls := services.ExtGetUriPageLimitString(r)
// data := make([]map[string]interface{}, 0)
// xormResponse := make([]map[string]interface{}, len(sql))
var xormResponse XormResponse
data := make([]map[string]interface{}, 0)
for i, s := range sql {
log.Tracef("SQL[%d]: %s", i, sql[i])
//rows := make([]map[string]interface{}, 0)
mapRows := make(map[string]interface{})
if s != "" {
// err = XEngine.SQL(s).Find(&rows)
// if IsQuerySQL(s) == false {
// services.ResponseNotAcceptable406QuerySQLError(w)
// return
// }
querySQL := s
if i == (len(sql) - 1) {
querySQL = querySQL + " " + ls
}
log.Debug("querySQL:", querySQL)
rows, err := db.RawDB("", querySQL, nil)
if err != nil {
log.Error("SQL failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
tableName := GetTableName(s)
log.Debugf("s:%s tableName:%s", s, tableName)
mapRows[tableName] = rows
data = append(data, mapRows)
log.Trace("data:", data)
}
i++
}
xormResponse.Data = data
services.ResponseWithJson(w, http.StatusOK, xormResponse)
}
// xorm Get data from database
func ExtDatabaseGetData(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseGetData processing... ")
var sql []string
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
pack := "dbrest"
vars := mux.Vars(r)
module := ""
dbname := vars["elementTypeValue"]
tbname := vars["objectTypeValue"]
log.Debugf("method:%s, module:%s, dbname:%s, tbname:%s, pack:%s", r.Method, module, dbname, tbname, pack)
// exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname, pack)
// if err != nil {
// log.Error("Failed to get permission:", err)
// services.ResponseForbidden403NotPermission(w)
// return
// }
// if !exist {
// log.Error("Not permission!")
// services.ResponseForbidden403NotPermission(w)
// return
// }
sql = GetUriSQLArray(r)
// select as must, todo ...
if sql == nil {
wc := services.GetUriLocString(r)
if wc == "" {
sql = append(sql, fmt.Sprintf("select * from %s", tbname))
} else {
sql = append(sql, fmt.Sprintf("select * from %s where %s", tbname, wc))
}
}
ls := services.ExtGetUriPageLimitString(r)
// data := make([]map[string]interface{}, 0)
// xormResponse := make([]map[string]interface{}, len(sql))
var xormResponse XormResponse
data := make([]map[string]interface{}, 0)
for i, s := range sql {
log.Tracef("SQL[%d]: %s", i, sql[i])
mapRows := make(map[string]interface{})
if s != "" {
// err = XEngine.SQL(s).Find(&rows)
if !IsQuerySQL(s) {
services.ResponseNotAcceptable406QuerySQLError(w)
return
}
querySQL := s
if i == (len(sql) - 1) {
querySQL = querySQL + " " + ls
}
log.Debug("querySQL:", querySQL)
rows, err := db.RawDB("", querySQL, nil)
if err != nil {
log.Error("SQL failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
tableName := GetTableName(s)
log.Debugf("s:%s tableName:%s", s, tableName)
mapRows[tableName] = rows
data = append(data, mapRows)
log.Trace("data:", data)
}
i++
}
xormResponse.Data = data
services.ResponseWithJson(w, http.StatusOK, xormResponse)
}
func ExtDatabaseInsertData(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseInsertData processing... ")
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Error("io.ReadAll failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
vars := mux.Vars(r)
module := ""
dbname := vars["elementTypeValue"]
tbname := vars["objectTypeValue"]
pack := "dbrest"
log.Debugf("method:%s, module:%s, dbname:%s, tbname:%s, pack:%s", r.Method, module, dbname, tbname, pack)
// exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname, pack)
// if err != nil {
// log.Error("Failed to get permission:", err)
// services.ResponseForbidden403NotPermission(w)
// return
// }
// if !exist {
// log.Error("permission deny!")
// services.ResponseForbidden403NotPermission(w)
// return
// }
log.Debug("Request body:", string(body), "dataObject:", tbname)
insertData := make(map[string]interface{})
_ = json.Unmarshal(body, &insertData)
tn, sql := dborm.ConstructInsertSQL(tbname, insertData)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Insert failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
// affected, err := InsertDataWithJson(insertData)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
// xormResponse.Data = mapRow
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func ExtDatabaseUpdateData(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseUpdateData processing... ")
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
module := ""
dbname := vars["elementTypeValue"]
tbname := vars["objectTypeValue"]
pack := "dbrest"
log.Debugf("method:%s, module:%s, dbname:%s, tbname:%s, pack:%s", r.Method, module, dbname, tbname, pack)
// exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname, pack)
// if err != nil {
// log.Error("Failed to get permission:", err)
// services.ResponseForbidden403NotPermission(w)
// return
// }
// if !exist {
// log.Error("Not permission!")
// services.ResponseForbidden403NotPermission(w)
// return
// }
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
wc := services.GetUriLocString(r)
log.Debug("Request body:", string(body), "Tablename:", tbname, "wc:", wc)
updateData := make(map[string]interface{})
_ = json.Unmarshal(body, &updateData)
tn, sql := dborm.ConstructUpdateSQL(tbname, updateData, wc)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Update failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func ExtDatabaseDeleteData(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseDeleteData processing... ")
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
module := ""
dbname := vars["elementTypeValue"]
tbname := vars["objectTypeValue"]
pack := "dbreset"
log.Debugf("method:%s, module:%, dbname:%s, tbname:%s pack:%s", r.Method, module, dbname, tbname, pack)
// exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname, pack)
// if err != nil {
// log.Error("Failed to get permission:", err)
// services.ResponseForbidden403NotPermission(w)
// return
// }
// if !exist {
// log.Error("Not permission!")
// services.ResponseForbidden403NotPermission(w)
// return
// }
wc := services.GetUriLocString(r)
log.Debug("Table name:", tbname, "wc:", wc)
sql := dborm.ConstructDeleteSQL(tbname, wc)
affected, err := db.ExecDB("", sql, nil)
if err != nil {
log.Error("Update failed, err:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
// xorm Get data from database
func DatabaseGetData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseGetData processing... ")
var sql []string
// _, err = services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
sql = GetUriSQLArray(r)
// select as must, todo ...
if sql == nil {
wc := services.GetUriWhereString(r)
if wc == "" {
sql = append(sql, fmt.Sprintf("select * from %s", tblName))
} else {
sql = append(sql, fmt.Sprintf("select * from %s where %s", tblName, wc))
}
}
ls := services.GetUriPageLimitString(r)
// data := make([]map[string]interface{}, 0)
// xormResponse := make([]map[string]interface{}, len(sql))
var xormResponse XormResponse
data := make([]map[string]interface{}, 0)
for i, s := range sql {
log.Tracef("SQL[%d]: %s", i, sql[i])
mapRows := make(map[string]interface{})
if s != "" {
// err = XEngine.SQL(s).Find(&rows)
if !IsQuerySQL(s) {
services.ResponseNotAcceptable406QuerySQLError(w)
return
}
querySQL := s
if i == (len(sql) - 1) {
querySQL = querySQL + " " + ls
}
log.Debug("querySQL:", querySQL)
rows, err := db.RawDB("", querySQL, nil)
if err != nil {
log.Error("QueryInterface failed:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
tableName := GetTableName(s)
log.Debugf("s:%s tableName:%s", s, tableName)
mapRows[tableName] = rows
data = append(data, mapRows)
log.Trace("data:", data)
}
i++
}
xormResponse.Data = data
services.ResponseWithJson(w, http.StatusOK, xormResponse)
}
func DatabaseInsertData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseInsertData processing... ")
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Error("io.ReadAll failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
vars := mux.Vars(r)
tableName := vars["objectTypeValue"]
log.Debug("Request body:", string(body), "tableName:", tableName)
insertData := make(map[string]interface{})
_ = json.Unmarshal(body, &insertData)
// 操作日志的IP
if tableName == "operation_log" || tableName == "security_log" {
ipAddr := strings.Split(r.RemoteAddr, ":")[0]
s := insertData["data"].([]any)
a := s[0].(map[string]any)
a["op_ip"] = ipAddr
} else if tableName == "mml_log" {
ipAddr := strings.Split(r.RemoteAddr, ":")[0]
s := insertData["data"].([]any)
a := s[0].(map[string]any)
a["ip"] = ipAddr
}
tn, sql := dborm.ConstructInsertSQL(tableName, insertData)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Insert failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
// affected, err := InsertDataWithJson(insertData)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
// xormResponse.Data = mapRow
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func DatabaseUpdateData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseUpdateData processing... ")
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
wc := services.GetUriWhereString(r)
log.Debug("Request body:", string(body), "Table name:", tblName, "wc:", wc)
updateData := make(map[string]interface{})
_ = json.Unmarshal(body, &updateData)
tn, sql := dborm.ConstructUpdateSQL(tblName, updateData, wc)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Update failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func DatabaseDeleteData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseDeleteData processing... ")
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
wc := services.GetUriWhereString(r)
log.Debug("Table name:", tblName, "wc:", wc)
sql := dborm.ConstructDeleteSQL(tblName, wc)
affected, err := db.ExecDB("", sql, nil)
if err != nil {
log.Error("Update failed, err:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
// 连接用户实例
func DbConnection(w http.ResponseWriter, r *http.Request) {
// 获取底层 SQL 数据库连接
sqlDB, err := db.DB("").DB()
if err != nil {
services.ResponseErrorWithJson(w, 400, "无连接")
return
}
// 测试数据库连接
err = sqlDB.Ping()
if err != nil {
services.ResponseErrorWithJson(w, 400, "无连接")
return
}
// 查询实例
result, err := db.RawDB("", "SHOW PROCESSLIST;", nil)
if err != nil {
services.ResponseErrorWithJson(w, 500, err.Error())
}
filterData := []map[string]any{}
for _, r := range result {
if r["User"] != "system user" {
filterData = append(filterData, r)
}
}
// Sleep连接处于空闲状态没有执行任何操作。
// Query连接正在执行一个查询语句。
// Execute连接正在执行一个准备好的 SQL 语句。
// Connect连接正在建立但尚未完成。
services.ResponseWithJson(w, 200, filterData)
}
// 关闭数据库连接
func DbStop(w http.ResponseWriter, r *http.Request) {
// 获取底层 SQL 数据库连接
sqlDB, err := db.DB("").DB()
if err != nil {
services.ResponseErrorWithJson(w, 400, "无连接")
return
}
// 测试数据库连接
err = sqlDB.Ping()
if err != nil {
services.ResponseErrorWithJson(w, 400, "无连接")
return
}
// json 請求參數獲取
var bodyArgs struct {
ID string `json:"ID" validate:"required"`
}
err = ctx.ShouldBindJSON(r, &bodyArgs)
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseErrorWithJson(w, 400, err.Error())
return
}
// 关闭
rse, err := db.ExecDB("", "KILL ?;", []any{bodyArgs.ID})
if err != nil {
services.ResponseErrorWithJson(w, 500, err.Error())
return
}
services.ResponseWithJson(w, 200, rse)
}
// xorm Get data from database
func TaskDatabaseGetData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseGetData processing... ")
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
var sql = GetUriSQLArray(r)
// select as must, todo ...
if sql == nil {
wc := services.GetUriWhereString(r)
if wc == "" {
sql = append(sql, fmt.Sprintf("select * from %s", tblName))
} else {
sql = append(sql, fmt.Sprintf("select * from %s where %s", tblName, wc))
}
}
ls := services.GetUriPageLimitString(r)
// data := make([]map[string]interface{}, 0)
// xormResponse := make([]map[string]interface{}, len(sql))
var xormResponse XormResponse
data := make([]map[string]interface{}, 0)
for i, s := range sql {
log.Tracef("SQL[%d]: %s", i, sql[i])
mapRows := make(map[string]interface{})
if s != "" {
// err = XEngine.SQL(s).Find(&rows)
if !IsQuerySQL(s) {
services.ResponseNotAcceptable406QuerySQLError(w)
return
}
querySQL := s
if i == (len(sql) - 1) {
querySQL = querySQL + " " + ls
}
log.Debug("querySQL:", querySQL)
rows, err := db.RawDB("", querySQL, nil)
if err != nil {
log.Error("SQL failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
tableName := GetTableName(s)
log.Debugf("s:%s tableName:%s", s, tableName)
mapRows[tableName] = rows
data = append(data, mapRows)
log.Trace("data:", data)
}
i++
}
xormResponse.Data = data
services.ResponseWithJson(w, http.StatusOK, xormResponse)
}
func TaskDatabaseInsertData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseInsertData processing... ")
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Error("io.ReadAll failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
vars := mux.Vars(r)
tableName := vars["objectTypeValue"]
log.Debug("Request body:", string(body), "tableName:", tableName)
insertData := make(map[string]interface{})
_ = json.Unmarshal(body, &insertData)
tn, sql := dborm.ConstructInsertSQL(tableName, insertData)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Insert failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
// affected, err := InsertDataWithJson(insertData)
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
// xormResponse.Data = mapRow
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func TaskDatabaseUpdateData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseUpdateData processing... ")
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
wc := services.GetUriWhereString(r)
log.Debug("Request body:", string(body), "Table name:", tblName, "wc:", wc)
updateData := make(map[string]interface{})
_ = json.Unmarshal(body, &updateData)
tn, sql := dborm.ConstructUpdateSQL(tblName, updateData, wc)
log.Tracef("tn: %s sql :%s", tn, sql)
var affected int64
for _, s := range sql {
n, err := db.ExecDB("", s, nil)
if err != nil {
log.Error("Update failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected = affected + n
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tn] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}
func TaskDatabaseDeleteData(w http.ResponseWriter, r *http.Request) {
log.Debug("DatabaseDeleteData processing... ")
vars := mux.Vars(r)
tblName := vars["objectTypeValue"]
wc := services.GetUriWhereString(r)
log.Debug("Table name:", tblName, "wc:", wc)
sql := dborm.ConstructDeleteSQL(tblName, wc)
affected, err := db.ExecDB("", sql, nil)
if err != nil {
log.Error("Update failed, err:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow["data"] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}

View File

@@ -1,248 +0,0 @@
package event
import (
"encoding/json"
"fmt"
"net/http"
"strings"
"time"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"be.ems/src/framework/utils/date"
"be.ems/src/framework/utils/parse"
neService "be.ems/src/modules/network_element/service"
wsService "be.ems/src/modules/ws/service"
"github.com/gin-gonic/gin"
)
var (
// 走Gin
UriUEEventAMF = "/upload-ue/v1/:eventType"
// 走Mux
UriUEEvent = config.DefaultUriPrefix + "/logManagement/v1/elementType/{elementTypeValue}/objectType/ueEvent"
CustomUriUEEvent = config.UriPrefix + "/logManagement/v1/elementType/{elementTypeValue}/objectType/ueEvent"
)
// 旧AMF上报处理
func PostUEEventFromAMF(c *gin.Context) {
log.Info("PostUEEventFromAMF processing... ")
eventType := c.Param("eventType")
if eventType == "" {
log.Error("eventType is empty")
services.ResponseNotFound404UriNotExist(c.Writer, c.Request)
return
}
var body map[string]any
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
log.Error("Failed to Unmarshal ueEvent:", err)
services.ResponseInternalServerError500ProcessError(c.Writer, err)
return
}
// 执行插入表
type UEEvent struct {
ID string `json:"id" gorm:"column:id;primaryKey;autoIncrement"`
NeType string `json:"neType" gorm:"column:ne_type"`
NeName string `json:"neName" gorm:"column:ne_name"`
RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state
EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` // data JSON String
CreatedAt int64 `json:"createdAt" gorm:"column:created_at"` // 记录创建存储毫秒
}
timestamp := time.Now().UnixMilli()
data := UEEvent{
NeType: "AMF",
NeName: "",
RmUID: "",
Timestamp: timestamp,
EventType: eventType,
EventJSONStr: "",
CreatedAt: timestamp,
}
// 从eventJson中获取rmUID
if v, ok := body["rmUID"]; ok {
data.RmUID = fmt.Sprint(v)
} else {
data.RmUID = "4400HXAMF001"
}
if v, ok := body["neName"]; ok {
data.NeName = fmt.Sprint(v)
} else {
data.NeName = "AMF_001"
}
// 是否存在网元
neInfo := neService.NewNeInfo.FindByRmuid(data.RmUID)
if neInfo.NeType != "AMF" || neInfo.RmUID != data.RmUID {
services.ResponseInternalServerError500ProcessError(c.Writer, fmt.Errorf("network element does not exist"))
return
}
// 统一格式
eventJson := map[string]any{"cellID": 0, "gNBID": "", "imsi": "", "onlineNumber": 0, "result": "", "tacID": 0, "timestamp": 0, "time": 0, "type": eventType}
switch eventType {
case "auth-result":
// {"authCode":"200","authMessage":"成功","authTime":"2024-12-07 16:48:37","cellID":"3","gNBID":"1","imsi":"460002082100000","onlineNumber":1,"tacID":"81"}
if v, ok := body["imsi"]; ok {
eventJson["imsi"] = fmt.Sprint(v)
}
if v, ok := body["cellID"]; ok {
eventJson["cellID"] = fmt.Sprint(v)
}
if v, ok := body["gNBID"]; ok {
eventJson["gNBID"] = fmt.Sprint(v)
}
if v, ok := body["tacID"]; ok {
eventJson["tacID"] = fmt.Sprint(v)
}
if v, ok := body["onlineNumber"]; ok {
eventJson["onlineNumber"] = parse.Number(v)
}
if v, ok := body["authCode"]; ok {
eventJson["result"] = fmt.Sprint(v)
}
if v, ok := body["authTime"]; ok {
authTime := date.ParseStrToDate(fmt.Sprint(v), date.YYYY_MM_DD_HH_MM_SS)
eventJson["timestamp"] = authTime.Unix()
eventJson["time"] = fmt.Sprint(v)
}
case "detach":
// {"detachResult":0,"detachTime":"2024-12-07 18:00:47","imsi":"460002082100000"}
if v, ok := body["imsi"]; ok {
eventJson["imsi"] = fmt.Sprint(v)
}
if v, ok := body["detachResult"]; ok {
if fmt.Sprint(v) == "0" {
eventJson["result"] = "200"
} else {
eventJson["result"] = "500"
}
}
if v, ok := body["detachTime"]; ok {
detachTime := date.ParseStrToDate(fmt.Sprint(v), date.YYYY_MM_DD_HH_MM_SS)
eventJson["timestamp"] = detachTime.Unix()
eventJson["time"] = fmt.Sprint(v)
}
case "cm-state":
// {"changeTime":"2024-12-07 17:07:52","imsi":"460002082100000","onlineNumber":1,"status":2}
if v, ok := body["imsi"]; ok {
eventJson["imsi"] = fmt.Sprint(v)
}
if v, ok := body["onlineNumber"]; ok {
eventJson["onlineNumber"] = parse.Number(v)
}
if v, ok := body["status"]; ok {
eventJson["result"] = fmt.Sprint(v)
}
if v, ok := body["changeTime"]; ok {
changeTime := date.ParseStrToDate(fmt.Sprint(v), date.YYYY_MM_DD_HH_MM_SS)
eventJson["timestamp"] = changeTime.Unix()
eventJson["time"] = fmt.Sprint(v)
}
}
ueByte, err := json.Marshal(eventJson)
if err != nil {
services.ResponseInternalServerError500ProcessError(c.Writer, err)
return
}
data.EventJSONStr = string(ueByte)
if err := db.DB("").Table("ue_event_amf").Create(&data).Error; err != nil {
log.Error("Failed to insert ue_event_amf", err)
services.ResponseInternalServerError500ProcessError(c.Writer, err)
return
}
// 推送到ws订阅组
if data.NeType == "AMF" {
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE+"_"+neInfo.NeId, data)
}
services.ResponseStatusOK204NoContent(c.Writer)
}
// UE上报处理
func PostUEEvent(w http.ResponseWriter, r *http.Request) {
log.Info("PostUEEvent processing... ")
neType := ctx.GetParam(r, "elementTypeValue")
var body struct {
NeType string `json:"neType" `
NeName string `json:"neName" `
RmUID string `json:"rmUID" `
Timestamp int64 `json:"timestamp" `
EventType string `json:"eventType" `
EventJson map[string]any `json:"eventJSON" `
}
if err := ctx.ShouldBindJSON(r, &body); err != nil {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
neTypeLower := strings.ToLower(body.NeType)
if neType == "" || neType != neTypeLower {
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("inconsistent network element types"))
return
}
// 是否存在网元
neInfo := neService.NewNeInfo.FindByRmuid(body.RmUID)
if neInfo.NeType != body.NeType || neInfo.RmUID != body.RmUID {
services.ResponseInternalServerError500ProcessError(w, fmt.Errorf("network element does not exist"))
return
}
ueByte, err := json.Marshal(body.EventJson)
if err != nil {
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 执行插入表
type UEEvent struct {
ID string `json:"-" gorm:"column:id;primaryKey;autoIncrement"`
NeType string `json:"neType" gorm:"column:ne_type"`
NeName string `json:"neName" gorm:"column:ne_name"`
RmUID string `json:"rmUID" gorm:"column:rm_uid"` // 可能没有
Timestamp int64 `json:"timestamp" gorm:"column:timestamp"` // 接收到的timestamp秒级存储毫秒时间戳
EventType string `json:"eventType" gorm:"column:event_type"` // 事件类型 auth-result detach cm-state
EventJSONStr string `json:"eventJSON" gorm:"column:event_json"` // data JSON String
CreatedAt int64 `json:"-" gorm:"column:created_at"` // 记录创建存储毫秒
}
data := UEEvent{
NeType: body.NeType,
NeName: body.NeName,
RmUID: body.RmUID,
Timestamp: int64(body.Timestamp) * 1000,
EventType: body.EventType,
EventJSONStr: string(ueByte),
CreatedAt: time.Now().UnixMilli(),
}
tableName := fmt.Sprintf("ue_event_%s", neTypeLower)
if err := db.DB("").Table(tableName).Create(&data).Error; err != nil {
log.Error("Failed to insert "+tableName, err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
// 推送到ws订阅组
if body.NeType == "MME" {
wsService.NewWSSend.ByGroupID(wsService.GROUP_MME_UE, data)
wsService.NewWSSend.ByGroupID(wsService.GROUP_MME_UE+"_"+neInfo.NeId, data)
}
if body.NeType == "AMF" {
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE, data)
wsService.NewWSSend.ByGroupID(wsService.GROUP_AMF_UE+"_"+neInfo.NeId, data)
}
services.ResponseStatusOK204NoContent(w)
}

View File

@@ -1,22 +0,0 @@
package features
import (
"be.ems/features/cm"
"be.ems/features/lm"
"be.ems/features/nbi"
"be.ems/features/pm"
"be.ems/lib/log"
"github.com/gin-gonic/gin"
)
func InitServiceEngine(r *gin.Engine) {
log.Info("======init feature group gin.Engine")
// featuresGroup := r.Group("/")
// register features routers
pm.InitSubServiceRoute(r)
lm.InitSubServiceRoute(r)
cm.InitSubServiceRoute(r)
nbi.InitSubServiceRoute(r)
// return featuresGroup
}

View File

@@ -1,141 +0,0 @@
package file
import (
"net/http"
"path/filepath"
"be.ems/lib/config"
"be.ems/lib/log"
"be.ems/lib/services"
"github.com/gorilla/mux"
)
var (
// parameter config management
UriFile = config.DefaultUriPrefix + "/fileManagement/{apiVersion}/{location}/file"
CustomUriFile = config.UriPrefix + "/fileManagement/{apiVersion}/{location}/file"
)
// func init() {
// routes.Register("POST", UriFile, UploadFile, nil)
// routes.Register("GET", UriFile, DownloadFile, nil)
// routes.Register("DELETE", UriFile, DeleteFile, nil)
// }
func UploadFile(w http.ResponseWriter, r *http.Request) {
log.Debug("UploadFile processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Http request error:", err)
// return
// }
vars := mux.Vars(r)
location := vars["location"]
if location == "" {
log.Error("location is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
params := r.URL.Query()
rename, ok := params["rename"]
if !ok {
log.Info("rename parameter is not exist")
}
log.Debug("rename:", rename)
var path, fileName string
if len(rename) > 0 {
fileName = rename[0]
}
if location == "upload" {
path = config.GetYamlConfig().OMC.Upload
fileNamePath, err := services.HandleUploadFile(r, path, fileName)
if err != nil {
log.Error("Faile to HandleUploadFile:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
fileName = fileNamePath
} else {
path = config.GetYamlConfig().OMC.FrontUpload
fileNamePath, err := services.HandleUploadFile(r, path, fileName)
if err != nil {
log.Error("Faile to HandleUploadFile:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
fileName = fileNamePath
}
log.Debugf("upload file=%s to path=%s", fileName, path)
services.ResponseStatusOK204NoContent(w)
return
}
func DownloadFile(w http.ResponseWriter, r *http.Request) {
log.Debug("DownloadFile processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
location := vars["location"]
if location == "" {
log.Error("location is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// 全路径文件下载
filePath := r.URL.Query().Get("path")
if location == "path" && filePath != "" {
// 截取文件路径
dir := filepath.Dir(filePath)
// 截取文件名
fileName := filepath.Base(filePath)
services.ResponseFileWithNameAndMD5(w, http.StatusOK, fileName, dir, "")
return
}
params := r.URL.Query()
fileNames, ok := params["loc"]
if !ok {
log.Info("loc parameter is not exist")
}
var path string
if location == "upload" {
path = config.GetYamlConfig().OMC.Upload
} else {
path = config.GetYamlConfig().OMC.FrontUpload
}
for _, fileName := range fileNames {
services.ResponseFileWithNameAndMD5(w, http.StatusOK, fileName, path, "")
}
return
}
func DeleteFile(w http.ResponseWriter, r *http.Request) {
log.Debug("DeleteFile processing... ")
// _, err := services.CheckFrontValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
neType := vars["neType"]
if neType == "" {
log.Error("neType is empty")
services.ResponseNotFound404UriNotExist(w, r)
return
}
services.ResponseStatusOK204NoContent(w)
return
}

View File

@@ -1,567 +0,0 @@
package fm
import (
"database/sql"
"encoding/json"
"fmt"
"net/http"
"strings"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/constants"
"be.ems/src/framework/resp"
"be.ems/src/framework/utils/date"
neDataModel "be.ems/src/modules/network_data/model"
neDataService "be.ems/src/modules/network_data/service"
neFetchlink "be.ems/src/modules/network_element/fetch_link"
neModel "be.ems/src/modules/network_element/model"
neService "be.ems/src/modules/network_element/service"
traceService "be.ems/src/modules/trace/service"
wsService "be.ems/src/modules/ws/service"
)
const (
AlarmStatusClear = 0
AlarmStatusActive = 1
AlarmStatusClearString = "0"
AlarmStatusActiveString = "1"
)
const (
ClearTypeUnclear = 0
ClearTypeAutoClear = 1
ClearTypeManualClear = 2
)
const (
AckStateUnacked = 0
AckStateAcked = 1
)
const (
AlarmTypeCommunicationAlarm = 1
AlarmTypeEquipmentAlarm = 2
AlarmTypeProcessingFailure = 3
AlarmTypeEnvironmentalAlarm = 4
AlarmTypeQualityOfServiceAlarm = 5
)
const (
AlarmPerceivedSeverityCritical = 1
AlarmPerceivedSeverityMajor = 2
AlarmPerceivedSeverityMinor = 3
AlarmPerceivedSeverityWarning = 4
AlarmPerceivedSeverityEvent = 5
)
const (
AlarmSeqBeginNumber = 1
)
type Alarm struct {
AlarmSeq int `json:"alarmSeq"`
AlarmId string `json:"alarmId" xorm:"alarm_id"`
NeId string `json:"neId"`
AlarmCode int `json:"alarmCode"`
AlarmTitle string `json:"alarmTitle"`
EventTime string `json:"eventTime"`
AlarmType string `json:"alarmType"`
OrigSeverity string `json:"origSeverity"`
PerceivedSeverity string `json:"perceivedSeverity"`
PVFlag string `json:"pvFlag" xorm:"pv_flag"`
NeName string `json:"neName"`
NeType string `json:"neType"`
ObjectUid string `json:"objectUid" xorm:"object_uid"`
ObjectName string `json:"objectName" xorm:"object_name"`
ObjectType string `json:"objectType" xorm:"object_type"`
LocationInfo string `json:"locationInfo"`
Province string `json:"province"`
AlarmStatus int `json:"alarmStatus"`
SpecificProblem string `json:"specificProblem"`
SpecificProblemID string `json:"specificProblemID" xorm:"specific_problem_id"`
AddInfo string `json:"addInfo"`
AckState int `json:"ackState"`
AckTime sql.NullTime `json:"ackTime"`
AckUser string `json:"ackUser"`
ClearType int `json:"clearType"` // 0: Unclear, 1: Auto clear, 2: Manual clear
ClearTime sql.NullTime `json:"clearTime"`
}
var (
// alarm management
UriAlarms = config.DefaultUriPrefix + "/faultManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/alarms"
UriAlarmsFmt = config.DefaultUriPrefix + "/faultManagement/v1/elementType/%s/objectType/alarms"
CustomUriAlarms = config.UriPrefix + "/faultManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/alarms"
CustomUriAlarmsFmt = config.UriPrefix + "/faultManagement/v1/elementType/%s/objectType/alarms"
)
// PostAlarmFromNF 网元告警数据上报接收
func PostAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("PostAlarmFromNF processing... ")
apiVer := ctx.GetParam(r, "apiVersion")
if apiVer != global.ApiVersionV1 {
log.Error("Uri api version is invalid. apiVersion:", apiVer)
services.ResponseWithJson(w, 422, resp.CodeMsg(40422, "api version is invalid"))
return
}
var body []Alarm
if err := ctx.ShouldBindJSON(r, &body); err != nil {
services.ResponseWithJson(w, 422, resp.ErrMsg(err.Error()))
return
}
// service object
neService := neService.NewNeInfo
for _, v := range body {
log.Debug("alarmData:", v)
// 是否存在网元 neId实际是rmUID
neInfo := neService.FindByRmuid(v.NeId)
if neInfo.NeType != v.NeType {
msg := fmt.Sprintf("network element does not exist %s", v.NeId)
services.ResponseWithJson(w, 400, resp.ErrMsg(msg))
return
}
// 记录日志
alarmSaveLog(neInfo, v)
// 补充默认信息
if v.LocationInfo == "" {
v.LocationInfo = fmt.Sprintf("Remote Host:%s", r.RemoteAddr)
}
if v.AddInfo == "" {
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
}
if v.ObjectUid == "" {
v.ObjectUid = neInfo.RmUID
}
if v.ObjectName == "" {
v.ObjectName = neInfo.NeName
}
if v.ObjectType == "" {
v.ObjectType = neInfo.NeType
}
// 告警事件
if v.OrigSeverity == "Event" || v.OrigSeverity == "5" {
if v.AlarmStatus == AlarmStatusClear {
// 进行清除
clearAlarmEvent, err := alarmEventClear(neInfo, v)
if err != nil {
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
return
}
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.NeType, neInfo.NeId)
wsService.NewWSSend.ByGroupID(groupID, clearAlarmEvent)
}
if v.AlarmStatus == AlarmStatusActive {
// 进行新增
newAlarmEvent, err := alarmEventNew(neInfo, v)
if err != nil {
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
return
}
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.NeType, neInfo.NeId)
wsService.NewWSSend.ByGroupID(groupID, newAlarmEvent)
}
continue
}
if v.AlarmStatus == AlarmStatusClear {
// 进行清除
clearAlarm, err := alarmClear(neInfo, v)
if err != nil {
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
return
}
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
wsService.NewWSSend.ByGroupID(groupID, clearAlarm)
}
if v.AlarmStatus == AlarmStatusActive {
// 进行新增
newAlarm, err := alarmNew(neInfo, v)
if err != nil {
services.ResponseWithJson(w, 400, resp.ErrMsg(err.Error()))
return
}
groupID := fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.NeType, neInfo.NeId)
wsService.NewWSSend.ByGroupID(groupID, newAlarm)
}
// for alarm forward 告警转发
alarmForward(v)
}
services.ResponseStatusOK204NoContent(w)
}
// alarmTypeValue 映射值
func alarmTypeValue(str string) string {
arr := []string{"CommunicationAlarm", "EquipmentAlarm", "ProcessingFailure", "EnvironmentalAlarm", "QualityOfServiceAlarm"}
for k, v := range arr {
if v == str {
return fmt.Sprint(k + 1)
}
}
return str
}
// origSeverityValue 映射值
func origSeverityValue(str string) string {
arr := []string{"Critical", "Major", "Minor", "Warning", "Event"}
for k, v := range arr {
if v == str {
return fmt.Sprint(k + 1)
}
}
return str
}
// alarmClear 清除告警
func alarmClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
alarmService := neDataService.NewAlarm
// 检查网元告警ID是否唯一
alarmIdArr := alarmService.Find(neDataModel.Alarm{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmId: v.AlarmId,
})
if len(alarmIdArr) != 1 {
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm not exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
}
// 产生时间
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarm := neDataModel.Alarm{
ID: alarmIdArr[0].ID,
NeType: neInfo.NeType,
NeId: neInfo.NeId,
NeName: neInfo.NeName,
Province: neInfo.Province,
PvFlag: neInfo.PvFlag,
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
AlarmId: v.AlarmId,
AlarmTitle: v.AlarmTitle,
AlarmCode: int64(v.AlarmCode),
EventTime: eventTime.UnixMilli(),
AlarmType: alarmTypeValue(v.AlarmType),
OrigSeverity: origSeverityValue(v.OrigSeverity),
PerceivedSeverity: origSeverityValue(v.PerceivedSeverity),
ObjectUid: v.ObjectUid,
ObjectName: v.ObjectName,
ObjectType: v.ObjectType,
LocationInfo: v.LocationInfo,
AlarmStatus: fmt.Sprint(v.AlarmStatus),
SpecificProblem: v.SpecificProblem,
SpecificProblemId: v.SpecificProblemID,
AddInfo: v.AddInfo,
}
// 告警清除
alarm.ClearType = ClearTypeAutoClear
alarm.ClearTime = eventTime.UnixMilli()
alarm.ClearUser = neInfo.NeName
rows := alarmService.Update(alarm)
if rows > 0 {
return alarm, nil
}
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] clear alarm fail", neInfo.NeType, neInfo.NeId)
}
// alarmNew 新增告警
func alarmNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.Alarm, error) {
alarmService := neDataService.NewAlarm
// 检查网元告警ID是否唯一
alarmIdArr := alarmService.Find(neDataModel.Alarm{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmId: v.AlarmId,
})
if len(alarmIdArr) > 0 {
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm already exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
}
// seq 告警序号
lastSeq := alarmService.FindAlarmSeqLast(neInfo.NeType, neInfo.NeId)
// 产生时间
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarm := neDataModel.Alarm{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
NeName: neInfo.NeName,
Province: neInfo.Province,
PvFlag: neInfo.PvFlag,
AlarmSeq: lastSeq + 1,
AlarmId: v.AlarmId,
AlarmTitle: v.AlarmTitle,
AlarmCode: int64(v.AlarmCode),
EventTime: eventTime.UnixMilli(),
AlarmType: alarmTypeValue(v.AlarmType),
OrigSeverity: origSeverityValue(v.OrigSeverity),
PerceivedSeverity: origSeverityValue(v.PerceivedSeverity),
ObjectUid: v.ObjectUid,
ObjectName: v.ObjectName,
ObjectType: v.ObjectType,
LocationInfo: v.LocationInfo,
AlarmStatus: fmt.Sprint(v.AlarmStatus),
SpecificProblem: v.SpecificProblem,
SpecificProblemId: v.SpecificProblemID,
AddInfo: v.AddInfo,
}
insertId := alarmService.Insert(alarm)
if insertId > 0 {
alarm.ID = insertId
return alarm, nil
}
return neDataModel.Alarm{}, fmt.Errorf("[%s %s] new alarm fail", neInfo.NeType, neInfo.NeId)
}
// alarmSaveLog 保存告警日志
func alarmSaveLog(neInfo neModel.NeInfo, v Alarm) int64 {
alarmLogService := neDataService.NewAlarmLog
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarmLog := neDataModel.AlarmLog{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmSeq: int64(v.AlarmSeq),
AlarmId: v.AlarmId,
AlarmTitle: v.AlarmTitle,
AlarmCode: int64(v.AlarmCode),
AlarmStatus: fmt.Sprint(v.AlarmStatus),
AlarmType: alarmTypeValue(v.AlarmType),
OrigSeverity: origSeverityValue(v.OrigSeverity),
EventTime: eventTime.UnixMilli(),
}
return alarmLogService.Insert(alarmLog)
}
// alarmForward 告警转发
func alarmForward(v Alarm) {
if config.GetYamlConfig().Alarm.EmailForward.Enable {
if err := AlarmEmailForward(&v); err != nil {
log.Error("Failed to AlarmEmailForward:", err)
}
}
if config.GetYamlConfig().Alarm.SMSCForward.Enable {
if err := AlarmSMSForward(&v); err != nil {
log.Error("Failed to AlarmSMSForward:", err)
}
}
}
// alarmEventClear 清除告警事件
func alarmEventClear(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, error) {
alarmEventService := neDataService.NewAlarmEvent
// 检查网元告警ID是否唯一
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmId: v.AlarmId,
})
if len(alarmIdArr) != 1 {
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event not exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
}
// 产生时间
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarmEvent := neDataModel.AlarmEvent{
ID: alarmIdArr[0].ID,
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmSeq: alarmIdArr[0].AlarmSeq, // seq 告警序号
AlarmId: v.AlarmId,
AlarmTitle: v.AlarmTitle,
AlarmCode: int64(v.AlarmCode),
EventTime: eventTime.UnixMilli(),
ObjectUid: v.ObjectUid,
ObjectName: v.ObjectName,
ObjectType: v.ObjectType,
LocationInfo: v.LocationInfo,
AlarmStatus: fmt.Sprint(v.AlarmStatus),
SpecificProblem: v.SpecificProblem,
SpecificProblemId: v.SpecificProblemID,
AddInfo: v.AddInfo,
}
// 告警清除
alarmEvent.ClearType = ClearTypeAutoClear
alarmEvent.ClearTime = eventTime.UnixMilli()
alarmEvent.ClearUser = neInfo.NeName
rows := alarmEventService.Update(alarmEvent)
if rows > 0 {
return alarmEvent, nil
}
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] clear alarm event fail", neInfo.NeType, neInfo.NeId)
}
// alarmEventNew 新增告警事件
func alarmEventNew(neInfo neModel.NeInfo, v Alarm) (neDataModel.AlarmEvent, error) {
alarmEventService := neDataService.NewAlarmEvent
// 检查网元告警ID是否唯一
alarmIdArr := alarmEventService.Find(neDataModel.AlarmEvent{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmId: v.AlarmId,
})
if len(alarmIdArr) > 0 {
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event already exists alarmId:%s", neInfo.NeType, neInfo.NeId, v.AlarmId)
}
// seq 告警序号
lastSeq := alarmEventService.FindAlarmEventSeqLast(neInfo.NeType, neInfo.NeId)
// 产生时间
eventTime := date.ParseStrToDate(v.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarmEvent := neDataModel.AlarmEvent{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmSeq: lastSeq + 1,
AlarmId: v.AlarmId,
AlarmTitle: v.AlarmTitle,
AlarmCode: int64(v.AlarmCode),
EventTime: eventTime.UnixMilli(),
ObjectUid: v.ObjectUid,
ObjectName: v.ObjectName,
ObjectType: v.ObjectType,
LocationInfo: v.LocationInfo,
AlarmStatus: fmt.Sprint(v.AlarmStatus),
SpecificProblem: v.SpecificProblem,
SpecificProblemId: v.SpecificProblemID,
AddInfo: v.AddInfo,
}
insertId := alarmEventService.Insert(alarmEvent)
if insertId > 0 {
alarmEvent.ID = insertId
// 网元重启后,清除活动告警
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
alarmService := neDataService.NewAlarm
rows := alarmService.Find(neDataModel.Alarm{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmStatus: "1",
})
for _, v := range rows {
alarmService.AlarmClearByIds([]int64{v.ID}, "system")
}
}
// 网元重启后,有跟踪任务的需要重新补发启动任务
if v.AlarmCode == constants.ALARM_EVENT_REBOOT {
traceService.NewTraceTask.RunUnstopped(neInfo.NeType, neInfo.NeId)
}
return alarmEvent, nil
}
return neDataModel.AlarmEvent{}, fmt.Errorf("[%s %s] new alarm event fail", neInfo.NeType, neInfo.NeId)
}
// mapToAlarm 将 []map[string]any 转换为 []Alarm
func mapToAlarm(data []map[string]any) []Alarm {
var result []Alarm
// 将 []map[string]any 序列化为 JSON 字符串
jsonData, err := json.Marshal(data)
if err != nil {
log.Error("Error marshaling data:", err)
return result
}
// 反序列化到结构体
err = json.Unmarshal(jsonData, &result)
if err != nil {
log.Error("Error unmarshaling data:", err)
return result
}
return result
}
// GetAlarmFromNF 告警历史数据,从网元获取
func GetAlarmFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("GetAlarmFromNF processing... ")
neType := ctx.GetParam(r, "elementTypeValue")
neTypeLower := strings.ToLower(neType)
// Get alarms from OMC return 204
if neTypeLower == strings.ToLower(config.GetYamlConfig().OMC.NeType) {
log.Infof("Return no content alarms from %s", neType)
services.ResponseWithJson(w, 200, resp.ErrMsg("omc alarms no content"))
return
}
neInfos := neService.NewNeInfo.Find(neModel.NeInfo{}, false, false)
for _, neInfo := range neInfos {
data, err := neFetchlink.AlarmHistory(neInfo)
if err != nil {
log.Error("Failed to fetch alarm history:", err)
continue
}
if len(data) == 0 {
log.Infof("Not found sync alarms, neType=%s, neId=%s", neInfo.NeType, neInfo.NeId)
continue
}
alarms := mapToAlarm(data)
for _, v := range alarms {
// 补充默认信息
if v.LocationInfo == "" {
v.LocationInfo = fmt.Sprintf("Remote Host:%s", r.RemoteAddr)
}
if v.AddInfo == "" {
v.AddInfo = fmt.Sprintf("NeInfo:%s", v.NeType)
}
if v.ObjectUid == "" {
v.ObjectUid = neInfo.RmUID
}
if v.ObjectName == "" {
v.ObjectName = neInfo.NeName
}
if v.ObjectType == "" {
v.ObjectType = neInfo.NeType
}
// 告警事件
if v.OrigSeverity == "Event" || v.OrigSeverity == "5" {
if v.AlarmStatus == AlarmStatusClear {
// 进行清除
if _, err := alarmEventClear(neInfo, v); err != nil {
log.Error("Failed to alarmEventClear:", err)
continue
}
}
if v.AlarmStatus == AlarmStatusActive {
// 进行新增
if _, err := alarmEventNew(neInfo, v); err != nil {
log.Error("Failed to alarmEventNew:", err)
continue
}
}
continue
}
if v.AlarmStatus == AlarmStatusClear {
// 进行清除
if _, err := alarmClear(neInfo, v); err != nil {
log.Error("Failed to alarmClear:", err)
continue
}
}
if v.AlarmStatus == AlarmStatusActive {
// 进行新增
if _, err := alarmNew(neInfo, v); err != nil {
log.Error("Failed to alarmNew:", err)
continue
}
}
}
}
services.ResponseWithJson(w, 200, resp.OkMsg("sync alarms success"))
}

View File

@@ -1,124 +0,0 @@
package fm
import (
"crypto/tls"
"fmt"
"strings"
"be.ems/lib/config"
"be.ems/lib/log"
systemService "be.ems/src/modules/system/service"
"gopkg.in/gomail.v2"
)
func AlarmEmailForward(alarmData *Alarm) error {
log.Info("AlarmEmailForward processing... ")
alarmStatus := "Clear"
if alarmData.AlarmStatus == 1 {
alarmStatus = "Active"
}
severity := origSeverityValue(alarmData.OrigSeverity)
dictAlarmSeverity := systemService.NewSysDictData.FindByType("active_alarm_severity")
for _, v := range dictAlarmSeverity {
if v.DataValue == severity {
severity = v.DataLabel
}
}
subjectTime := fmt.Sprintf("%s-%s-%s", severity, alarmData.NeName, alarmData.AlarmTitle)
message := fmt.Sprintf(`
<p>Alarm information</p>
<p style="text-indent:2.5em">Sequence: %d</p>
<p style="text-indent:3em">NE Name: %s</p>
<p style="text-indent:4em">Title: %s</p>
<p style="text-indent:2.5em">Severity: %s</p>
<p style="text-indent:1.5em">Event Time: %s</p>
<p style="text-indent:0.5em">Alarm Status: %s</p>
<p>Automatic sent by OMC, please do not reply!</p>
`,
alarmData.AlarmSeq,
alarmData.NeName,
alarmData.AlarmTitle,
severity,
alarmData.EventTime,
alarmStatus,
)
// message := fmt.Sprintf(`
// Alarm information
// Sequence: %d
// NE name: %s
// Title: %s
// Severity: %s
// Event Time: %s
// Automatic send by OMC, don't reply!
// `, alarmData.AlarmSeq, alarmData.NeName, alarmData.AlarmTitle, alarmData.OrigSeverity, alarmData.EventTime)
// QQ 邮箱:
// SMTP 服务器地址smtp.qq.comSSL协议端口465/994 | 非SSL协议端口25
// 163 邮箱:
// SMTP 服务器地址smtp.163.com端口25
// host := "mail.agrandtech.com"
// port := 25
// userName := "smtpext@agrandtech.com"
// password := "1000smtp@omc!"
host := config.GetYamlConfig().Alarm.EmailForward.SMTP
port := int(config.GetYamlConfig().Alarm.EmailForward.Port)
userName := config.GetYamlConfig().Alarm.EmailForward.User
password := config.GetYamlConfig().Alarm.EmailForward.Password
m := gomail.NewMessage()
m.SetHeader("From", userName) // 发件人
//m.SetHeader("From", "alias"+"<"+"aliastest"+">") // 增加发件人别名
// emails, err := dborm.XormGetAlarmForward("Email")
// if err != nil {
// log.Error("Failed to XormGetAlarmForward:", err)
// return err
// } else if emails == nil || len(*emails) == 0 {
// err := errors.New("not found forward email list")
// log.Error(err)
// return err
// }
emails := strings.Split(config.GetYamlConfig().Alarm.EmailForward.EmailList, ",")
if len(emails) == 0 {
return fmt.Errorf("not found forward email list")
}
m.SetHeader("To", emails...) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
//m.SetHeader("To", strings.Join(*emails, " ")) // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
//m.SetHeader("To", "zhangshuzhong@agrandtech.com", "simonzhangsz@outlook.com") // 收件人,可以多个收件人,但必须使用相同的 SMTP 连接
//m.SetHeader("Cc", "******@qq.com") // 抄送,可以多个
//m.SetHeader("Bcc", "******@qq.com") // 暗送,可以多个
m.SetHeader("Subject", subjectTime) // 邮件主题
// text/html 的意思是将文件的 content-type 设置为 text/html 的形式浏览器在获取到这种文件时会自动调用html的解析器对文件进行相应的处理。
// 可以通过 text/html 处理文本格式进行特殊处理,如换行、缩进、加粗等等
//m.SetBody("text/html", fmt.Sprintf(message, *alarm))
m.SetBody("text/html", message)
// text/plain的意思是将文件设置为纯文本的形式浏览器在获取到这种文件时并不会对其进行处理
//m.SetBody("text/plain", message)
// m.Attach("test.sh") // 附件文件,可以是文件,照片,视频等等
// m.Attach("lolcatVideo.mp4") // 视频
// m.Attach("lolcat.jpg") // 照片
d := gomail.NewDialer(
host,
port,
userName,
password,
)
// 关闭SSL协议认证
d.TLSConfig = &tls.Config{InsecureSkipVerify: true}
if !config.GetYamlConfig().Alarm.EmailForward.TLSSkipVerify {
// 打开SSL协议认证
d.TLSConfig = &tls.Config{InsecureSkipVerify: false}
}
err := d.DialAndSend(m)
return writeLog(alarmData, config.GetYamlConfig().Alarm.EmailForward.EmailList, "EMAIL", err)
}

View File

@@ -1,271 +0,0 @@
package fm
import (
"errors"
"fmt"
"net/http"
"net/url"
"strings"
"time"
"be.ems/lib/config"
"be.ems/lib/dborm"
"be.ems/lib/log"
"be.ems/src/framework/utils/date"
neDataModel "be.ems/src/modules/network_data/model"
neDataService "be.ems/src/modules/network_data/service"
neService "be.ems/src/modules/network_element/service"
"github.com/linxGnu/gosmpp"
"github.com/linxGnu/gosmpp/data"
"github.com/linxGnu/gosmpp/pdu"
)
func AlarmSMSForward(alarmData *Alarm) error {
switch config.GetYamlConfig().Alarm.SMProxy {
case "sms":
users, err := AlarmForwardBySMS(alarmData)
writeLog(alarmData, users, "SMS", err)
return err
case "smsc":
users, err := AlarmForwardBySMPP(alarmData)
writeLog(alarmData, users, "SMS", err)
return err
default:
users, err := AlarmForwardBySMPP(alarmData)
writeLog(alarmData, users, "SMS", err)
return err
}
}
func AlarmForwardBySMS(alarmData *Alarm) (string, error) {
log.Info("AlarmForwardBySMS processing... ")
SMSFforwardconfig := config.GetYamlConfig().Alarm.SMS
// 阿里云短信API的请求地址
apiURL := SMSFforwardconfig.ApiURL
// 阿里云短信API的AccessKey ID和AccessKey Secret
//accessKeyID := SMSFforwardconfig.AccessKeyID
accessKeySecret := SMSFforwardconfig.AccessKeySecret
toUsers, err := dborm.XormGetAlarmForward("SMS")
if err != nil {
log.Error("Failed to XormGetAlarmForward:", err)
return "", err
}
if toUsers == nil {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
userList := strings.Join(*toUsers, ",")
if len(userList) == 0 {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
// 短信相关参数
params := url.Values{}
params.Set("PhoneNumbers", userList)
params.Set("SignName", SMSFforwardconfig.SignName)
params.Set("TemplateCode", SMSFforwardconfig.TemplateCode)
params.Set("TemplateParam", `{"message":"alarm"}`)
// 构建请求URL
reqURL := apiURL + "?Action=SendSms&" + params.Encode()
// 创建HTTP请求
req, err := http.NewRequest("GET", reqURL, nil)
if err != nil {
log.Error("Failed to create request:", err)
return userList, err
}
// 添加请求头部
req.Header.Set("Content-Type", "application/x-www-form-urlencoded")
req.Header.Set("Authorization", "APPCODE "+accessKeySecret)
// 发送请求
client := &http.Client{}
resp, err := client.Do(req)
if err != nil {
log.Error("Failed to send request:%v", err)
return userList, err
}
defer resp.Body.Close()
// 解析响应
switch resp.StatusCode {
case http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusCreated:
return userList, nil
default:
log.Error(fmt.Errorf("failed to send SMS: %s(Code=%d)", resp.Status, resp.StatusCode))
return userList, err
}
}
var smsForward = &(config.GetYamlConfig().Alarm.SMSCForward)
func AlarmForwardBySMPP(alarmData *Alarm) (string, error) {
log.Info("AlarmForwardBySMPP processing... ")
if smsForward == nil {
err := errors.New("smsForward configuration is nil")
log.Error(err)
return "", err
}
userList := smsForward.MobileList
if len(userList) == 0 {
err := errors.New("not found forward phone number")
log.Error(err)
return "", err
}
auth := gosmpp.Auth{
SMSC: smsForward.SMSCAddr,
SystemID: smsForward.SystemID,
Password: smsForward.Password,
SystemType: smsForward.SystemType,
}
trans, err := gosmpp.NewSession(
gosmpp.TXConnector(gosmpp.NonTLSDialer, auth),
gosmpp.Settings{
ReadTimeout: 2 * time.Second,
OnPDU: func(p pdu.PDU, _ bool) {
log.Debug("%+v", p)
},
OnSubmitError: func(_ pdu.PDU, err error) {
log.Error(err)
},
OnRebindingError: func(err error) {
log.Error(err)
},
OnClosed: func(state gosmpp.State) {
log.Error(state)
},
}, -1)
if err != nil {
log.Error("Failed to create SMPP new session:", err)
return "", err
}
defer func() {
if err := trans.Close(); err != nil {
log.Error(err)
}
}()
message := "Alarm Notification: " + alarmData.AlarmTitle +
" from " + alarmData.NeType + "_" + alarmData.NeId +
" at " + alarmData.EventTime
users := strings.Split(userList, ",")
for _, user := range users {
if user == "" {
continue
}
sm, err := newSubmitSM(user, message)
if err != nil {
log.Errorf("Failed to newSubmitSM %s short message: %v", user, err)
writeLog(alarmData, user, "SMS", err)
continue
}
if err = trans.Transceiver().Submit(sm); err != nil {
log.Errorf("Failed to Submit %s short message: %v", user, err)
writeLog(alarmData, user, "SMS", err)
continue
}
writeLog(alarmData, user, "SMS", nil)
}
return userList, nil
}
func writeLog(alarmData *Alarm, toUser, forwardBy string, err error) error {
var result string = fmt.Sprintf("%s Sent Successfully!", forwardBy)
if err != nil {
result = err.Error()
}
neInfo := neService.NewNeInfo.FindByRmuid(alarmData.NeId)
eventTime := date.ParseStrToDate(alarmData.EventTime, date.YYYY_MM_DDTHH_MM_SSZ)
alarmForwardLog := neDataModel.AlarmForwardLog{
NeType: neInfo.NeType,
NeId: neInfo.NeId,
AlarmSeq: int64(alarmData.AlarmSeq),
AlarmId: alarmData.AlarmId,
AlarmTitle: alarmData.AlarmTitle,
AlarmCode: int64(alarmData.AlarmCode),
AlarmStatus: fmt.Sprint(alarmData.AlarmStatus),
AlarmType: alarmTypeValue(alarmData.AlarmType),
OrigSeverity: origSeverityValue(alarmData.OrigSeverity),
EventTime: eventTime.UnixMilli(),
Type: forwardBy,
Target: toUser,
Result: result,
}
// 记录日志
insertId := neDataService.NewAlarmForwardLog.Insert(alarmForwardLog)
if insertId <= 0 {
return fmt.Errorf("failed to insert data")
}
return nil
}
func newSubmitSM(phoneNumber string, message string) (*pdu.SubmitSM, error) {
// build up submitSM
srcAddr := pdu.NewAddress()
srcAddr.SetTon(5)
srcAddr.SetNpi(0)
err := srcAddr.SetAddress(smsForward.ServiceNumber)
if err != nil {
return nil, err
}
destAddr := pdu.NewAddress()
destAddr.SetTon(1)
destAddr.SetNpi(1)
err = destAddr.SetAddress(phoneNumber)
if err != nil {
return nil, err
}
submitSM := pdu.NewSubmitSM().(*pdu.SubmitSM)
submitSM.SourceAddr = srcAddr
submitSM.DestAddr = destAddr
dataCoding := data.FromDataCoding(smsForward.DataCoding)
err = submitSM.Message.SetMessageWithEncoding(message, dataCoding)
if err != nil {
return nil, err
}
submitSM.ProtocolID = 0
submitSM.RegisteredDelivery = 1
submitSM.ReplaceIfPresentFlag = 0
submitSM.EsmClass = 0
return submitSM, nil
}
// const (
// // Short message data coding type
// SMS_CODING_GSM7BIT byte = iota
// SMS_CODING_ASCII
// SMS_CODING_BINARY8BIT1
// SMS_CODING_LATIN1
// SMS_CODING_BINARY8BIT2
// SMS_CODING_NODEF
// SMS_CODING_CYRILLIC
// SMS_CODING_HEBREW
// SMS_CODING_UCS2
// )
// var codingMap = map[byte]data.Encoding{
// SMS_CODING_GSM7BIT: data.GSM7BIT,
// SMS_CODING_ASCII: data.ASCII,
// SMS_CODING_BINARY8BIT1: data.BINARY8BIT1,
// SMS_CODING_LATIN1: data.LATIN1,
// SMS_CODING_BINARY8BIT2: data.BINARY8BIT2,
// SMS_CODING_CYRILLIC: data.CYRILLIC,
// SMS_CODING_HEBREW: data.HEBREW,
// SMS_CODING_UCS2: data.UCS2,
// }

View File

@@ -1,565 +0,0 @@
package handle
import (
"bytes"
"encoding/json"
"io"
"net/http"
"strconv"
"strings"
"github.com/gorilla/mux"
g "github.com/gosnmp/gosnmp"
"be.ems/lib/config"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/oauth"
"be.ems/lib/services"
"be.ems/lib/session"
)
var TodoList []stTodo
type stTodo struct {
No string
Item string
Value string
}
type ErrorOAuthResponse struct {
Error map[string]interface{}
}
type FailOAuthResponse struct {
Error struct {
ErrorCode string
ErrorInfo string
}
}
type ApiResponse struct {
ResultCode string
ResultMessage interface{}
}
var globalSession = session.NewSessManager("restagent")
func init() {
conf := config.GetYamlConfig()
// Default is a pointer to a GoSNMP struct that contains sensible defaults
// eg port 161, community public, etc
g.Default.Target = conf.NE.Addr
g.Default.Port = conf.NE.Port
err := g.Default.Connect()
if err != nil {
log.Fatalf("Connect() err: %v", err)
}
//defer g.Default.Conn.Close()
}
/*
func IsValidOAuthInfo(oAuthBody OAuthBody) bool {
log.Debug("IsValidOAuthInfo processing... ")
conf := config.GetYamlConfig()
for _, o := range conf.Auth {
if oAuthBody.GrantType == o.Type && oAuthBody.UserName == o.User && oAuthBody.Value == o.Password {
return true
}
}
return false
}
func IsWrongOAuthInfo(oAuthBody OAuthBody) bool {
log.Debug("IsWrongOAuthInfo processing... ")
if oAuthBody.GrantType == "" || strings.ToLower(oAuthBody.GrantType) != "password" || oAuthBody.UserName == "" || oAuthBody.Value == "" {
return true
}
return false
}
*/
func IsValidOAuthUri(r *http.Request) bool {
vars := mux.Vars(r)
Uri := vars["apiCategory"] + "/" + vars["apiVersion"] // 获取Uri
return Uri == "securityManagement/v1"
}
func IsVallidContentType(r *http.Request) bool {
log.Debug("IsVallidContentType processing ...")
ctype := r.Header["Content-Type"]
if len(ctype) != 0 && !strings.Contains(ctype[0], "application/json") {
return false
}
return true
}
func LoginFromOMC(w http.ResponseWriter, r *http.Request) {
log.Debug("LoginFromOMC processing... ")
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen)) //io.LimitReader限制大小
if err != nil {
log.Debug(err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
// check media type(content type) only support "application/json"
/* if !IsVallidContentType(r) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// check extend uri, response 404
if !IsValidOAuthUri(r) {
log.Debug("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
*/
// Error process ....
// response 400-7
if !json.Valid([]byte(body)) {
log.Debug("Invalid Json Format")
services.ResponseBadRequest400InvalidJson(w)
return
}
var oAuthBody oauth.OAuthBody
_ = json.Unmarshal(body, &oAuthBody) //转为json
log.Debug("body:", string(body), "oAuthBody:", oAuthBody)
defer r.Body.Close()
// response 400-5
if oauth.IsWrongOAuthInfo(oAuthBody) {
log.Debug("Wrong parameter value")
services.ResponseBadRequest400WrongParamValue(w)
return
}
/*
if oauth.IsValidOAuthInfo(oAuthBody) {
plist := config.GetPermissionFromConfig(oAuthBody.UserName, oAuthBody.GrantType)
log.Debug("Permission list:", plist)
token := globalSession.NewSession(w, r, plist)
services.ResponseStatusOK200Login(w, token)
} else {
// response 400-4
log.Debug("Authentication failed, mismatch user or password")
services.ResponseBadRequest400IncorrectLogin(w)
}
*/
// response 400-4
log.Error("Authentication failed, mismatch user or password")
services.ResponseBadRequest400IncorrectLogin(w)
}
func LogoutFromOMC(w http.ResponseWriter, r *http.Request) {
// check media type(content type) only support "application/json"
if !IsVallidContentType(r) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// check extend uri, response 404
if !IsValidOAuthUri(r) {
log.Debug("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// error processing ...
// 401-1 response
token, ret := globalSession.IsCarriedToken(r)
if ret {
log.Debug("AccessToken is not carried")
services.ResponseUnauthorized401AccessTokenNotCarried(w)
return
}
// 401-2 response
if globalSession.IsValidToken(token) {
log.Debug("AccessToken fails or does not exist")
services.ResponseUnauthorized401AccessTokenNotExist(w)
return
}
globalSession.EndSession(w, r)
services.ResponseStatusOK200Null(w)
}
func HandshakeFromOMC(w http.ResponseWriter, r *http.Request) {
log.Debug("HandshakeFromOMC processing... ")
// check media type(content type) only support "application/json"
if !IsVallidContentType(r) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// check extend uri, response 404
if !IsValidOAuthUri(r) {
log.Debug("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// error processing ...
// 401-1 response
token, ret := globalSession.IsCarriedToken(r)
if !ret {
log.Debug("AccessToken is not carried")
services.ResponseUnauthorized401AccessTokenNotCarried(w)
return
}
if !globalSession.ShakeSession(token) {
// 401-2 response
log.Debug("AccessToken fails or does not exist")
services.ResponseUnauthorized401AccessTokenNotExist(w)
return
}
// 200 response
services.ResponseStatusOK200Null(w)
}
var (
MAX_RMUID_NUM = config.GetRmUIDMaxNumFromConfig()
MAX_ALARMID_NUM = config.GetAlarmIDMaxNumFromConfig()
MAX_PMUID_NUM = config.GetPmIDMaxNumFromConfig()
MAX_SUBID_NUM = config.GetSubIDMaxNumFromConfig()
MAX_URI_LEN = config.GetUriMaxLenFromConfig()
RMUID_REGEXP = config.GetRmUIDRegexpFromConfig()
)
func CheckParameterName(r *http.Request) []string {
var errorParams []string
vars := r.URL.Query()
for k, v := range vars {
log.Debug("vars:", k, v)
if k != "rmUIDs" && k != "fields" {
errorParams = append(errorParams, k)
}
}
return errorParams
}
func GetRmUIDArr(r *http.Request) []string {
vars := r.URL.Query()
rmUIDs, ok := vars["rmUIDs"]
if !ok {
log.Debug("rmUIDs is not exist")
return nil
}
var rmUIDValues []string
for _, r := range rmUIDs {
if r != "" {
rmUIDValues = global.MergeStringArr(rmUIDValues, strings.Split(r, `,`))
}
}
return rmUIDValues
}
func GetAttrNameArr(r *http.Request) []string {
vars := r.URL.Query()
fields, ok := vars["fields"]
if !ok {
log.Debug("attributeNames does not exist")
return nil
}
var attrNames []string
for _, a := range fields {
if a != "" {
attrNames = global.MergeStringArr(attrNames, strings.Split(a, `,`))
}
}
return attrNames
}
func CheckValidRmUID(rmUIDs []string) []string {
log.Debug("GetLocalRmUID processing... ")
var invalidRmUIDs []string
for _, r := range rmUIDs {
if !global.MatchRmUID(RMUID_REGEXP, r) {
invalidRmUIDs = append(invalidRmUIDs, r)
}
}
return invalidRmUIDs
}
func CheckLocalRmUID(rmUIDs []string) string {
log.Debug("GetLocalRmUID processing... ")
rmUID := config.GetRmUIDFromConfig()
for _, r := range rmUIDs {
if r == rmUID {
return rmUID
}
}
return ""
}
func GetNRMByUri(w http.ResponseWriter, r *http.Request) {
log.Debug("GetNRMByUri processing... ")
// response 414-4 uri too long ? (optional)
// todo ... ?
if bytes.Count([]byte(r.RequestURI), nil) > MAX_URI_LEN {
log.Debug("Request Uri too long:", bytes.Count([]byte(r.RequestURI), nil))
services.ResponseRequestURITooLong414UriTooLong(w)
return
}
// check media type(content type) only support "application/json"
// response 415-1
if !IsVallidContentType(r) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// error processing ...
// 401-1 response
token, ret := globalSession.IsCarriedToken(r)
if !ret {
log.Debug("AccessToken is not carried")
services.ResponseUnauthorized401AccessTokenNotCarried(w)
return
}
// 401-2 response
if globalSession.IsValidToken(token) {
log.Debug("AccessToken fails or does not exist")
services.ResponseUnauthorized401AccessTokenNotExist(w)
return
}
// response 403 Forbidden, permissions deny
// todo...
plist := globalSession.GetPermissionFromSession(token)
log.Debug("permission list:", plist)
if len(plist) == 0 || !plist[0] {
log.Debug("User permission deny")
services.ResponseForbidden403NotPermission(w)
return
}
vars := mux.Vars(r)
qeuryUri := vars["apiCategory"] + "/" + vars["elementTypeValue"] + "/" + vars["objectTypeValue"]
log.Debug("Get by Uri: ", qeuryUri)
apiVer := vars["apiVersion"]
if apiVer != "v1" {
log.Debug("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// response 406-1
rmUIDValues := GetRmUIDArr(r)
if rmUIDValues == nil {
log.Debug("missing parameter: rmUIDs")
services.ResponseNotAcceptable406MissingParam(w)
return
}
// response 406-2
errorParams := CheckParameterName(r)
if errorParams != nil {
log.Debug("parameter name error: ", errorParams)
services.ResponseNotAcceptable406ParamError(w, errorParams)
return
}
// response 400-5
if len(rmUIDValues) == 0 {
log.Debug("rmUIDs is wrong or NULL")
services.ResponseBadRequest400WrongParamValue(w)
return
}
// response 414-1
if len(rmUIDValues) > MAX_RMUID_NUM {
log.Debug("rmUID greater than", MAX_RMUID_NUM)
services.ResponseRequestURITooLong414NRMNumExceed(w, MAX_RMUID_NUM)
return
}
// response 400-1
// check rmUID is valid
// todo ...
invalidRmUIDs := CheckValidRmUID(rmUIDValues)
if len(invalidRmUIDs) != 0 {
log.Debug("rmUID is invalid")
services.ResponseBadRequest400RmUIDsIsInvalid(w, invalidRmUIDs)
return
}
// response 404-2
rmUID := CheckLocalRmUID(rmUIDValues)
if rmUID == "" {
log.Debug("rmUID does not exist")
services.ResponseNotFound404NRMNotExist(w, rmUIDValues)
return
}
// response 404-1, uri is not exist in map
attrNames := GetAttrNameArr(r)
var Oids []string
Oids = *config.GetOidByFileds(qeuryUri, attrNames, &Oids)
if len(Oids) == 0 {
log.Debug("Nothing of config map")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// response 404-1, uri is not exist in map
var nameOids []config.NameOid
nameOids = *config.GetDataOidByFields(qeuryUri, attrNames, &nameOids)
if len(nameOids) == 0 {
log.Debug("Nothing of config map")
services.ResponseNotFound404UriNotExist(w, r)
return
}
result, err2 := g.Default.Get(Oids) // Get() accepts up to g.MAX_OIDS
if err2 != nil {
log.Fatalf("Get() err: %v", err2)
}
// var nameValues []config.NameValue
var nameValue config.NameValue
nameValues := make(map[string]interface{})
nameValues["rmUID"] = rmUID
for i, variable := range result.Variables {
nameValue.Name = nameOids[i].Name
log.Debugf("%d: oid: %s name: %s\n", i, variable.Name, nameValue.Name)
// if nameOids[i].Oid == variable.Name && global.IsContain(attributeNames, nameValue.Name) {
if nameOids[i].Oid == variable.Name {
// the Value of each variable returned by Get() implements
// interface{}. You could do a type switch...
switch variable.Type {
case g.OctetString:
bytes := variable.Value.([]byte)
log.Debugf("string: %s\n", string(bytes))
nameValue.Value = string(bytes)
nameValues[nameValue.Name] = nameValue.Value
case g.Integer:
value := variable.Value.(int)
log.Debugf("integer: %d\n", value)
nameValue.Value = strconv.Itoa(value)
nameValues[nameValue.Name] = nameValue.Value
case g.IPAddress:
value := variable.Value.(string)
log.Debugf("IPAddress: %s\n", variable.Value)
nameValue.Value = value
nameValues[nameValue.Name] = nameValue.Value
default:
// ... or often you're just interested in numeric values.
// ToBigInt() will return the Value as a BigInt, for plugging
// into your calculations.
log.Debugf("number: %d\n", g.ToBigInt(variable.Value))
}
}
}
getResponse := services.DataResponse{Data: nameValues}
services.ResponseWithJson(w, http.StatusOK, getResponse)
}
func RestfulPut(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
queryNo := vars["no"]
var targetTodo stTodo
for _, Todo := range TodoList {
if Todo.No == queryNo {
targetTodo = Todo
}
}
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}
func RestfulHead(w http.ResponseWriter, r *http.Request) {
var targetTodo stTodo
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}
func RemoveElement(TodoList []stTodo, No string) stTodo {
// var targetTodo stTodo
j := 0
if len(TodoList) == 0 {
return TodoList[j]
}
for i := 0; i < len(TodoList); i++ {
if TodoList[i].No != No {
if i != j {
TodoList[i], TodoList[j] = TodoList[j], TodoList[i]
}
j++
}
}
log.Debug(TodoList[j].No, TodoList[j].Item)
return TodoList[j]
}
func RestfulDelete(w http.ResponseWriter, r *http.Request) {
vars := mux.Vars(r)
queryNo := vars["no"] //获取No
log.Debug("RestfulDelete processing... ")
targetTodo := RemoveElement(TodoList, queryNo)
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}
func RestfulOptions(w http.ResponseWriter, r *http.Request) {
var targetTodo stTodo
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}
func RestfulTrace(w http.ResponseWriter, r *http.Request) {
var targetTodo stTodo
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}
func RestfulPatch(w http.ResponseWriter, r *http.Request) {
var targetTodo stTodo
response := ApiResponse{"200", targetTodo}
services.ResponseWithJson(w, http.StatusOK, response)
}

View File

@@ -1,138 +0,0 @@
package file_export
import (
"encoding/json"
"net/http"
"os"
"path/filepath"
"be.ems/lib/file"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"be.ems/src/framework/i18n"
"be.ems/src/framework/reqctx"
"github.com/gin-gonic/gin"
)
type SysJobResponse struct {
SysJob
TableName string `json:"tableName"`
TableDisplay string `json:"tableDisplay"`
FilePath string `json:"filePath"`
}
type TargetParams struct {
Hour int `json:"hour"` // hour
TableName string `json:"tableName"`
Columns []string `json:"columns"`
FilePath string `json:"filePath"` // file path
}
func (m *SysJob) GetFileExportTable(c *gin.Context) {
var results []SysJob
tx := db.DB("").Table("sys_job").Where("invoke_target=?", INVOKE_FILE_EXPORT)
if err := tx.Find(&results).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
language := reqctx.AcceptLanguage(c)
var response []SysJobResponse
for _, job := range results {
var params TargetParams
if err := json.Unmarshal([]byte(job.TargetParams), &params); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
TableDisplay := i18n.TKey(language, "table."+params.TableName)
if TableDisplay == "" {
TableDisplay = params.TableName
}
response = append(response, SysJobResponse{
SysJob: job,
TableName: params.TableName,
TableDisplay: TableDisplay,
FilePath: params.FilePath,
})
}
c.JSON(http.StatusOK, services.DataResp(response))
}
func (m *FileExport) GetFileList(c *gin.Context) {
var querys FileExportQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
files, err := file.GetFileInfo(querys.Path, querys.Suffix)
if err != nil {
log.Error("failed to GetFileInfo:", err)
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// split files list
lenNum := int64(len(files))
start := (querys.PageNum - 1) * querys.PageSize
end := start + querys.PageSize
var splitList []file.FileInfo
if start >= lenNum {
splitList = []file.FileInfo{}
} else if end >= lenNum {
splitList = files[start:]
} else {
splitList = files[start:end]
}
total := len(files)
c.JSON(http.StatusOK, services.TotalDataResp(splitList, total))
}
func (m *FileExport) Total(c *gin.Context) {
dir := c.Query("path")
fileCount, dirCount, err := file.GetFileAndDirCount(dir)
if err != nil {
log.Error("failed to GetFileAndDirCount:", err)
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
total := fileCount + dirCount
c.JSON(http.StatusOK, services.TotalResp(int64(total)))
}
func (m *FileExport) DownloadHandler(c *gin.Context) {
dir := c.Query("path")
fileName := c.Param("fileName")
filePath := filepath.Join(dir, fileName)
file, err := os.Open(filePath)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
defer file.Close()
if _, err := os.Stat(filePath); os.IsNotExist(err) {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.Header("Content-Disposition", "attachment; filename="+fileName)
c.Header("Content-Type", "application/octet-stream")
c.File(filePath)
}
func (m *FileExport) Delete(c *gin.Context) {
fileName := c.Param("fileName")
dir := c.Query("path")
filePath := filepath.Join(dir, fileName)
if err := os.Remove(filePath); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusNoContent, nil) // 204 No Content
}

View File

@@ -1,30 +0,0 @@
package file_export
import (
"be.ems/lib/file"
)
const (
INVOKE_FILE_EXPORT = "exportTable"
)
type SysJob struct {
JobID int64 `gorm:"column:job_id;primary_key;auto_increment" json:"job_id"` //任务ID
InvokeTarget string `gorm:"column:invoke_target" json:"invoke_target"` //调用目标字符串
TargetParams string `gorm:"column:target_params;type:json" json:"target_params,omitempty"` //调用目标传入参数
}
func (m *SysJob) TableName() string {
return "sys_job"
}
type FileExport struct {
file.FileInfo
}
type FileExportQuery struct {
Path string `form:"path" binding:"required"`
Suffix string `form:"suffix"`
PageNum int64 `form:"pageNum" binding:"required"`
PageSize int64 `form:"pageSize" binding:"required"`
}

View File

@@ -1,39 +0,0 @@
package file_export
import (
"be.ems/src/framework/middleware"
"github.com/gin-gonic/gin"
)
// Register Routes for file_export
func Register(r *gin.RouterGroup) {
lmTable := r.Group("/table")
{
var m *SysJob
lmTable.GET("/list",
middleware.AuthorizeUser(nil),
m.GetFileExportTable,
)
}
lmFile := r.Group("/file")
{
var f *FileExport
lmFile.GET("/list",
middleware.AuthorizeUser(nil),
f.GetFileList,
)
lmFile.GET("/total",
middleware.AuthorizeUser(nil),
f.Total,
)
lmFile.GET("/:fileName",
middleware.AuthorizeUser(nil),
f.DownloadHandler,
)
lmFile.DELETE("/:fileName",
middleware.AuthorizeUser(nil),
f.Delete,
)
}
}

View File

@@ -1,103 +0,0 @@
package lm
import (
"fmt"
"net/http"
"os/exec"
"time"
"be.ems/lib/config"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"github.com/gorilla/mux"
)
type XormResponse struct {
Data interface{} `json:"data"`
}
type XormInsertResponse struct {
Data interface{} `json:"data"`
}
var (
ExtBackupDataUri = config.DefaultUriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}/backup" // for external
CustomExtBackupDataUri = config.UriPrefix + "/dataManagement/{apiVersion}/{dataStorage}/{dataObject}/backup" // for external
)
// func init() {
// conf := config.GetYamlConfig()
// InitDbClient(conf.Database.Type, conf.Database.User, conf.Database.Password,
// conf.Database.Host, conf.Database.Port, conf.Database.Name)
// }
func ExtDatabaseBackupData(w http.ResponseWriter, r *http.Request) {
log.Debug("ExtDatabaseBackupData processing... ")
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
vars := mux.Vars(r)
module := vars["managementModule"]
dbname := vars["dataStorage"]
tbname := vars["dataObject"]
pack := "lm"
log.Debugf("method:%s, module:%s dbname:%s, tbname:%s pack:%s", r.Method, module, dbname, tbname, pack)
// exist, err := services.CheckUserPermission(token, strings.ToLower(r.Method), module, dbname, tbname, pack)
// if err != nil {
// log.Error("Failed to get permission:", err)
// services.ResponseForbidden403NotPermission(w)
// return
// }
// if !exist {
// log.Error("permission deny!")
// services.ResponseForbidden403NotPermission(w)
// return
// }
var sql string
var filePath string
switch tbname {
case "operation_log":
filePath = fmt.Sprintf("/tmp/%s-%s.csv", tbname, time.Now().Local().Format(global.DateData))
sql = fmt.Sprintf("select * into outfile '%s' fields terminated by ',' escaped by '' optionally enclosed by '' lines terminated by '\n' from (select 'op_id','account_name','op_ip','subsys_tag','op_type','op_content','op_result','begin_time','end_time','vnf_flag','log_time' union select op_id,account_name,op_ip,subsys_tag,op_type,op_content,op_result,begin_time,end_time,vnf_flag,log_time from operation_log) b", filePath)
case "security_log":
filePath = fmt.Sprintf("/tmp/%s-%s.csv", tbname, time.Now().Local().Format(global.DateData))
sql = fmt.Sprintf("select * into outfile '%s' fields terminated by ',' escaped by '' optionally enclosed by '' lines terminated by '\n' from (select 'id','account_name','account_type','op_ip','op_type','op_content','op_result','op_time' union select id,account_name,account_type,op_ip,op_type,op_content,op_result,op_time from security_log) b", filePath)
case "alarm_log":
filePath = fmt.Sprintf("/tmp/%s-%s.csv", tbname, time.Now().Local().Format(global.DateData))
sql = fmt.Sprintf("select * into outfile '%s' fields terminated by ',' escaped by '' optionally enclosed by '' lines terminated by '\n' from (select 'id','ne_type','ne_id','alarm_seq','alarm_id','alarm_code','alarm_status','event_time','log_time' union select id,ne_type,ne_id,alarm_seq,alarm_id,alarm_code,alarm_status,event_time,log_time from alarm_log) b", filePath)
default:
log.Error("error target table")
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
affected, err := db.ExecDB("", sql, nil)
if err != nil {
log.Error("Failed to exec SQL:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
log.Debugf("filePath:%s backup dir:%s", filePath, config.GetYamlConfig().OMC.Backup)
cmd := exec.Command("cp", "-rf", filePath, config.GetYamlConfig().OMC.Backup)
out, err := cmd.CombinedOutput()
log.Debugf("Exec output: %v", string(out))
if err != nil {
log.Error("Faile to exec:", err)
services.ResponseInternalServerError500ProcessError(w, err)
return
}
mapRow := make(map[string]interface{})
row := map[string]interface{}{"affectedRows": affected}
mapRow[tbname] = row
services.ResponseWithJson(w, http.StatusOK, mapRow)
}

View File

@@ -1,17 +0,0 @@
// log management package
package lm
import (
"be.ems/features/lm/file_export"
"be.ems/lib/log"
"github.com/gin-gonic/gin"
)
func InitSubServiceRoute(r *gin.Engine) {
log.Info("======init Log management group gin.Engine")
lmGroup := r.Group("/lm")
// register sub modules routes
file_export.Register(lmGroup)
}

View File

@@ -1,705 +0,0 @@
package mml
import (
"encoding/json"
"fmt"
"io"
"net"
"net/http"
"regexp"
"strings"
"time"
"be.ems/lib/config"
"be.ems/lib/core/ctx"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/mmlp"
"be.ems/lib/services"
"be.ems/src/framework/constants"
neModel "be.ems/src/modules/network_element/model"
neService "be.ems/src/modules/network_element/service"
)
// const (
// //经过测试linux下延时需要大于100ms
// TIME_DELAY_AFTER_WRITE = 200
// TIME_DEAD_LINE = 10
// )
type Response struct {
Data []string `json:"data"`
}
type MMLRequest struct {
MML []string `json:"mml"`
}
var (
// MML interface
UriMML = config.DefaultUriPrefix + "/operationManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/mml"
UriMML2 = config.DefaultUriPrefix + "/operationManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/mml2"
UriMMLDiscard = config.DefaultUriPrefix + "/opeartionManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/mml"
UriNeOmMml = config.DefaultUriPrefix + "/omManagement/{apiVersion}/mml/{netype}/{neid}"
UriOmMmlExt = config.DefaultUriPrefix + "/{managedType}/{apiVersion}/elementType/OMC/objectType/mml"
UriOmMmlInt = config.DefaultUriPrefix + "/omManagement/{apiVersion}/mml/{neType}/{neId}"
CustomUriMML = config.UriPrefix + "/operationManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/mml"
CustomUriMML2 = config.UriPrefix + "/operationManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/mml2"
CustomUriNeOmMml = config.UriPrefix + "/omManagement/{apiVersion}/mml/{netype}/{neid}"
CustomUriOmMmlExt = config.UriPrefix + "/opeartionManagement/{apiVersion}/elementType/OMC/objectType/mml"
CustomUriOmMmlInt = config.UriPrefix + "/omManagement/{apiVersion}/mml/{neType}/{neId}"
)
var (
TIME_DELAY_AFTER_WRITE time.Duration = 200
TIME_DEAD_LINE time.Duration = 10
WIN_ROW_SIZE int16 = 200
WIN_COL_SIZE int16 = 120
BUFFER_SIZE int = 65535
)
func InitMML() {
if config.GetYamlConfig().MML.Sleep != 0 {
TIME_DELAY_AFTER_WRITE = time.Duration(config.GetYamlConfig().MML.Sleep)
}
if config.GetYamlConfig().MML.DeadLine != 0 {
TIME_DEAD_LINE = time.Duration(config.GetYamlConfig().MML.DeadLine)
}
WIN_ROW_SIZE = config.GetYamlConfig().MML.SizeRow
WIN_COL_SIZE = config.GetYamlConfig().MML.SizeCol
BUFFER_SIZE = config.GetYamlConfig().MML.BufferSize
}
func PostMML2ToNF(w http.ResponseWriter, r *http.Request) {
log.Info("PostMML2ToNF processing... ")
neType := ctx.GetParam(r, "elementTypeValue")
neId := ctx.GetQuery(r, "ne_id")
if neId == "" {
log.Error("NOT FOUND ne_id")
services.ResponseBadRequest400WrongParamValue(w)
return
}
log.Debug("neType:", neType, "neId", neId)
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, true)
if len(neInfoArr) < 1 {
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
neInfo := neInfoArr[0]
if neInfo.NeId != neId || neInfo.IP == "" || len(neInfo.Hosts) < 2 {
services.ResponseWithJson(w, 200, map[string]any{
"code": 0,
"msg": "neInfo not found",
})
return
}
telnetHost := neInfo.Hosts[1]
buf := make([]byte, BUFFER_SIZE)
var n int
var mmlResult []string
hostMML := net.JoinHostPort(telnetHost.Addr, fmt.Sprintf("%d", telnetHost.Port))
conn, err := net.Dial("tcp", hostMML)
if err != nil {
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
defer conn.Close()
// localAddr := conn.LocalAddr()
// remoteAddr := conn.RemoteAddr()
// if localAddr == nil || remoteAddr == nil {
// errMsg := fmt.Sprintf("connect invalid: localAddr=%v, remoteAddr=%v", localAddr, remoteAddr)
// log.Error(errMsg)
// mmlResult = append(mmlResult, errMsg)
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// 发送窗口大小设置命令
conn.Write([]byte{255, 251, 31}) // 发送WILL WINDOW SIZE
conn.Write([]byte{
255, 250, 31,
byte(WIN_COL_SIZE >> 8), byte(WIN_COL_SIZE & 0xFF),
byte(WIN_ROW_SIZE >> 8), byte(WIN_ROW_SIZE & 0xFF),
255, 240,
}) // 发送设置 WINDOW SIZE
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
loginStr := fmt.Sprintf("%s\n%s\n", telnetHost.User, telnetHost.Password)
_, err = conn.Write([]byte(loginStr))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
log.Trace(string(buf[0:n]))
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("Failed to ReadAll:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
mmlRequest := new(MMLRequest)
_ = json.Unmarshal(body, mmlRequest)
for _, mml := range mmlRequest.MML {
mmlCommand := fmt.Sprintf("%s\n", mml)
_, err = conn.Write([]byte(mmlCommand))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
log.Trace(string(buf[0 : n-len(neType)-2]))
re1 := regexp.MustCompile(`\x1B\[[0-9;]*[a-zA-Z]`) // 匹配包含␛的控制字符
//re2 := regexp.MustCompile(`\x00`) // 匹配空字符
re2 := regexp.MustCompile(`[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x1B]`) // 匹配空字符和包含␛的控制字符
//re := regexp.MustCompile(`[\x00-\x1F\x7F]`)
result := re1.ReplaceAllString(string(buf[0:n]), "")
result = re2.ReplaceAllString(result, "")
mmlResult = append(mmlResult, result)
}
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
}
func PostMMLToNF(w http.ResponseWriter, r *http.Request) {
log.Debug("PostMMLToNF processing... ")
// token, err := services.CheckExtValidRequest(w, r)
// if err != nil {
// log.Error("Request error:", err)
// return
// }
// 经过测试linux下延时需要大于100ms
// var TIME_DELAY_AFTER_WRITE time.Duration = 200
// var TIME_DEAD_LINE time.Duration = 10
// if config.GetYamlConfig().MML.Sleep != 0 {
// TIME_DELAY_AFTER_WRITE = time.Duration(config.GetYamlConfig().MML.Sleep)
// }
// if config.GetYamlConfig().MML.DeadLine != 0 {
// TIME_DEAD_LINE = time.Duration(config.GetYamlConfig().MML.DeadLine)
// }
neType := ctx.GetParam(r, "elementTypeValue")
neId := ctx.GetQuery(r, "ne_id")
if neId == "" {
log.Error("NOT FOUND ne_id")
services.ResponseBadRequest400WrongParamValue(w)
return
}
log.Debug("neType:", neType, "neId", neId)
if strings.ToLower(neType) == "omc" {
PostMMLToOMC(w, r)
return
}
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, true)
if len(neInfoArr) < 1 {
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
neInfo := neInfoArr[0]
if neInfo.NeId != neId || neInfo.IP == "" || len(neInfo.Hosts) < 2 {
services.ResponseWithJson(w, 200, map[string]any{
"code": 0,
"msg": "neInfo not found",
})
return
}
telnetHost := neInfo.Hosts[1]
var buf [20 * 1024]byte
//buf := make([]byte, 0)
var n int
var mmlResult []string
switch strings.ToLower(neType) {
case "xxx":
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
mmlRequest := new(MMLRequest)
_ = json.Unmarshal(body, mmlRequest)
// n, err = conn.Read(buf[0:])
// if err != nil {
// log.Error("Failed to read:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// log.Debug(string(buf[0:n]))
// hostMML := fmt.Sprintf("%s:%d", neInfo.Ip, config.GetYamlConfig().MML.Port)
// conn, err := net.Dial("tcp", hostMML)
// if err != nil {
// errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
// log.Error(errMsg)
// mmlResult = append(mmlResult, errMsg)
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// defer conn.Close()
// conn.SetDeadline(time.Now().Add(10 * time.Second))
// loginStr := fmt.Sprintf("%s\n%s\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
// _, err = conn.Write([]byte(loginStr))
// if err != nil {
// log.Error("Failed to write:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
// n, err = conn.Write([]byte(config.GetYamlConfig().MML.User + "\n"))
// if err != nil {
// log.Error("Failed to write:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// log.Debug(string(buf[0:n]))
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
// n, err = conn.Read(buf[0:])
// if err != nil {
// log.Error("Failed to read:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// log.Debug(string(buf[0:n]))
// n, err = conn.Write([]byte(config.GetYamlConfig().MML.Password + "\n"))
// if err != nil {
// log.Error("Failed to write:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// log.Debug(string(buf[0:n]))
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
// n, err = conn.Read(buf[0:])
// if err != nil {
// log.Error("Failed to read:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// log.Debug(string(buf[0:n]))
for _, mml := range mmlRequest.MML {
hostMML := net.JoinHostPort(telnetHost.Addr, fmt.Sprintf("%d", telnetHost.Port))
conn, err := net.Dial("tcp", hostMML)
if err != nil {
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
defer conn.Close()
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
loginStr := fmt.Sprintf("%s\n%s\n", telnetHost.User, telnetHost.Password)
_, err = conn.Write([]byte(loginStr))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
//response := Response{mmlResult}
//services.ResponseWithJson(w, http.StatusOK, response)
//return
continue
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
mmlCommand := fmt.Sprintf("%s\n", mml)
log.Debug("mml command:", mmlCommand)
_, err = conn.Write([]byte(mmlCommand))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
//response := Response{mmlResult}
//services.ResponseWithJson(w, http.StatusOK, response)
//return
continue
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
//response := Response{mmlResult}
//services.ResponseWithJson(w, http.StatusOK, response)
//return
continue
}
log.Trace(string(buf[0 : n-len(neType)-2]))
re1 := regexp.MustCompile(`\x1B\[[0-9;]*[a-zA-Z]`) // 匹配包含␛的控制字符
//re2 := regexp.MustCompile(`\x00`) // 匹配空字符
re2 := regexp.MustCompile(`[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x1B]`) // 匹配空字符和包含␛的控制字符
//re := regexp.MustCompile(`[\x00-\x1F\x7F]`)
// upf telnet buffer只能读取一次需要去掉前面的多余字符
//result := re1.ReplaceAllString(string(buf[config.GetYamlConfig().MML.UpfHeaderLength:n-len(neType)-2]), "")
result := re1.ReplaceAllString(string(buf[0:n-len(neType)-2]), "")
result = re2.ReplaceAllString(result, "")
mmlResult = append(mmlResult, result)
conn.Close()
//mmlResult = append(mmlResult, string(buf[0:n-len(neType)-2]))
// can't read buffer from upf telnet server, so return ok always
// mmlResult = append(mmlResult, "COMMAND OK\n")
}
case "ims":
hostMML := net.JoinHostPort(telnetHost.Addr, fmt.Sprintf("%d", telnetHost.Port))
conn, err := net.Dial("tcp", hostMML)
if err != nil {
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
defer conn.Close()
// localAddr := conn.LocalAddr()
// remoteAddr := conn.RemoteAddr()
// if localAddr == nil || remoteAddr == nil {
// errMsg := fmt.Sprintf("connect invalid: localAddr=%v, remoteAddr=%v", localAddr, remoteAddr)
// log.Error(errMsg)
// mmlResult = append(mmlResult, errMsg)
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
_, err = conn.Write([]byte(telnetHost.User + "\r\n"))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
log.Trace(string(buf[0:n]))
_, err = conn.Write([]byte(telnetHost.Password + "\r\n"))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
// loginStr := fmt.Sprintf("%s\r\n%s\r\n", config.GetYamlConfig().MML.User, config.GetYamlConfig().MML.Password)
// _, err = conn.Write([]byte(loginStr))
// if err != nil {
// log.Error("Failed to write:", err)
// mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
// time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
log.Trace(string(buf[0 : n-len(neType)-2]))
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
mmlRequest := new(MMLRequest)
_ = json.Unmarshal(body, mmlRequest)
for _, mml := range mmlRequest.MML {
mmlCommand := fmt.Sprintf("%s\r\n", mml)
log.Debug("mml command:", mmlCommand)
_, err = conn.Write([]byte(mmlCommand))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
log.Trace(string(buf[0 : n-len(neType)-2]))
re1 := regexp.MustCompile(`\x1B\[[0-9;]*[a-zA-Z]`) // 匹配包含␛的控制字符
//re2 := regexp.MustCompile(`\x00`) // 匹配空字符
re2 := regexp.MustCompile(`[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x1B]`) // 匹配空字符和包含␛的控制字符
//re := regexp.MustCompile(`[\x00-\x1F\x7F]`)
result := re1.ReplaceAllString(string(buf[0:n-len(neType)-2]), "")
result = re2.ReplaceAllString(result, "")
mmlResult = append(mmlResult, result)
}
default:
hostMML := net.JoinHostPort(telnetHost.Addr, fmt.Sprintf("%d", telnetHost.Port))
conn, err := net.Dial("tcp", hostMML)
if err != nil {
errMsg := fmt.Sprintf("Failed to dial %s: %v", hostMML, err)
log.Error(errMsg)
mmlResult = append(mmlResult, errMsg)
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
defer conn.Close()
// localAddr := conn.LocalAddr()
// remoteAddr := conn.RemoteAddr()
// if localAddr == nil || remoteAddr == nil {
// errMsg := fmt.Sprintf("connect invalid: localAddr=%v, remoteAddr=%v", localAddr, remoteAddr)
// log.Error(errMsg)
// mmlResult = append(mmlResult, errMsg)
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
// }
conn.SetDeadline(time.Now().Add(TIME_DEAD_LINE * time.Second))
loginStr := fmt.Sprintf("%s\n%s\n", telnetHost.User, telnetHost.Password)
_, err = conn.Write([]byte(loginStr))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
return
}
log.Trace(string(buf[0:n]))
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("Failed to ReadAll:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
mmlRequest := new(MMLRequest)
_ = json.Unmarshal(body, mmlRequest)
for _, mml := range mmlRequest.MML {
mmlCommand := fmt.Sprintf("%s\n", mml)
_, err = conn.Write([]byte(mmlCommand))
if err != nil {
log.Error("Failed to write:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
time.Sleep(time.Millisecond * TIME_DELAY_AFTER_WRITE)
n, err = conn.Read(buf[0:])
if err != nil {
log.Error("Failed to read:", err)
mmlResult = append(mmlResult, err.Error())
// response := Response{mmlResult}
// services.ResponseWithJson(w, http.StatusOK, response)
// return
continue
}
log.Trace(string(buf[0 : n-len(neType)-2]))
re1 := regexp.MustCompile(`\x1B\[[0-9;]*[a-zA-Z]`) // 匹配包含␛的控制字符
//re2 := regexp.MustCompile(`\x00`) // 匹配空字符
re2 := regexp.MustCompile(`[\x00-\x08\x0B\x0C\x0E-\x1F\x7F\x1B]`) // 匹配空字符和包含␛的控制字符
//re := regexp.MustCompile(`[\x00-\x1F\x7F]`)
result := re1.ReplaceAllString(string(buf[0:n-len(neType)-2]), "")
result = re2.ReplaceAllString(result, "")
mmlResult = append(mmlResult, result)
// UDM 特殊命令处理
if neType == "UDM" && mml == "dec key" {
output, err := neService.NewNeInfo.NeRunSSHCmd(neInfo.NeType, neInfo.NeId, "cat /usr/local/etc/udm/ueKeyProfile.tmp")
if err != nil {
mmlResult = append(mmlResult, err.Error())
} else {
mmlResult = append(mmlResult, output)
}
}
}
}
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
}
func PostMMLToOMC(w http.ResponseWriter, r *http.Request) {
log.Debug("PostMMLToOMC processing... ")
neType := "OMC" //ctx.GetParam(r, "elementTypeValue")
neId := ctx.GetQuery(r, "ne_id")
if neId == "" {
log.Error("NOT FOUND ne_id")
services.ResponseBadRequest400WrongParamValue(w)
return
}
log.Debug("neType:", neType, "neId", neId)
neInfoArr := neService.NewNeInfo.Find(neModel.NeInfo{NeType: neType, NeId: neId}, false, false)
if len(neInfoArr) < 1 {
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
neInfo := neInfoArr[0]
if neInfo.NeId != neId || neInfo.IP == "" {
services.ResponseWithJson(w, 200, map[string]any{
"code": 0,
"msg": "neInfo not found",
})
return
}
body, err := io.ReadAll(io.LimitReader(r.Body, global.RequestBodyMaxLen))
if err != nil {
log.Error("io.ReadAll is failed:", err)
services.ResponseNotFound404UriNotExist(w, r)
return
}
log.Trace("Body:", string(body))
hostUri := fmt.Sprintf("http://%s:%d", neInfo.IP, neInfo.Port)
omcMmlVar := &mmlp.MmlVar{
Version: global.Version,
Output: mmlp.DefaultFormatType,
MmlHome: config.GetYamlConfig().MML.MmlHome,
Limit: 50,
User: "",
SessionToken: "", // 旧token
Authorization: r.Header.Get(constants.HEADER_KEY), // 请求Token
HttpUri: hostUri,
UserAgent: config.GetDefaultUserAgent(),
}
mmlRequest := new(MMLRequest)
_ = json.Unmarshal(body, mmlRequest)
var mmlResult []string
mmlLine := strings.Join(mmlRequest.MML, ";")
var mmlCmds []mmlp.MmlCommand
if err = mmlp.ParseMMLCommand(mmlLine, &mmlCmds); err != nil {
response := fmt.Sprintf("parse command error: %v\n", err)
mmlResult = append(mmlResult, response)
}
for _, mmlCmd := range mmlCmds {
output, err := mmlp.TransMml2HttpReq(omcMmlVar, &mmlCmd)
if err != nil {
response := fmt.Sprintf("translate MML command error: %v]\n", err)
mmlResult = append(mmlResult, response)
}
mmlResult = append(mmlResult, string(*output))
}
response := Response{mmlResult}
services.ResponseWithJson(w, http.StatusOK, response)
}

View File

@@ -1,257 +0,0 @@
package nbi_file
import (
"archive/zip"
"fmt"
"io"
"net/http"
"os"
"path/filepath"
"time"
"be.ems/lib/dborm"
"be.ems/lib/file"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/services"
"github.com/gin-gonic/gin"
)
type SysJobResponse struct {
SysJob
TableName string `json:"tableName"`
TableDisplay string `json:"tableDisplay"`
FilePath string `json:"filePath"`
}
type TargetParams struct {
Duration int `json:"duration"`
TableName string `json:"tableName"`
Columns string `json:"columns"` // exported column name of time string
TimeCol string `json:"timeCol"` // time stamp of column name
TimeUnit string `json:"timeUnit"` // timestamp unit: second/micro/milli
Extras string `json:"extras"` // extras condition for where
FilePath string `json:"filePath"` // file path
}
func (m *FileNBI) GetFileList(c *gin.Context) {
var querys FileNBIQuery
querys.Category = c.Param("category")
querys.Type = c.Param("type")
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
if querys.Path == "" {
tableName := ""
ok := false
switch querys.Category {
case "cdr":
tableName, ok = CDRTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid CDR file type: %s", querys.Type)))
return
}
case "log":
tableName, ok = LogTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file type: %s", querys.Type)))
return
}
default:
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file category: %s", querys.Category)))
return
}
s := SysJob{}
where := fmt.Sprintf("invoke_target='%s' and status=1 and JSON_UNQUOTE(JSON_EXTRACT(target_params,'$.tableName'))='%s'", INVOKE_FILE_EXPORT, tableName)
_, err := dborm.XEngDB().Table(s.TableName()).
Select("JSON_UNQUOTE(JSON_EXTRACT(target_params, '$.filePath')) as file_path").
Where(where).
Get(&querys.Path)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
}
files, err := file.GetFileInfo(querys.Path, querys.Suffix)
if err != nil {
log.Error("failed to GetFileInfo:", err)
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// split files list
lenNum := int64(len(files))
start := (querys.PageNum - 1) * querys.PageSize
end := start + querys.PageSize
var splitList []file.FileInfo
if start >= lenNum {
splitList = []file.FileInfo{}
} else if end >= lenNum {
splitList = files[start:]
} else {
splitList = files[start:end]
}
total := len(files)
c.JSON(http.StatusOK, services.TotalDataResp(splitList, total))
}
func (m *FileNBI) Total(c *gin.Context) {
dir := c.Query("path")
fileCount, dirCount, err := file.GetFileAndDirCount(dir)
if err != nil {
log.Error("failed to GetFileAndDirCount:", err)
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
total := fileCount + dirCount
c.JSON(http.StatusOK, services.TotalResp(int64(total)))
}
func (m *FileNBI) GetSingleFileHandler(c *gin.Context) {
var querys FileNBIQuery
querys.Category = c.Param("category")
querys.Type = c.Param("type")
querys.DateIndex = c.Param("dateIndex")
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
tableName := ""
if querys.Path == "" {
ok := false
switch querys.Category {
case "cdr":
tableName, ok = CDRTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid CDR file type: %s", querys.Type)))
return
}
case "log":
tableName, ok = LogTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file type: %s", querys.Type)))
return
}
default:
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file category: %s", querys.Category)))
return
}
s := SysJob{}
where := fmt.Sprintf("invoke_target='%s' and status=1 and JSON_UNQUOTE(JSON_EXTRACT(target_params,'$.tableName'))='%s'", INVOKE_FILE_EXPORT, tableName)
_, err := dborm.XEngDB().Table(s.TableName()).
Select("JSON_UNQUOTE(JSON_EXTRACT(target_params, '$.filePath')) as file_path").
Where(where).
Get(&querys.Path)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
}
fileName := tableName + "_export_" + querys.DateIndex + "0000" + ".csv"
filePath := filepath.Join(querys.Path, fileName)
file, err := os.Open(filePath)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
defer file.Close()
if _, err := os.Stat(filePath); os.IsNotExist(err) {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.Header("Content-Disposition", "attachment; filename="+fileName)
c.Header("Content-Type", "application/octet-stream")
c.File(filePath)
}
func (m *FileNBI) GetMultiFileHandler(c *gin.Context) {
var querys FileNBIQuery
querys.Category = c.Param("category")
querys.Type = c.Param("type")
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
tableName := ""
if querys.Path == "" {
ok := false
switch querys.Category {
case "cdr":
tableName, ok = CDRTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid CDR file type: %s", querys.Type)))
return
}
case "log":
tableName, ok = LogTableMapper[querys.Type]
if tableName == "" || !ok {
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file type: %s", querys.Type)))
return
}
default:
c.JSON(http.StatusOK, services.ErrResp(fmt.Sprintf("invalid log file category: %s", querys.Category)))
return
}
s := SysJob{}
where := fmt.Sprintf("invoke_target='%s' and status=1 and JSON_UNQUOTE(JSON_EXTRACT(target_params,'$.tableName'))='%s'", INVOKE_FILE_EXPORT, tableName)
_, err := dborm.XEngDB().Table(s.TableName()).
Select("JSON_UNQUOTE(JSON_EXTRACT(target_params, '$.filePath')) as file_path").
Where(where).
Get(&querys.Path)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
}
zipWriter := zip.NewWriter(c.Writer)
defer zipWriter.Close()
for _, fileName := range querys.FileNames {
filePath := filepath.Join(querys.Path, fileName)
file, err := os.Open(filePath)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
defer file.Close()
if _, err := os.Stat(filePath); os.IsNotExist(err) {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
writer, err := zipWriter.Create(filepath.Base(fileName))
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
if _, err := io.Copy(writer, file); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
}
zipFile := tableName + "_export_" + time.Now().Local().Format(global.DateData) + ".zip"
c.Header("Content-Disposition", "attachment; filename="+zipFile)
c.Header("Content-Type", "application/zip")
//c.File(filePath)
}

View File

@@ -1,47 +0,0 @@
package nbi_file
import (
"be.ems/lib/file"
)
const (
INVOKE_FILE_EXPORT = "exportTable"
)
var CDRTableMapper map[string]string = map[string]string{
"ims": "cdr_event_ims",
"smf": "cdr_event_smf",
"smsc": "cdr_event_smsc",
"sms": "cdr_event_smsc",
}
var LogTableMapper map[string]string = map[string]string{
"operate": "sys_log_operate",
"security": "sys_log_login",
"alarm": "alarm_log",
}
type SysJob struct {
JobID int64 `gorm:"column:job_id;primary_key;auto_increment" json:"job_id"` //任务ID
InvokeTarget string `gorm:"column:invoke_target" json:"invoke_target"` //调用目标字符串
TargetParams string `gorm:"column:target_params;type:json" json:"target_params,omitempty"` //调用目标传入参数
}
func (s *SysJob) TableName() string {
return "sys_job"
}
type FileNBI struct {
file.FileInfo
}
type FileNBIQuery struct {
Category string `form:"category" binding:"required"`
Type string `form:"type" binding:"required"`
DateIndex string `form:"dateIndex"`
Path string `json:"path" form:"path"`
FileNames []string `json:"fileName" form:"fileName"`
Suffix string `form:"suffix"`
PageNum int64 `form:"pageNum"`
PageSize int64 `form:"pageSize"`
}

View File

@@ -1,26 +0,0 @@
package nbi_file
import (
"be.ems/src/framework/middleware"
"github.com/gin-gonic/gin"
)
// Register Routes for file_export
func Register(r *gin.RouterGroup) {
fileNBI := r.Group("/file")
{
var f *FileNBI
fileNBI.GET("/:category/:type/list",
middleware.AuthorizeUser(nil),
f.GetFileList,
)
fileNBI.GET("/:category/:type/:dateIndex",
middleware.AuthorizeUser(nil),
f.GetSingleFileHandler,
)
fileNBI.GET("/:category/:type",
middleware.AuthorizeUser(nil),
f.GetMultiFileHandler,
)
}
}

View File

@@ -1,258 +0,0 @@
package nbi
import (
"bytes"
"fmt"
"net/http"
"strings"
"be.ems/lib/dborm"
"github.com/go-resty/resty/v2"
"github.com/gorilla/mux"
"be.ems/lib/config"
"be.ems/lib/global"
"be.ems/lib/log"
"be.ems/lib/oauth"
"be.ems/lib/services"
)
type ErrorOAuthResponse struct {
Error map[string]interface{}
}
type FailOAuthResponse struct {
Error struct {
ErrorCode string
ErrorInfo string
}
}
type ApiResponse struct {
ResultCode string
ResultMessage interface{}
}
//var globalSession = session.NewSessManager("restagent")
var (
MAX_RMUID_NUM int
MAX_ALARMID_NUM int
MAX_PMUID_NUM int
MAX_SUBID_NUM int
MAX_URI_LEN int
RMUID_REGEXP string
)
var (
// Northbound interface
GetNRMUri = config.DefaultUriPrefix + "/resourceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}"
NorthboundGetAlarmUri = config.DefaultUriPrefix + "/faultManagement/{apiVersion}/alarms" // ?alarmIds={alarmIdValues}
CustomGetNRMUri = config.UriPrefix + "/resourceManagement/{apiVersion}/elementType/{elementTypeValue}/objectType/{objectTypeValue}"
)
func CheckParameterName(r *http.Request) []string {
var errorParams []string
vars := r.URL.Query()
for k, v := range vars {
log.Debug("vars:", k, v)
if k != "rmUIDs" && k != "fields" {
errorParams = append(errorParams, k)
}
}
return errorParams
}
func GetRmUIDArr(r *http.Request) []string {
vars := r.URL.Query()
rmUIDs, ok := vars["rmUIDs"]
if !ok {
log.Debug("rmUIDs is not exist")
return nil
}
var rmUIDValues []string
for _, r := range rmUIDs {
if r != "" {
rmUIDValues = global.MergeStringArr(rmUIDValues, strings.Split(r, `,`))
}
}
return rmUIDValues
}
func GetAttrNameArr(r *http.Request) []string {
vars := r.URL.Query()
fields, ok := vars["fields"]
if !ok {
log.Debug("attributeNames does not exist")
return nil
}
var attrNames []string
for _, a := range fields {
if a != "" {
attrNames = global.MergeStringArr(attrNames, strings.Split(a, `,`))
}
}
return attrNames
}
func CheckValidRmUID(rmUIDs []string) []string {
log.Debug("CheckValidRmUID processing... ")
var invalidRmUIDs []string
for _, r := range rmUIDs {
if !global.MatchRmUID(RMUID_REGEXP, r) {
invalidRmUIDs = append(invalidRmUIDs, r)
}
}
return invalidRmUIDs
}
func CheckLocalRmUID(rmUIDs []string) string {
log.Debug("GetLocalRmUID processing... ")
rmUID := config.GetRmUIDFromConfig()
for _, r := range rmUIDs {
if r == rmUID {
return rmUID
}
}
return ""
}
func NBIGetNRMFromNF(w http.ResponseWriter, r *http.Request) {
log.Debug("NBIGetNRMFromNF processing... ")
// response 414-4 uri too long ? (optional)
// todo ... ?
if bytes.Count([]byte(r.RequestURI), nil) > config.GetUriMaxLenFromConfig() {
log.Error("Request Uri too long:", bytes.Count([]byte(r.RequestURI), nil), config.GetUriMaxLenFromConfig())
services.ResponseRequestURITooLong414UriTooLong(w)
return
}
// check media type(content type) only support "application/json"
// response 415-1
if !services.IsVallidContentType(r, config.GetYamlConfig().OMC.CheckContentType) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// error processing ...
// 401-1 response
token, ret := oauth.IsCarriedToken(r)
if ret == false {
log.Error("AccessToken is not carried")
services.ResponseUnauthorized401AccessTokenNotCarried(w)
return
}
// 401-2 response
if dborm.XormExistValidToken(token, config.GetExpiresFromConfig()) == false {
log.Error("AccessToken fails or does not exist")
services.ResponseUnauthorized401AccessTokenNotExist(w)
return
}
_, err := dborm.XormUpdateSessionShakeTime(token)
if err != nil {
log.Error("Failed to update session table:", err)
services.ResponseUnauthorized401AccessTokenNotExist(w)
return
}
/*
// response 403 Forbidden, permissions deny
// todo...
plist := globalSession.GetPermissionFromSession(token)
log.Debug("permission list:", plist)
if len(plist) == 0 || plist[0] == false {
log.Debug("User permission deny")
services.ResponseForbidden403NotPermission(w)
return
}
*/
vars := mux.Vars(r)
neType := vars["elementTypeValue"]
apiVer := vars["apiVersion"]
if apiVer != "v1" {
log.Error("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// response 406-1
rmUIDValues := GetRmUIDArr(r)
if rmUIDValues == nil {
log.Error("missing parameter: rmUIDs")
services.ResponseNotAcceptable406MissingParam(w)
return
}
// response 406-2
errorParams := CheckParameterName(r)
if errorParams != nil {
log.Error("parameter name error: ", errorParams)
services.ResponseNotAcceptable406ParamError(w, errorParams)
return
}
// response 400-5
if len(rmUIDValues) == 0 {
log.Error("rmUIDs is wrong or NULL")
services.ResponseBadRequest400WrongParamValue(w)
return
}
// response 414-1
if len(rmUIDValues) > config.GetYamlConfig().Params.RmUIDMaxNum {
log.Error("rmUID greater than", config.GetYamlConfig().Params.RmUIDMaxNum)
services.ResponseRequestURITooLong414NRMNumExceed(w, config.GetYamlConfig().Params.RmUIDMaxNum)
return
}
var response *resty.Response
respMsg := make(map[string]interface{})
for _, rmUID := range rmUIDValues {
neInfo, err := dborm.XormGetNeInfoByRmUID(neType, rmUID)
if err != nil {
log.Error("dborm.XormGetNeInfo is failed:", err)
services.ResponseInternalServerError500DatabaseOperationFailed(w)
return
}
requestURI2NF := fmt.Sprintf("http://%s:%v%s", neInfo.Ip, neInfo.Port, r.RequestURI)
log.Debug("requestURI2NF: GET ", requestURI2NF)
client := resty.New()
response, err = client.R().
EnableTrace().
SetHeaders(map[string]string{"User-Agent": config.GetDefaultUserAgent()}).
SetHeaders(map[string]string{"Content-Type": "application/json;charset=UTF-8"}).
Get(requestURI2NF)
if err != nil {
log.Error("Failed to Get from NF:", err)
services.ResponseInternalServerError500NFConnectRefused(w)
return
}
switch response.StatusCode() {
case http.StatusOK, http.StatusAccepted, http.StatusNoContent, http.StatusCreated:
respMsg["data"] = response
default:
if response != nil {
services.TransportResponse(w, response.StatusCode(), response.Body())
}
}
}
services.TransportResponse(w, response.StatusCode(), response.Body())
}

View File

@@ -1,16 +0,0 @@
// log management package
package nbi
import (
nbi_file "be.ems/features/nbi/file"
"be.ems/lib/log"
"github.com/gin-gonic/gin"
)
func InitSubServiceRoute(r *gin.Engine) {
log.Info("======init North-Bound Interface group gin.Engine")
nbiGroup := r.Group("/nbi")
nbi_file.Register(nbiGroup)
}

View File

@@ -1,203 +0,0 @@
package nbi
import (
"bytes"
"fmt"
"net/http"
"strconv"
"github.com/gorilla/mux"
g "github.com/gosnmp/gosnmp"
"be.ems/lib/config"
"be.ems/lib/log"
"be.ems/lib/services"
)
func init() {
conf := config.GetYamlConfig()
// Default is a pointer to a GoSNMP struct that contains sensible defaults
// eg port 161, community public, etc
g.Default.Target = conf.NE.Addr
g.Default.Port = conf.NE.Port
err := g.Default.Connect()
if err != nil {
fmt.Printf("Connect() err: %v", err)
}
//defer g.Default.Conn.Close()
MAX_RMUID_NUM = config.GetRmUIDMaxNumFromConfig()
MAX_ALARMID_NUM = config.GetAlarmIDMaxNumFromConfig()
MAX_PMUID_NUM = config.GetPmIDMaxNumFromConfig()
MAX_SUBID_NUM = config.GetSubIDMaxNumFromConfig()
MAX_URI_LEN = config.GetUriMaxLenFromConfig()
RMUID_REGEXP = config.GetRmUIDRegexpFromConfig()
}
func GetNRMByUri(w http.ResponseWriter, r *http.Request) {
log.Debug("GetNRMByUri processing... ")
// response 414-4 uri too long ? (optional)
// todo ... ?
if bytes.Count([]byte(r.RequestURI), nil) > MAX_URI_LEN {
log.Error("Request Uri too long:", bytes.Count([]byte(r.RequestURI), nil))
services.ResponseRequestURITooLong414UriTooLong(w)
return
}
// check media type(content type) only support "application/json"
// response 415-1
if !services.IsVallidContentType(r, config.GetYamlConfig().OMC.CheckContentType) {
log.Debug("Invalid Content-Type")
services.ResponseUnsupportedMediaType415(w)
return
}
// error processing ...
// 401-1 response
// token, ret := globalSession.IsCarriedToken(r)
// if ret == false {
// log.Error("AccessToken is not carried")
// services.ResponseUnauthorized401AccessTokenNotCarried(w)
// return
// }
// 401-2 response
// if globalSession.IsValidToken(token) == false {
// log.Error("AccessToken fails or does not exist")
// services.ResponseUnauthorized401AccessTokenNotExist(w)
// return
// }
// response 403 Forbidden, permissions deny
// todo...
// plist := globalSession.GetPermissionFromSession(token)
// log.Debug("permission list:", plist)
// if len(plist) == 0 || plist[0] == false {
// log.Error("User permission deny")
// services.ResponseForbidden403NotPermission(w)
// return
// }
vars := mux.Vars(r)
qeuryUri := vars["apiCategory"] + "/" + vars["elementTypeValue"] + "/" + vars["objectTypeValue"]
log.Debug("Get by Uri: ", qeuryUri)
apiVer := vars["apiVersion"]
if apiVer != "v1" {
log.Error("Uri is invalid")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// response 406-1
rmUIDValues := GetRmUIDArr(r)
if rmUIDValues == nil {
log.Error("missing parameter: rmUIDs")
services.ResponseNotAcceptable406MissingParam(w)
return
}
// response 406-2
errorParams := CheckParameterName(r)
if errorParams != nil {
log.Error("parameter name error: ", errorParams)
services.ResponseNotAcceptable406ParamError(w, errorParams)
return
}
// response 400-5
if len(rmUIDValues) == 0 {
log.Error("rmUIDs is wrong or NULL")
services.ResponseBadRequest400WrongParamValue(w)
return
}
// response 414-1
if len(rmUIDValues) > MAX_RMUID_NUM {
log.Error("rmUID greater than", MAX_RMUID_NUM)
services.ResponseRequestURITooLong414NRMNumExceed(w, MAX_RMUID_NUM)
return
}
// response 400-1
// check rmUID is valid
// todo ...
invalidRmUIDs := CheckValidRmUID(rmUIDValues)
if len(invalidRmUIDs) != 0 {
log.Error("rmUID is invalid")
services.ResponseBadRequest400RmUIDsIsInvalid(w, invalidRmUIDs)
return
}
// response 404-2
rmUID := CheckLocalRmUID(rmUIDValues)
if rmUID == "" {
log.Error("rmUID does not exist")
services.ResponseNotFound404NRMNotExist(w, rmUIDValues)
return
}
// response 404-1, uri is not exist in map
attrNames := GetAttrNameArr(r)
var Oids []string
Oids = *config.GetOidByFileds(qeuryUri, attrNames, &Oids)
if len(Oids) == 0 {
log.Error("Nothing of config map")
services.ResponseNotFound404UriNotExist(w, r)
return
}
// response 404-1, uri is not exist in map
var nameOids []config.NameOid
nameOids = *config.GetDataOidByFields(qeuryUri, attrNames, &nameOids)
if len(nameOids) == 0 {
log.Error("Nothing of config map")
services.ResponseNotFound404UriNotExist(w, r)
return
}
result, err2 := g.Default.Get(Oids) // Get() accepts up to g.MAX_OIDS
if err2 != nil {
log.Fatalf("Get() err: %v", err2)
}
// var nameValues []config.NameValue
var nameValue config.NameValue
nameValues := make(map[string]interface{})
nameValues["rmUID"] = rmUID
for i, variable := range result.Variables {
nameValue.Name = nameOids[i].Name
log.Debugf("%d: oid: %s name: %s\n", i, variable.Name, nameValue.Name)
// if nameOids[i].Oid == variable.Name && global.IsContain(attributeNames, nameValue.Name) {
if nameOids[i].Oid == variable.Name {
// the Value of each variable returned by Get() implements
// interface{}. You could do a type switch...
switch variable.Type {
case g.OctetString:
bytes := variable.Value.([]byte)
log.Debugf("string: %s\n", string(bytes))
nameValue.Value = string(bytes)
nameValues[nameValue.Name] = nameValue.Value
case g.Integer:
value := variable.Value.(int)
log.Debugf("integer: %d\n", value)
nameValue.Value = strconv.Itoa(value)
nameValues[nameValue.Name] = nameValue.Value
case g.IPAddress:
value := variable.Value.(string)
log.Debugf("IPAddress: %s\n", variable.Value)
nameValue.Value = value
nameValues[nameValue.Name] = nameValue.Value
default:
// ... or often you're just interested in numeric values.
// ToBigInt() will return the Value as a BigInt, for plugging
// into your calculations.
log.Debugf("number: %d\n", g.ToBigInt(variable.Value))
}
}
}
getResponse := services.DataResponse{nameValues}
services.ResponseWithJson(w, http.StatusOK, getResponse)
}

View File

@@ -1,349 +0,0 @@
package kpi_c_report
import (
"encoding/json"
"fmt"
"net/http"
"strconv"
"strings"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"be.ems/src/framework/utils/parse"
"github.com/gin-gonic/gin"
)
func (k *KpiCReport) Get(c *gin.Context) {
var reports []KpiCReport
var conditions []string
var params []any
var querys KpiCReportQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusBadRequest, services.ErrResp(err.Error()))
return
}
// construct condition to get
if querys.NeType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(querys.NeType))
} else {
c.JSON(http.StatusBadRequest, services.ErrResp("Not found NE type"))
return
}
tableName := TableName() + "_" + strings.ToLower(querys.NeType)
dbg := db.DB("").Model(&KpiCReport{}).Table(tableName)
if querys.NeID != "" {
conditions = append(conditions, "rm_uid = (select n.rm_uid from ne_info n where n.ne_type=? and n.ne_id=?)")
params = append(params, strings.ToUpper(querys.NeType), querys.NeID)
} else {
c.JSON(http.StatusBadRequest, services.ErrResp("Not found required parameter NE ID"))
return
}
if querys.StartTime != "" {
conditions = append(conditions, "(UNIX_TIMESTAMP(created_at) * 1000) >= ?")
params = append(params, querys.StartTime)
}
if querys.EndTime != "" {
conditions = append(conditions, "(UNIX_TIMESTAMP(created_at) * 1000) <= ?")
params = append(params, querys.EndTime)
}
conditions = append(conditions, "kpi_values != 'null'")
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
dbg = dbg.Where(whereSql, params...)
}
// page number and size
if pageSize := querys.PageSize; pageSize > 0 {
dbg = dbg.Limit(pageSize)
if pageNum := querys.PageNum; pageNum > 0 {
dbg = dbg.Offset((pageNum - 1) * pageSize)
}
}
// order by
if sortField, sortOrder := querys.SortField, querys.SortOrder; sortField != "" && sortOrder != "" {
orderBy := fmt.Sprintf("%s %s", sortField, sortOrder)
dbg = dbg.Order(orderBy)
}
//err := db.DB("").Table(tableName).Where(whereSql, params...).Find(&reports).Error
err := dbg.Find(&reports).Error
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.DataResp(reports))
}
func (k *KpiCReport) GetReport2FE(c *gin.Context) {
var results []KpiCReport
var conditions []string
var params []any
var querys KpiCReportQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// construct condition to get
if querys.NeType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(querys.NeType))
} else {
c.JSON(http.StatusOK, services.ErrResp("Not found required parameter NE type"))
return
}
tableName := TableName() + "_" + strings.ToLower(querys.NeType)
dbg := db.DB("").Model(&KpiCReport{}).Table(tableName)
if querys.NeID != "" {
conditions = append(conditions, "rm_uid = (select n.rm_uid from ne_info n where n.ne_type=? and n.ne_id=?)")
params = append(params, querys.NeType, querys.NeID)
} else {
c.JSON(http.StatusBadRequest, services.ErrResp("Not found required parameter NE ID"))
return
}
if querys.StartTime != "" {
conditions = append(conditions, "created_at >= ?")
params = append(params, querys.StartTime)
}
if querys.EndTime != "" {
conditions = append(conditions, "created_at <= ?")
params = append(params, querys.EndTime)
}
conditions = append(conditions, "kpi_values != 'null'")
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
dbg = dbg.Where(whereSql, params...)
}
// page number and size
if pageSize := querys.PageSize; pageSize > 0 {
dbg = dbg.Limit(pageSize)
if pageNum := querys.PageNum; pageNum > 0 {
dbg = dbg.Offset((pageNum - 1) * pageSize)
}
}
// order by
if sortField, sortOrder := querys.SortField, querys.SortOrder; sortField != "" && sortOrder != "" {
orderBy := fmt.Sprintf("%s %s", sortField, sortOrder)
dbg = dbg.Order(orderBy)
}
//err := db.DB("").Table(tableName).Where(whereSql, params...).Find(&reports).Error
err := dbg.Find(&results).Error
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
reports := []map[string]any{}
for _, r := range results {
report := map[string]any{
// kip_id ...
"neType": *r.NeType,
"neId": querys.NeID,
"neName": *r.NeName,
"rmUID": *r.RmUID,
"startIndex": r.Index,
"timeGroup": r.Date[:10] + " " + *r.EndTime,
"createdAt": r.CreatedAt,
"granularity": r.Granularity,
}
// 解析 JSON 字符串为 map
var kpiValues []map[string]any
err := json.Unmarshal([]byte(r.KpiValues), &kpiValues)
if err != nil {
continue
}
// 遍历 kpiValues 数组
for _, k := range kpiValues {
kpiId := fmt.Sprint(k["kpiId"])
value := parse.Number(k["value"])
formatted := fmt.Sprintf("%.3d", value)
formattedFloat, err := strconv.ParseFloat(formatted, 64)
if err != nil {
formattedFloat = 0
}
report[kpiId] = formattedFloat
}
reports = append(reports, report)
}
c.JSON(http.StatusOK, services.DataResp(reports))
}
func (k *KpiCReport) GetTotalList(c *gin.Context) {
var reports []KpiCReport
var conditions []string
var params []any
var querys KpiCReportQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// construct condition to get
if querys.NeType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(querys.NeType))
} else {
c.JSON(http.StatusOK, services.ErrResp("Not found NE type"))
return
}
tableName := TableName() + "_" + strings.ToLower(querys.NeType)
dbg := db.DB("").Model(&KpiCReport{}).Table(tableName)
if querys.StartTime != "" {
conditions = append(conditions, "created_at >= ?")
params = append(params, querys.StartTime)
}
if querys.EndTime != "" {
conditions = append(conditions, "created_at <= ?")
params = append(params, querys.EndTime)
}
conditions = append(conditions, "kpi_values != 'null'")
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
dbg = dbg.Where(whereSql, params...)
}
// get total number
var total int64 = 0
err := dbg.Count(&total).Error
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// page number and size
if pageSize := querys.PageSize; pageSize > 0 {
dbg = dbg.Limit(pageSize)
if pageNum := querys.PageNum; pageNum > 0 {
dbg = dbg.Offset((pageNum - 1) * pageSize)
}
}
// order by
if sortField, sortOrder := querys.SortField, querys.SortOrder; sortField != "" && sortOrder != "" {
orderBy := fmt.Sprintf("%s %s", sortField, sortOrder)
dbg = dbg.Order(orderBy)
}
//err := db.DB("").Table(tableName).Where(whereSql, params...).Find(&reports).Error
err = dbg.Find(&reports).Error
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.TotalDataResp(reports, total))
}
func (k *KpiCReport) Total(c *gin.Context) {
var conditions []string
var params []any
var querys KpiCReportQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// construct condition to get
if querys.NeType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(querys.NeType))
} else {
c.JSON(http.StatusOK, services.ErrResp("Not found NE type"))
return
}
tableName := TableName() + "_" + strings.ToLower(querys.NeType)
dbg := db.DB("").Model(&KpiCReport{}).Table(tableName)
if querys.StartTime != "" {
conditions = append(conditions, "(UNIX_TIMESTAMP(created_at) * 1000) >= ?")
params = append(params, querys.StartTime)
}
if querys.EndTime != "" {
conditions = append(conditions, "(UNIX_TIMESTAMP(created_at) * 1000) <= ?")
params = append(params, querys.EndTime)
}
conditions = append(conditions, "kpi_values != 'null'")
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
dbg = dbg.Where(whereSql, params...)
}
var total int64 = 0
err := dbg.Count(&total).Error
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.TotalResp(total))
}
func (k *KpiCReport) Post(c *gin.Context) {
var report KpiCReport
if err := c.ShouldBindJSON(&report); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
dbg := db.DB("").Model(&KpiCReport{})
if err := dbg.Create(&report).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusCreated, services.DataResp(report))
}
func (k *KpiCReport) Put(c *gin.Context) {
var report KpiCReport
id := c.Param("id")
dbg := db.DB("").Model(&KpiCReport{})
if err := dbg.First(&report, id).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp("custom indicator report not found"))
return
}
if err := c.ShouldBindJSON(&report); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
db.DB("").Model(&KpiCReport{}).Save(&report)
c.JSON(http.StatusOK, services.DataResp(report))
}
func (k *KpiCReport) Delete(c *gin.Context) {
id := c.Param("id")
if err := db.DB("").Delete(&KpiCReport{}, id).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp("custom indicator report not found"))
return
}
c.JSON(http.StatusNoContent, nil) // 204 No Content
}
func InsertKpiCReport(neType string, report KpiCReport) {
tableName := TableName() + "_" + strings.ToLower(neType)
dbg := db.DB("").Model(&KpiCReport{})
if err := dbg.Table(tableName).Create(&report).Error; err != nil {
return
}
}

View File

@@ -1,42 +0,0 @@
package kpi_c_report
type KpiCReport struct {
ID int `gorm:"column:id;primary_key;auto_increment" json:"id"`
NeType *string `gorm:"column:ne_type;default:NULL" json:"neType,omitempty"`
NeName *string `gorm:"column:ne_name;default:" json:"neName,omitempty"`
RmUID *string `gorm:"column:rm_uid;" json:"rmUid,omitempty"`
Date string `gorm:"column:date" json:"date"` // time.Time `gorm:"column:date" json:"date"`
StartTime *string `gorm:"column:start_time" json:"startTime,omitempty"`
EndTime *string `gorm:"column:end_time" json:"endTime,omitempty"`
Index int64 `gorm:"column:index" json:"index"`
Granularity *int64 `gorm:"column:granularity" json:"granularity,omitempty"` //Time granualarity: 5/10/.../60/300 (second)
KpiValues string `gorm:"column:kpi_values" json:"kpiValues,omitempty"`
CreatedAt *int64 `gorm:"column:created_at" json:"createdAt,omitempty"`
}
type KpiCReportQuery struct {
NeType string `json:"neType" form:"neType" binding:"required"`
NeID string `json:"neId" form:"neId" binding:"required"`
RmUID string `json:"rmUID" form:"rmUID"`
StartTime string `json:"startTime" form:"startTime"`
EndTime string `json:"endTime" form:"endTime"`
UserName string `json:"userName" form:"userName"`
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=created_at"` // 排序字段,填写结果字段
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序asc desc
PageNum int `json:"pageNum" form:"pageNum"`
PageSize int `json:"pageSize" form:"pageSize"`
}
type KpiCReport2FE struct {
NeType string `json:"neType" gorm:"column:ne_type"`
NeId string `json:"neId"`
NeName string `json:"neName" gorm:"column:ne_name"`
RmUID string `json:"rmUid" gorm:"column:rm_uid"`
TimeGroup string `json:"timeGroup"`
StartIndex int16 `json:"startIndex" gorm:"column:index"`
Granularity int8 `json:"granularity" gorm:"column:granularity"`
}
func TableName() string {
return "kpi_c_report"
}

View File

@@ -1,43 +0,0 @@
package kpi_c_report
import (
"be.ems/src/framework/middleware"
"github.com/gin-gonic/gin"
)
// Register Routes for kpi_c_report
func Register(r *gin.RouterGroup) {
pmKPIC := r.Group("/kpiC")
{
var k *KpiCReport
pmKPIC.GET("/report",
middleware.AuthorizeUser(nil),
k.GetReport2FE,
)
pmKPIC.GET("/report/list",
middleware.AuthorizeUser(nil),
k.Get,
)
pmKPIC.GET("/report/totalList",
middleware.AuthorizeUser(nil),
k.Total,
)
pmKPIC.GET("/report/total",
middleware.AuthorizeUser(nil),
k.Total,
)
pmKPIC.POST("/report",
middleware.AuthorizeUser(nil),
k.Post,
)
pmKPIC.PUT("/report/:id",
middleware.AuthorizeUser(nil),
k.Put,
)
pmKPIC.DELETE("/report/:id",
middleware.AuthorizeUser(nil),
k.Delete,
)
}
}

View File

@@ -1,312 +0,0 @@
package kpi_c_title
import (
"fmt"
"net/http"
"regexp"
"sort"
"strconv"
"strings"
"time"
"be.ems/lib/log"
"be.ems/lib/services"
"be.ems/src/framework/database/db"
"be.ems/src/framework/reqctx"
"github.com/gin-gonic/gin"
)
// get customize kpi total and list
func (k *KpiCTitle) GetToalList(c *gin.Context) {
var titles []KpiCTitle
var conditions []string
var params []any
i18n := reqctx.AcceptLanguage(c)
var querys KpiCTitleQuery
if err := c.ShouldBindQuery(&querys); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
dbg := db.DB("").Model(&KpiCTitle{})
// construct condition to get
if neType := querys.NeType; neType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(neType))
}
if status := querys.Status; status != "" {
conditions = append(conditions, "status = ?")
params = append(params, status)
} else {
conditions = append(conditions, "status != '2'")
}
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
dbg = dbg.Where(whereSql, params...)
}
// Get total number
var total int64 = 0
if err := dbg.Count(&total).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
// page number and size
if pageSize := querys.PageSize; pageSize > 0 {
dbg = dbg.Limit(pageSize)
if pageNum := querys.PageNum; pageNum > 0 {
dbg = dbg.Offset((pageNum - 1) * pageSize)
}
}
// order by
if sortField, sortOrder := querys.SortField, querys.SortOrder; sortField != "" && sortOrder != "" {
orderBy := fmt.Sprintf("%s %s", sortField, sortOrder)
dbg = dbg.Order(orderBy)
}
if err := dbg.Find(&titles).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
k.expressionAlias(titles, i18n)
c.JSON(http.StatusOK, services.TotalDataResp(titles, total))
//c.JSON(http.StatusOK, titles)
}
func (k *KpiCTitle) Get(c *gin.Context) {
var titles []KpiCTitle
var conditions []string
var params []any
i18n := reqctx.AcceptLanguage(c)
// construct condition to get
if neType := c.Query("neType"); neType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(neType))
}
if status := c.Query("status"); status != "" {
conditions = append(conditions, "status = ?")
params = append(params, status)
} else {
conditions = append(conditions, "status != '2'")
}
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
}
if err := db.DB("").Where(whereSql, params...).Find(&titles).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
k.expressionAlias(titles, i18n)
c.JSON(http.StatusOK, services.DataResp(titles))
//c.JSON(http.StatusOK, titles)
}
// alias customized kpi expression with cn/en title
func (k *KpiCTitle) expressionAlias(titles []KpiCTitle, i18n string) {
var title *KpiCTitle
for i := 0; i < len(titles); i++ {
title = &titles[i]
title.ExprAlias = *title.Expression
re := regexp.MustCompile(`'([^']+)'`)
matches := re.FindAllStringSubmatch(title.ExprAlias, -1)
for _, match := range matches {
var alias, sql string
if i18n == "zh" {
sql = fmt.Sprintf("SELECT cn_title FROM kpi_title WHERE kpi_id='%s'", match[1])
} else {
sql = fmt.Sprintf("SELECT en_title FROM kpi_title WHERE kpi_id='%s'", match[1])
}
m, err := db.RawDB("", sql, nil)
if err != nil {
log.Warn("Failed to QueryRow:", err)
continue
}
if len(m) > 0 {
if i18n == "zh" {
alias = fmt.Sprintf("%v", m[0]["cn_title"])
} else {
alias = fmt.Sprintf("%v", m[0]["en_title"])
}
}
title.ExprAlias = regexp.MustCompile(match[1]).ReplaceAllString(title.ExprAlias, alias)
}
}
}
func (k *KpiCTitle) Total(c *gin.Context) {
var conditions []string
var params []any
// construct condition to get
if neType := c.Query("neType"); neType != "" {
conditions = append(conditions, "ne_type = ?")
params = append(params, strings.ToUpper(neType))
}
if status := c.Query("status"); status != "" {
conditions = append(conditions, "status = ?")
params = append(params, status)
} else {
conditions = append(conditions, "status != '2'")
}
whereSql := ""
if len(conditions) > 0 {
whereSql += strings.Join(conditions, " and ")
}
var total int64 = 0
if err := db.DB("").Table(k.TableName()).Where(whereSql, params...).Count(&total).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusOK, services.TotalResp(total))
}
func (k *KpiCTitle) Post(c *gin.Context) {
var title KpiCTitle
if err := c.ShouldBindJSON(&title); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
userName := reqctx.LoginUserToUserName(c)
title.CreatedBy = &userName
tx := db.DB("").Model(&KpiCTitle{})
result := tx.Where("ne_type=? and (kpi_id=? or title=?) and status!='2'", title.NeType, title.KpiID, title.Title).First(&title)
if result.RowsAffected > 0 {
c.JSON(http.StatusOK, services.ErrResp("custom indicator already exist"))
return
}
// Regexp match like AMF.C.01
// kpiIDRegexp := "^" + *title.NeType + "\\.C\\.[0-9]{2}$"
// ret := db.DB("").Table("kpi_c_title").
// Where("ne_type=? and kpi_id REGEXP ? ORDER BY kpi_id DESC LIMIT 1", title.NeType, kpiIDRegexp).Scan(&res)
// if err := ret.Error; err != nil {
// c.JSON(http.StatusOK, services.ErrResp(err.Error()))
// return
// }
titles := []KpiCTitle{}
ret := db.DB("").Model(&KpiCTitle{})
ret = ret.Select("kpi_id").Where("ne_type=?", title.NeType).Find(&titles)
newKpiID := *title.NeType + ".C" + ".01"
if ret.RowsAffected != 0 {
suffixInt := 1
prefixStr := fmt.Sprintf("%s.C.", *title.NeType)
sort.SliceStable(titles, func(i, j int) bool {
vi := *titles[i].KpiID
vj := *titles[j].KpiID
if strings.HasPrefix(vi, prefixStr) && strings.HasPrefix(vj, prefixStr) {
vvi := strings.Replace(vi, prefixStr, "", 1)
vvii, err := strconv.Atoi(vvi)
if err != nil {
return false
}
vvj := strings.Replace(vj, prefixStr, "", 1)
vvjj, err := strconv.Atoi(vvj)
if err != nil {
return false
}
return vvii > vvjj // desc
}
return false
})
maxKpiID := *titles[0].KpiID
prefix := maxKpiID[:len(maxKpiID)-2]
suffix := maxKpiID[len(maxKpiID)-2:]
suffixInt, err := strconv.Atoi(suffix)
if err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
if suffixInt >= MAX_KPI_C_ID {
err := fmt.Errorf("exceed the max customized KPI ID")
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
suffixInt++
newSuffix := fmt.Sprintf("%02d", suffixInt)
newKpiID = prefix + newSuffix
}
title.KpiID = &newKpiID
txx := db.DB("").Model(&KpiCTitle{})
if err := txx.Create(&title).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
kpiCReportTable := "kpi_c_report_" + strings.ToLower(*title.NeType)
if !db.DB("").Migrator().HasTable(kpiCReportTable) {
// clone table "kpi_c_report" to "kpi_c_report_{neType}"
sql := fmt.Sprintf("CREATE TABLE IF NOT EXISTS %s AS SELECT * FROM %s WHERE 1=0", kpiCReportTable, "kpi_c_report")
if _, err := db.ExecDB("", sql, nil); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
sql = fmt.Sprintf("ALTER TABLE %s MODIFY COLUMN `id` int(11) NOT NULL AUTO_INCREMENT FIRST,ADD PRIMARY KEY IF NOT EXISTS (`id`)", kpiCReportTable)
if _, err := db.ExecDB("", sql, nil); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
sql = fmt.Sprintf("ALTER TABLE %s ADD INDEX IF NOT EXISTS `idx_timestamp`(`created_at`) USING BTREE, ADD INDEX IF NOT EXISTS `idx_uid_datetime`(`rm_uid`, `date`, `start_time`) USING BTREE", kpiCReportTable)
if _, err := db.ExecDB("", sql, nil); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
}
c.JSON(http.StatusCreated, services.DataResp(title))
}
func (k *KpiCTitle) Put(c *gin.Context) {
var title KpiCTitle
id := c.Param("id")
if err := db.DB("").First(&title, id).Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp("custom indicator not found"))
return
}
if err := c.ShouldBindJSON(&title); err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
title.UpdatedAt = time.Now().UnixMilli()
db.DB("").Save(&title)
c.JSON(http.StatusOK, services.DataResp(title))
}
func (k *KpiCTitle) Delete(c *gin.Context) {
id := c.Param("id")
if err := db.DB("").Table(k.TableName()).Where("id=?", id).Update("status", "2").Error; err != nil {
c.JSON(http.StatusOK, services.ErrResp(err.Error()))
return
}
c.JSON(http.StatusNoContent, nil) // 204 No Content
}
func GetActiveKPICList(neType string) []KpiCTitle {
k := new([]KpiCTitle)
err := db.DB("").Where("`ne_type` = ? and `status` = '1'", neType).Find(&k).Error
if err != nil {
return nil
}
return *k
}

View File

@@ -1,33 +0,0 @@
package kpi_c_title
const (
MAX_KPI_C_ID = 99
)
type KpiCTitle struct {
ID int `gorm:"column:id;primary_key;auto_increment" json:"id"`
NeType *string `gorm:"column:ne_type" json:"neType,omitempty"`
KpiID *string `gorm:"column:kpi_id" json:"kpiId,omitempty"`
Title *string `gorm:"column:title" json:"title,omitempty"`
Expression *string `gorm:"column:expression" json:"expression,omitempty"`
ExprAlias string `gorm:"-" json:"exprAlias"`
Status string `gorm:"column:status" json:"status"` // 0-Inactive/1-Active/2-Deleted
Unit *string `gorm:"column:unit" json:"unit,omitempty"`
Description *string `gorm:"column:description" json:"description,omitempty"`
CreatedBy *string `gorm:"column:created_by" json:"createdBy,omitempty"`
UpdatedAt int64 `gorm:"column:updated_at" json:"updatedAt,omitempty"`
}
type KpiCTitleQuery struct {
ID int `json:"id" form:"id"`
NeType string `json:"neType" form:"neType"`
Status string `json:"status" form:"status"`
SortField string `json:"sortField" form:"sortField" binding:"omitempty,oneof=created_at"` // 排序字段,填写结果字段
SortOrder string `json:"sortOrder" form:"sortOrder" binding:"omitempty,oneof=asc desc"` // 排序升降序asc desc
PageNum int `json:"pageNum" form:"pageNum"`
PageSize int `json:"pageSize" form:"pageSize"`
}
func (k *KpiCTitle) TableName() string {
return "kpi_c_title"
}

View File

@@ -1,39 +0,0 @@
package kpi_c_title
import (
"be.ems/src/framework/middleware"
"github.com/gin-gonic/gin"
)
// Register Routes for kpi_c_title
func Register(r *gin.RouterGroup) {
pmKPIC := r.Group("/kpiC")
{
var k *KpiCTitle
pmKPIC.GET("/title",
middleware.AuthorizeUser(nil),
k.Get,
)
pmKPIC.GET("/title/total",
middleware.AuthorizeUser(nil),
k.Total,
)
pmKPIC.GET("/title/totalList",
middleware.AuthorizeUser(nil),
k.GetToalList,
)
pmKPIC.POST("/title",
middleware.AuthorizeUser(nil),
k.Post,
)
pmKPIC.PUT("/title/:id",
middleware.AuthorizeUser(nil),
k.Put,
)
pmKPIC.DELETE("/title/:id",
middleware.AuthorizeUser(nil),
k.Delete,
)
}
}

File diff suppressed because it is too large Load Diff

View File

@@ -1,19 +0,0 @@
package pm
import (
"be.ems/features/pm/kpi_c_report"
"be.ems/features/pm/kpi_c_title"
"be.ems/lib/log"
"github.com/gin-gonic/gin"
)
func InitSubServiceRoute(r *gin.Engine) {
log.Info("======init PM group gin.Engine")
pmGroup := r.Group("/pm")
// register sub modules routes
kpi_c_title.Register(pmGroup)
kpi_c_report.Register(pmGroup)
// return featuresGroup
}

Some files were not shown because too many files have changed in this diff Show More