ref: v3变更,,完成整合,同步v2.2508.4 -250902

This commit is contained in:
TsMask
2025-09-06 11:17:18 +08:00
parent 382bc311e6
commit 10cf6bbd2a
36 changed files with 527 additions and 478 deletions

View File

@@ -75,10 +75,10 @@ INSERT INTO `sys_i18n` VALUES (57, 'menu.common.resetPwd', '重置密码', 'Rese
INSERT INTO `sys_i18n` VALUES (58, 'menu.common.unlock', '账户解锁', 'Account Unlock');
INSERT INTO `sys_i18n` VALUES (59, 'menu.forcedQuit.batch ', '批量强退', 'Batch Undo');
INSERT INTO `sys_i18n` VALUES (60, 'menu.forcedQuit.single', '单条强退', 'Individual Forced Retirement');
INSERT INTO `sys_i18n` VALUES (61, 'menu.neData.udmAuth', 'UDM鉴权用户', 'UDM Authentication');
INSERT INTO `sys_i18n` VALUES (62, 'menu.neData.udmSub', 'UDM签约用户', 'UDM Subscribers');
INSERT INTO `sys_i18n` VALUES (63, 'menu.neData.udmVOIP', 'VOIP鉴权用户', 'VOIP Authentication');
INSERT INTO `sys_i18n` VALUES (64, 'menu.neData.udmVolte', 'IMS签约用户', 'IMS Subscribers');
INSERT INTO `sys_i18n` VALUES (61, 'menu.neData.udmAuth', 'UDM 鉴权用户', 'UDM Authentication');
INSERT INTO `sys_i18n` VALUES (62, 'menu.neData.udmSub', 'UDM 签约用户', 'UDM Subscribers');
INSERT INTO `sys_i18n` VALUES (63, 'menu.neData.udmVoIP', 'UDM VoIP用户', 'UDM VoIP User');
INSERT INTO `sys_i18n` VALUES (64, 'menu.neData.udmVolte', 'UDM VoLTE用户', 'UDM VoLTE User');
INSERT INTO `sys_i18n` VALUES (65, 'menu.neData.imsSub', 'IMS在线语音会话', 'IMS Online Voice Session');
INSERT INTO `sys_i18n` VALUES (66, 'menu.neData.smfSub', 'SMF在线数据会话', 'SMF Online Data Session');
INSERT INTO `sys_i18n` VALUES (67, 'menu.neData.baseOnline', '基站在线', 'Radio Online');
@@ -124,7 +124,7 @@ INSERT INTO `sys_i18n` VALUES (106, 'menu.perf.data', '性能数据', 'Performan
INSERT INTO `sys_i18n` VALUES (107, 'menu.perf.kpiOverView', '关键指标概览', 'Key Performance Overview');
INSERT INTO `sys_i18n` VALUES (108, 'menu.perf.threshold', '性能门限', 'Performance Thresholds');
INSERT INTO `sys_i18n` VALUES (109, 'menu.perf.kpi', '关键指标', 'Key Performance Indicators');
INSERT INTO `sys_i18n` VALUES (110, 'menu.perf.customTarget', '自定义指标', 'Custom Indicator Management');
INSERT INTO `sys_i18n` VALUES (110, 'menu.perf.kpicTitle', '自定义指标', 'Custom Key Performance Title');
INSERT INTO `sys_i18n` VALUES (111, 'menu.perf.kpiKeyTarget', '关键指标报表', 'Key Performance Reports');
INSERT INTO `sys_i18n` VALUES (112, 'menu.mml', 'MML', 'MML');
INSERT INTO `sys_i18n` VALUES (113, 'menu.mml.ne', '网元操作', 'NE Operation');
@@ -136,7 +136,7 @@ INSERT INTO `sys_i18n` VALUES (118, 'menu.perf.dataRemark', '性能数据菜单'
INSERT INTO `sys_i18n` VALUES (119, 'menu.dashboard.smscCDR.content', '可见短信内容', 'Visible SMS content');
INSERT INTO `sys_i18n` VALUES (120, 'menu.perf.thresholdRemark', '性能门限菜单', 'Performance Threshold Menu');
INSERT INTO `sys_i18n` VALUES (121, 'menu.perf.kpiRemark', '黄金指标菜单', 'Key Performance Indicator Menu');
INSERT INTO `sys_i18n` VALUES (122, 'menu.perf.customTargetRemark', '自定义指标菜单', 'Custom Indicator Management Menu');
INSERT INTO `sys_i18n` VALUES (122, 'menu.perf.kpicTitleRemark', '自定义指标菜单', 'Custom Key Performance Title Menu');
INSERT INTO `sys_i18n` VALUES (123, 'menu.dashboard.smfCDRByIMSI', 'SMF数据流量报表', 'SMF Data Usage Report');
INSERT INTO `sys_i18n` VALUES (124, 'menu.mmlRemark', 'MML管理目录', 'MML Management Catalog');
INSERT INTO `sys_i18n` VALUES (125, 'menu.mml.neRemark', '网元操作菜单', 'Network Element Operations Menu');
@@ -497,7 +497,7 @@ INSERT INTO `sys_i18n` VALUES (479, 'config.sys.helpDocRemark', '静态文件目
INSERT INTO `sys_i18n` VALUES (480, 'log.operate.title.neAction', '网元处理', 'Network Element Processing');
INSERT INTO `sys_i18n` VALUES (481, 'log.operate.title.helpDoc', '系统使用文档', 'System Usage Documentation');
INSERT INTO `sys_i18n` VALUES (482, 'menu.ueUser.n3iwf', 'N3IWF在线用户', 'N3IWF Online User');
INSERT INTO `sys_i18n` VALUES (483, 'menu.neData.pcfSub', '用户策略控制信息', 'User PCC Information');
INSERT INTO `sys_i18n` VALUES (483, 'menu.neData.pcfSub', 'PCF用户规则', 'PCF User Rule');
INSERT INTO `sys_i18n` VALUES (484, 'menu.system.user.editRole', '修改用户角色', 'Modifying User Role');
INSERT INTO `sys_i18n` VALUES (485, 'config.sys.i18nOpen', '国际化切换', 'Internationalization Switching');
INSERT INTO `sys_i18n` VALUES (486, 'config.sys.i18nDefault', '国际化默认语言', 'Internationalization Default Language');
@@ -659,7 +659,7 @@ INSERT INTO `sys_i18n` VALUES (641, 'cache.name.oauth2_devices', '客户端令
INSERT INTO `sys_i18n` VALUES (642, 'job.backup_export_cdr', '备份-CDR数据定期导出', 'Backup-Periodic export of CDR Data');
INSERT INTO `sys_i18n` VALUES (643, 'job.backup_export_cdr_remark', 'dataType: 类型支持 ims/smf/sgwc/smsc\nfileType: 文件类型 csv/xlsx\nhour: 数据时间从任务执行时间前的小时数', 'Backup-Periodic export of dataType: type support ims/smf/sgwc/smsc\nfileType: file type csv/xlsx\nhour: data time from the hour before the task execution time');
-- INSERT INTO `sys_i18n` VALUES (644, 'menu.log.exportFile', '导出文件', 'Exported File');
INSERT INTO `sys_i18n` VALUES (645, 'menu.perf.kpiCReport', '自定义指标数据', 'Custom Indicator Data');
INSERT INTO `sys_i18n` VALUES (645, 'menu.perf.kpic', '自定义指标数据', 'Custom Key Performance Indicators');
INSERT INTO `sys_i18n` VALUES (646, 'menu.trace.taskHLR', 'HLR 跟踪任务', 'HLR Trace Task');
INSERT INTO `sys_i18n` VALUES (647, 'dictType.cdr_cause_code', 'CDR 响应原因代码类别类型', 'CDR Response Reason Code Category Type');
INSERT INTO `sys_i18n` VALUES (648, 'dictData.cdr_cause_code.0', '未知错误', 'Unknown Error');
@@ -734,8 +734,8 @@ INSERT INTO `sys_i18n` VALUES (716, 'log.operate.title.alarm', '告警', 'Alarm'
INSERT INTO `sys_i18n` VALUES (717, 'ne.common.neType', '网元类型', 'NE Type');
INSERT INTO `sys_i18n` VALUES (718, 'ne.common.neName', '网元名称', 'NE Name');
INSERT INTO `sys_i18n` VALUES (719, 'ne.common.neId', '网元标识', 'NE ID');
INSERT INTO `sys_i18n` VALUES (720, 'log.operate.title.udmVOIP', 'VOIP用户', 'UDM VOIP');
INSERT INTO `sys_i18n` VALUES (721, 'log.operate.title.udmVolteIMS', 'VolteIMS用户', 'UDM VolteIMS');
INSERT INTO `sys_i18n` VALUES (720, 'log.operate.title.udmVOIP', 'UDM VoIP', 'UDM VoIP');
INSERT INTO `sys_i18n` VALUES (721, 'log.operate.title.udmVolteIMS', 'UDM VolteIMS', 'UDM VolteIMS');
INSERT INTO `sys_i18n` VALUES (722, 'log.operate.title.backup', '备份', 'Backup');
INSERT INTO `sys_i18n` VALUES (723, 'job.backup_export_table_cdr_event_smsc_remark', 'hour: 数据时间从任务执行时间前的小时数\ntableName: 数据表名\ncolumns: 支持字段\nbackupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time \ntableName: data table name \ncolumns: support fields \nbackupPath: backup output path /usr/local/omc/backup/{backupPath}');
INSERT INTO `sys_i18n` VALUES (724, 'job.backup_export_table_cdr_event_sgwc_remark', 'hour: 数据时间从任务执行时间前的小时数\ntableName: 数据表名\ncolumns: 支持字段\nbackupPath: 备份输出路径 /usr/local/omc/backup/{backupPath}', 'hour: data time from the hour before the task execution time \ntableName: data table name \ncolumns: support fields \nbackupPath: backup output path /usr/local/omc/backup/{backupPath}');
@@ -772,17 +772,17 @@ INSERT INTO `sys_i18n` VALUES (754, 'job.ne_alarm_state_check_license', '网元
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 (760, "menu.perf.kpiIMSOverview", "语音数据概览", "Voice Data Overview");
INSERT INTO `sys_i18n` VALUES (761, "dictType.sys_user_type", "用户类型", "User Type");
INSERT INTO `sys_i18n` VALUES (762, "dictData.sys_user_type.system", "系统", "System");
INSERT INTO `sys_i18n` VALUES (763, "dictData.sys_user_type.ldap", "LDAP", "LDAP");
INSERT INTO `sys_i18n` VALUES (764, "dictData.sys_user_type.smtp", "SMTP", "SMTP");
INSERT INTO `sys_i18n` VALUES (765, "dictData.sys_user_type.oauth2", "OAuth2", "OAuth2");
INSERT INTO `sys_i18n` VALUES (766, "user.export.userType", "用户类型", "User Type");
INSERT INTO `sys_i18n` VALUES (767, "menu.system.loginSource", "第三方登录认证", "Third Party Login Source");
INSERT INTO `sys_i18n` VALUES (768, "log.operate.title.sysLoginSource", "认证源", "Login Source");
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 (760, 'menu.perf.kpiOverviewIMS', '语音通话统计', 'Voice Call Statistics');
INSERT INTO `sys_i18n` VALUES (761, 'dictType.sys_user_type', '用户类型', 'User Type');
INSERT INTO `sys_i18n` VALUES (762, 'dictData.sys_user_type.system', '系统', 'System');
INSERT INTO `sys_i18n` VALUES (763, 'dictData.sys_user_type.ldap', 'LDAP', 'LDAP');
INSERT INTO `sys_i18n` VALUES (764, 'dictData.sys_user_type.smtp', 'SMTP', 'SMTP');
INSERT INTO `sys_i18n` VALUES (765, 'dictData.sys_user_type.oauth2', 'OAuth2', 'OAuth2');
INSERT INTO `sys_i18n` VALUES (766, 'user.export.userType', '用户类型', 'User Type');
INSERT INTO `sys_i18n` VALUES (767, 'menu.system.loginSource', '第三方登录认证', 'Third Party Login Source');
INSERT INTO `sys_i18n` VALUES (768, 'log.operate.title.sysLoginSource', '认证源', 'Login Source');
INSERT INTO `sys_i18n` VALUES (769, 'job.delete_cdr_record', '删除-过期话单记录', 'Delete-Expired CDR Records');
INSERT INTO `sys_i18n` VALUES (770, 'job.delete_cdr_record_remark', 'storeDays表示保留最近天数的数据记录\r\nneList表示匹配的网元类型', 'storeDays: Indicates the most recent days of data records retained\r\nneList: Indicates the type of network elements matched');
INSERT INTO `sys_i18n` VALUES (771, 'job.delete_uenb_record', '删除-过期终端接入基站记录', 'Delete-Expired UE-NB Records');

View File

@@ -2,28 +2,28 @@
-- Table structure for sys_menu
-- ----------------------------
DROP TABLE IF EXISTS `sys_menu`;
CREATE TABLE `sys_menu` (
CREATE TABLE `sys_menu` (
`menu_id` bigint NOT NULL AUTO_INCREMENT COMMENT '菜单ID',
`menu_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单名称',
`parent_id` bigint DEFAULT '0' COMMENT '父菜单ID 默认0',
`menu_sort` int DEFAULT '0' COMMENT '显示顺序',
`menu_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '路由地址',
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '组件路径',
`frame_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '1' COMMENT '内部跳转标记0否 1是',
`cache_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '缓存标记0不缓存 1缓存',
`menu_path` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '路由地址',
`component` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '组件路径',
`frame_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '1' COMMENT '内部跳转标记0否 1是',
`cache_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '缓存标记0不缓存 1缓存',
`menu_type` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL COMMENT '菜单类型D目录 M菜单 A访问权限',
`visible_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '是否显示0隐藏 1显示',
`status_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '菜单状态0停用 1正常',
`perms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '权限标识',
`icon` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '#' COMMENT '菜单图标(#无图标)',
`del_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '0' COMMENT '删除标记0存在 1删除',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '创建者',
`visible_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '是否显示0隐藏 1显示',
`status_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '菜单状态0停用 1正常',
`perms` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '权限标识',
`icon` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '#' COMMENT '菜单图标(#无图标)',
`del_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '删除标记0存在 1删除',
`create_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '更新者',
`update_by` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NULL DEFAULT '' COMMENT '备注',
`tenant_flag` varchar(1) COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '租户内部菜单标记0否 1是',
`core_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '核心网内部菜单标记0否 1是',
`remark` varchar(500) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
`tenant_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '租户内部菜单标记0否 1是',
`core_flag` varchar(1) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '0' COMMENT '核心网内部菜单标记0否 1是',
`ne_type` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元限制 含有其中一个, 同时匹配用+号 nf,nf,nf+nf',
PRIMARY KEY (`menu_id`) USING BTREE
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci ROW_FORMAT=DYNAMIC COMMENT='系统_菜单权限表';
@@ -31,184 +31,181 @@ CREATE TABLE `sys_menu` (
-- ----------------------------
-- Records of sys_menu
-- ----------------------------
INSERT INTO `sys_menu` VALUES (1, 'menu.system', 0, 16, 'system', '', '1', '1', 'D', '1', '1', '', 'icon-xiangmu', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.systemRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (4, 'menu.ne', 0, 3, 'ne', '', '1', '0', 'D', '1', '1', '', 'icon-huizhiguize', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.configRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (5, 'menu.ue', 0, 7, 'ue', '', '1', '0', 'D', '1', '1', '', 'icon-wocanyu', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.ueRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (60, 'menu.tools', 0, 60, 'tool', '', '1', '1', 'D', '1', '1', '', 'icon-wenjian', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.toolsRemark', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (109, 'menu.system.loginSource', 2113, 12, 'login-source', 'system/login-source/index', '1', '1', 'M', '1', '1', 'system:loginSource:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (111, 'menu.system.systemLog', 1, 11, 'log', '', '1', '1', 'D', '0', '0', '', '#', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.system.systemLogRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1000, 'menu.common.query', 100, 1, '', '', '1', '1', 'B', '1', '1', 'system:user:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1001, 'menu.common.add', 100, 2, '', '', '1', '1', 'B', '1', '1', 'system:user:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1002, 'menu.common.edit', 100, 3, '', '', '1', '1', 'B', '1', '1', 'system:user:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1003, 'menu.common.delete', 100, 4, '', '', '1', '1', 'B', '1', '1', 'system:user:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1004, 'menu.common.export', 100, 5, '', '', '1', '1', 'B', '1', '1', 'system:user:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1005, 'menu.common.import', 100, 6, '', '', '1', '1', 'B', '1', '1', 'system:user:import', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1006, 'menu.common.resetPwd', 100, 7, '', '', '1', '1', 'B', '1', '1', 'system:user:resetPwd', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1007, 'menu.common.query', 101, 1, '', '', '1', '1', 'B', '1', '1', 'system:role:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1008, 'menu.common.add', 101, 2, '', '', '1', '1', 'B', '1', '1', 'system:role:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1009, 'menu.common.edit', 101, 3, '', '', '1', '1', 'B', '1', '1', 'system:role:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1010, 'menu.common.delete', 101, 4, '', '', '1', '1', 'B', '1', '1', 'system:role:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1011, 'menu.common.export', 101, 5, '', '', '1', '1', 'B', '1', '1', 'system:role:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1012, 'menu.common.query', 103, 1, '', '', '1', '1', 'B', '1', '1', 'system:menu:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1013, 'menu.common.add', 103, 2, '', '', '1', '1', 'B', '1', '1', 'system:menu:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1014, 'menu.common.edit', 103, 3, '', '', '1', '1', 'B', '1', '1', 'system:menu:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1015, 'menu.common.delete', 103, 4, '', '', '1', '1', 'B', '1', '1', 'system:menu:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1016, 'menu.common.query', 104, 1, '', '', '1', '1', 'B', '1', '1', 'system:dept:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1017, 'menu.common.add', 104, 2, '', '', '1', '1', 'B', '1', '1', 'system:dept:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1018, 'menu.common.edit', 104, 3, '', '', '1', '1', 'B', '1', '1', 'system:dept:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1019, 'menu.common.delete', 104, 4, '', '', '1', '1', 'B', '1', '1', 'system:dept:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1020, 'menu.common.query', 105, 1, '', '', '1', '1', 'B', '1', '1', 'system:post:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1021, 'menu.common.add', 105, 2, '', '', '1', '1', 'B', '1', '1', 'system:post:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1022, 'menu.common.edit', 105, 3, '', '', '1', '1', 'B', '1', '1', 'system:post:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1023, 'menu.common.delete', 105, 4, '', '', '1', '1', 'B', '1', '1', 'system:post:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1024, 'menu.common.export', 105, 5, '', '', '1', '1', 'B', '1', '1', 'system:post:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1025, 'menu.common.query', 106, 1, '#', '', '1', '1', 'B', '1', '1', 'system:dict:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1026, 'menu.common.add', 106, 2, '#', '', '1', '1', 'B', '1', '1', 'system:dict:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1027, 'menu.common.edit', 106, 3, '#', '', '1', '1', 'B', '1', '1', 'system:dict:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1028, 'menu.common.delete', 106, 4, '#', '', '1', '1', 'B', '1', '1', 'system:dict:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1029, 'menu.common.export', 106, 5, '#', '', '1', '1', 'B', '1', '1', 'system:dict:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1030, 'menu.common.query', 108, 1, '#', '', '1', '1', 'B', '1', '1', 'system:config:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1031, 'menu.common.add', 108, 2, '#', '', '1', '1', 'B', '1', '1', 'system:config:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1032, 'menu.common.edit', 108, 3, '#', '', '1', '1', 'B', '1', '1', 'system:config:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1033, 'menu.common.delete', 108, 4, '#', '', '1', '1', 'B', '1', '1', 'system:config:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1034, 'menu.common.export', 108, 5, '#', '', '1', '1', 'B', '1', '1', 'system:config:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1039, 'menu.common.query', 500, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1040, 'menu.common.delete', 500, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1041, 'menu.common.export', 500, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1042, 'menu.common.query', 501, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1043, 'menu.common.delete', 501, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1044, 'menu.common.export', 501, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1045, 'menu.common.unlock', 501, 4, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:unlock', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1046, 'menu.common.query', 114, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1047, 'menu.common.delete', 114, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1048, 'menu.common.query', 115, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1049, 'menu.forcedQuit.batch ', 115, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:batchLogout', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1050, 'menu.forcedQuit.single', 115, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:forceLogout', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1051, 'menu.common.query', 116, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1052, 'menu.common.add', 116, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1053, 'menu.common.edit', 116, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1054, 'menu.common.delete', 116, 4, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1055, 'menu.common.edit', 116, 5, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:changeStatus', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1056, 'menu.common.export', 116, 6, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:export', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1057, 'menu.common.query', 109, 1, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:query', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1058, 'menu.common.add', 109, 2, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:add', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1059, 'menu.common.edit', 109, 3, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1060, 'menu.common.delete', 109, 4, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '1', 'udm');
INSERT 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, '', '0', '1', 'udm');
INSERT 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, '', '0', '1', 'udm');
INSERT INTO `sys_menu` VALUES (2003, 'menu.neData.udmVolte', 5, 7, 'udm-volte', 'neData/udm-volte/index', '1', '0', 'M', '1', '1', 'udm:volte:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '1', 'udm+ims');
INSERT 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, '', '0', '1', 'ims');
INSERT 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, '', '0', '1', 'smf');
INSERT INTO `sys_menu` VALUES (2006, 'menu.neData.baseOnline', 5, 15, 'base-online', 'neData/base-online/index', '1', '0', 'M', '0', '1', 'nb:base-online:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '1', 'amf,mme');
INSERT INTO `sys_menu` VALUES (2007, 'menu.neData.baseStation', 5, 18, 'base-station', 'neData/base-station/index', '1', '0', 'M', '1', '1', 'nb:base-station:list', 'icon-fenxiang', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '1', 'amf,mme');
INSERT 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, '', '0', '1', 'n3iwf');
INSERT 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, '', '0', '1', 'pcf');
INSERT 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, '', '0', '1', 'nssf');
INSERT 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, '', '0', '1', 'nssf');
INSERT INTO `sys_menu` VALUES (2083, 'menu.trace', 2087, 30, 'traceManage', '', '1', '0', 'D', '1', '1', '', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.traceRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2087, 'menu.fault', 0, 2, 'faultManage', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.faultRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2089, 'menu.log', 0, 9, 'logManage', '', '1', '0', 'D', '1', '1', '', 'icon-fuzhidaima', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.logRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2099, 'menu.perf', 0, 5, 'perfManage', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588,'system', 1728641403588, 'menu.perfRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
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', '0', '0', '');
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', '0', '0', '');
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', '0', '0', '');
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', '0', '0', '');
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', '0', '0', '');
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, '', '0', '1', 'sgwc');
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', '0', '0', '');
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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'smsc:cdr:content', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '1', 'smsc');
INSERT INTO `sys_menu` VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
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, '', '0', '1', 'smf');
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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2120, 'DashboardV1', 2131, 8, 'dashboardV1', 'dashboard/overview/index', '1', '0', 'M', '1', '1', 'dashboard:overview:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
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, '', '0', '0', '');
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', '0', '0', '');
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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2124, 'menu.perf.kpiTitle', 2099, 22, 'kpi-title', 'perfManage/kpi-title/index', '1', '1', 'M', '1', '1', 'perfManage:kpi-title:index', 'icon-soutubiao', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2125, 'menu.neData.cbcCBE', 5, 20, 'cbc-cbe', 'neData/cbc-cbe/index', '1', '0', 'M', '1', '1', 'cbc:cbe:index', 'icon-tubiaoku', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2129, 'menu.alarm', 2087, 20, 'alarm', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2130, 'menu.topology', 2087, 10, 'topology', '', '1', '0', 'D', '1', '1', '', 'icon-anzhuo', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2131, 'menu.dashboard', 2087, 15, 'dashboard', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2132, 'menu.dashboard.overview', 2131, 1, 'overview', 'dashboard/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview:index', 'icon-paixu', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '1', 'ims');
INSERT 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, '', '0', '0', '');
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, '', '0', '0', '');
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, '', '0', '0', '');
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, '', '0', '1', 'amf');
INSERT INTO `sys_menu` VALUES (2139, 'menu.perf.kpiIMSOverview', 2099, 14, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'ims:perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '1', 'ims');
INSERT INTO `sys_menu` VALUES (2140, 'menu.monitor.cdr', 2089, 10, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2141, 'menu.monitor.event', 2089, 20, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '1', 'smf');
INSERT 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, '', '0', '1', 'mme');
INSERT INTO `sys_menu` VALUES (2150, 'menu.system.user.editPost', 100, 9, '', '', '1', '1', 'B', '1', '1', 'system:user:editPost', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2151, 'menu.system.setting.doc', 2114, 2, '', '', '1', '1', 'B', '1', '1', 'system:setting:doc', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2152, 'menu.system.setting.official', 2114, 3,'', '', '1', '1', 'B', '1', '1', 'system:setting:official', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2153, 'menu.system.setting.lock', 2114, 4, '', '', '1', '1', 'B', '1', '1', 'system:setting:lock', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2155, 'menu.common.delete', 2154, 1, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:remove', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2156, 'menu.common.edit', 2154, 2, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:edit', '#', '0', 'system', 1728641403588,'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '1', 'smsc');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1, 'menu.system', 0, 90, 'system', '', '1', '1', 'D', '1', '1', '', 'icon-xiangmu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.systemRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (4, 'menu.ne', 0, 8, 'ne', '', '1', '0', 'D', '1', '1', '', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.configRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (5, 'menu.ue', 0, 6, 'ue', '', '1', '0', 'D', '1', '1', '', 'icon-wocanyu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.ueRemark', '0', '0', 'udm');
INSERT INTO `sys_menu` VALUES (6, 'menu.neData', 0, 10, 'ne-data', '', '1', '0', 'D', '1', '1', '', 'icon-suofang', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.neDataRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (60, 'menu.tools', 0, 60, 'tool', '', '1', '1', 'D', '1', '1', '', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.toolsRemark', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (100, 'menu.security.user', 1, 1, 'user', 'system/user/index', '1', '1', 'M', '1', '1', 'system:user:list', 'icon-wocanyu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.userRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (101, 'menu.security.role', 1, 5, 'role', 'system/role/index', '1', '1', 'M', '1', '1', 'system:role:list', 'icon-anzhuo', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.roleRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (102, 'menu.security.roleUser', 1, 6, '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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (103, 'menu.system.menu', 1, 18, 'menu', 'system/menu/index', '1', '1', 'M', '1', '1', 'system:menu:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.menuRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (104, 'menu.security.dept', 1, 7, 'dept', 'system/dept/index', '1', '1', 'M', '1', '1', 'system:dept:list', 'icon-yuzhanghao1', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.deptRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (105, 'menu.security.post', 1, 8, 'post', 'system/post/index', '1', '1', 'M', '1', '1', 'system:post:list', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.postRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (106, 'menu.system.dictType', 1, 20, 'dict', 'system/dict/index', '1', '1', 'M', '1', '1', 'system:dict:list', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.dictTypeRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (107, 'menu.system.dictData', 1, 21, 'dict/inline/data/:dictId', 'system/dict/data', '1', '1', 'M', '0', '1', 'system:dict:data', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.dictDataRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (108, 'menu.system.paramSet', 1, 28, 'config', 'system/config/index', '1', '1', 'M', '1', '1', 'system:config:list', 'icon-gongnengjieshao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.paramSetRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (109, 'menu.system.loginSource', 1, 2, 'login-source', 'system/login-source/index', '1', '1', 'M', '1', '1', 'system:loginSource:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (111, 'menu.system.systemLog', 1, 30, 'log', '', '1', '1', 'D', '1', '1', '', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemLogRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (112, 'menu.system.systemInfo', 1, 14, 'system-info', 'monitor/system/info', '1', '1', 'M', '1', '1', 'monitor:system:info', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemInfoRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (113, 'menu.system.cacheInfo', 1, 10, 'cache-info', 'monitor/cache/info', '1', '1', 'M', '1', '1', 'monitor:cache:info', 'icon-gongnengjieshao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.cacheInfoRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (114, 'menu.system.cache', 1, 11, 'cache', 'monitor/cache/index', '1', '1', 'M', '1', '1', 'monitor:cache:list', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.cacheRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (115, 'menu.security.onlineUser', 1, 3, 'online', 'monitor/online/index', '1', '1', 'M', '1', '1', 'monitor:online:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.security.onlineUserRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (116, 'menu.system.job', 1, 25, 'job', 'monitor/job/index', '1', '1', 'M', '1', '1', 'monitor:job:list', 'icon-lishi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.jobRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (117, 'menu.system.jobLog', 1, 26, 'job/inline/log/:jobId', 'monitor/job/log', '1', '1', 'M', '0', '1', 'monitor:job:log', '#', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.jobLogRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (500, 'menu.log.operat', 111, 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (501, 'menu.log.login', 111, 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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1000, 'menu.common.query', 100, 1, '', '', '1', '1', 'B', '1', '1', 'system:user:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1001, 'menu.common.add', 100, 2, '', '', '1', '1', 'B', '1', '1', 'system:user:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1002, 'menu.common.edit', 100, 3, '', '', '1', '1', 'B', '1', '1', 'system:user:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1003, 'menu.common.delete', 100, 4, '', '', '1', '1', 'B', '1', '1', 'system:user:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1004, 'menu.common.export', 100, 5, '', '', '1', '1', 'B', '1', '1', 'system:user:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1005, 'menu.common.import', 100, 6, '', '', '1', '1', 'B', '1', '1', 'system:user:import', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1006, 'menu.common.resetPwd', 100, 7, '', '', '1', '1', 'B', '1', '1', 'system:user:resetPwd', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1007, 'menu.common.query', 101, 1, '', '', '1', '1', 'B', '1', '1', 'system:role:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1008, 'menu.common.add', 101, 2, '', '', '1', '1', 'B', '1', '1', 'system:role:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1009, 'menu.common.edit', 101, 3, '', '', '1', '1', 'B', '1', '1', 'system:role:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1010, 'menu.common.delete', 101, 4, '', '', '1', '1', 'B', '1', '1', 'system:role:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1011, 'menu.common.export', 101, 5, '', '', '1', '1', 'B', '1', '1', 'system:role:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1012, 'menu.common.query', 103, 1, '', '', '1', '1', 'B', '1', '1', 'system:menu:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1013, 'menu.common.add', 103, 2, '', '', '1', '1', 'B', '1', '1', 'system:menu:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1014, 'menu.common.edit', 103, 3, '', '', '1', '1', 'B', '1', '1', 'system:menu:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1015, 'menu.common.delete', 103, 4, '', '', '1', '1', 'B', '1', '1', 'system:menu:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1016, 'menu.common.query', 104, 1, '', '', '1', '1', 'B', '1', '1', 'system:dept:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1017, 'menu.common.add', 104, 2, '', '', '1', '1', 'B', '1', '1', 'system:dept:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1018, 'menu.common.edit', 104, 3, '', '', '1', '1', 'B', '1', '1', 'system:dept:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1019, 'menu.common.delete', 104, 4, '', '', '1', '1', 'B', '1', '1', 'system:dept:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1020, 'menu.common.query', 105, 1, '', '', '1', '1', 'B', '1', '1', 'system:post:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1021, 'menu.common.add', 105, 2, '', '', '1', '1', 'B', '1', '1', 'system:post:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1022, 'menu.common.edit', 105, 3, '', '', '1', '1', 'B', '1', '1', 'system:post:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1023, 'menu.common.delete', 105, 4, '', '', '1', '1', 'B', '1', '1', 'system:post:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1024, 'menu.common.export', 105, 5, '', '', '1', '1', 'B', '1', '1', 'system:post:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1025, 'menu.common.query', 106, 1, '#', '', '1', '1', 'B', '1', '1', 'system:dict:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1026, 'menu.common.add', 106, 2, '#', '', '1', '1', 'B', '1', '1', 'system:dict:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1027, 'menu.common.edit', 106, 3, '#', '', '1', '1', 'B', '1', '1', 'system:dict:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1028, 'menu.common.delete', 106, 4, '#', '', '1', '1', 'B', '1', '1', 'system:dict:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1029, 'menu.common.export', 106, 5, '#', '', '1', '1', 'B', '1', '1', 'system:dict:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1030, 'menu.common.query', 108, 1, '#', '', '1', '1', 'B', '1', '1', 'system:config:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1031, 'menu.common.add', 108, 2, '#', '', '1', '1', 'B', '1', '1', 'system:config:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1032, 'menu.common.edit', 108, 3, '#', '', '1', '1', 'B', '1', '1', 'system:config:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1033, 'menu.common.delete', 108, 4, '#', '', '1', '1', 'B', '1', '1', 'system:config:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1034, 'menu.common.export', 108, 5, '#', '', '1', '1', 'B', '1', '1', 'system:config:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1039, 'menu.common.query', 500, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1040, 'menu.common.delete', 500, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1041, 'menu.common.export', 500, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:operate:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1042, 'menu.common.query', 501, 1, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1043, 'menu.common.delete', 501, 2, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1044, 'menu.common.export', 501, 3, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1045, 'menu.common.unlock', 501, 4, '#', '', '1', '1', 'B', '1', '1', 'system:log:login:unlock', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1046, 'menu.common.query', 114, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1047, 'menu.common.delete', 114, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:cache:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1048, 'menu.common.query', 115, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1049, 'menu.forcedQuit.batch ', 115, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:batchLogout', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1050, 'menu.forcedQuit.single', 115, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:online:forceLogout', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1051, 'menu.common.query', 116, 1, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1052, 'menu.common.add', 116, 2, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1053, 'menu.common.edit', 116, 3, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1054, 'menu.common.delete', 116, 4, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1055, 'menu.common.edit', 116, 5, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:changeStatus', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1056, 'menu.common.export', 116, 6, '#', '', '1', '1', 'B', '1', '1', 'monitor:job:export', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1057, 'menu.common.query', 109, 1, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:query', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1058, 'menu.common.add', 109, 2, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:add', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1059, 'menu.common.edit', 109, 3, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (1060, 'menu.common.delete', 109, 4, '#', '', '1', '1', 'B', '1', '1', 'system:loginSource:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '1', '');
INSERT 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, '', '0', '1', '');
INSERT 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, '', '0', '1', '');
INSERT INTO `sys_menu` VALUES (2003, 'menu.neData.udmVolte', 5, 7, 'udm-volte', 'neData/udm-volte/index', '1', '0', 'M', '1', '1', 'udm:volte:list', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'udm+ims');
INSERT INTO `sys_menu` VALUES (2004, 'menu.neData.imsSub', 6, 10, 'ims-sub', 'neData/ims-sub/index', '1', '0', 'M', '1', '1', 'ims:sub:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'ims');
INSERT INTO `sys_menu` VALUES (2005, 'menu.neData.smfSub', 6, 12, 'smf-sub', 'neData/smf-sub/index', '1', '0', 'M', '1', '1', 'smf:sub:index', 'icon-xiangmuchengyuan', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'smf');
INSERT INTO `sys_menu` VALUES (2006, 'menu.neData.baseOnline', 6, 2, 'base-online', 'neData/base-online/index', '1', '0', 'M', '1', '1', 'nb:base-online:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'amf,mme');
INSERT INTO `sys_menu` VALUES (2007, 'menu.neData.baseStation', 6, 4, 'base-station', 'neData/base-station/index', '1', '0', 'M', '1', '1', 'nb:base-station:list', 'icon-fenxiang', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'amf,mme');
INSERT INTO `sys_menu` VALUES (2008, 'menu.ueUser.n3iwf', 6, 18, 'n3iwf', 'neData/n3iwf-sub/index', '1', '0', 'M', '1', '1', 'n3iwf:sub:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'n3iwf');
INSERT 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, '', '0', '1', 'pcf');
INSERT INTO `sys_menu` VALUES (2010, 'menu.neUser.nssf', 6, 19, 'nssf', 'neData/nssf-sub/index', '1', '0', 'M', '1', '1', 'nssf:sub:index', 'icon-daimayingyong', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'nssf');
INSERT INTO `sys_menu` VALUES (2011, 'menu.neUser.nssfAmf', 6, 20, 'nssfAmf', 'neData/nssf-amf/index', '1', '0', 'M', '1', '1', 'nssf:sub:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'nssf');
INSERT INTO `sys_menu` VALUES (2083, 'menu.trace', 2083, 30, 'trace', '', '1', '0', 'D', '1', '1', '', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.traceRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2084, 'menu.trace.task', 4, 40, 'task', 'ne/trace/task/index', '1', '0', 'M', '1', '1', 'traceManage:task:index', 'icon-chexiao', '0', 'system', 1728641403588, 'system', 1744453890548, 'menu.trace.taskRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2085, 'menu.trace.taskData', 4, 41, 'task/inline/data', 'ne/trace/task/data', '1', '0', 'M', '0', '1', 'traceManage:task:data', '#', '0', 'system', 1728641403588, 'system', 1744453921381, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2086, 'menu.trace.pcap', 60, 11, 'pcap', 'tool/pcap/index', '1', '1', 'M', '1', '1', 'traceManage:pcap:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.trace.pcapRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2087, 'menu.monitor', 0, 2, 'monitor', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.faultRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2088, 'menu.fault.active', 2129, 1, 'active', 'alarm/active/index', '1', '1', 'M', '1', '1', 'faultManage:active-alarm:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.activemRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2091, 'menu.log.mml', 2107, 30, 'log', 'mml/log/index', '1', '1', 'M', '1', '1', 'logManage:mml:index', 'icon-wocanyu', '0', 'system', 1728641403588, 'supervisor', 1756109559986, 'menu.log.mmlRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2092, 'menu.log.alarm', 2129, 40, 'log', 'alarm/log/index', '1', '0', 'M', '1', '1', 'logManage:alarm:index', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.alarmRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2094, 'menu.log.forwarding', 2129, 41, 'forwarding', 'alarm/forwarding/index', '1', '0', 'M', '1', '1', 'logManage:forwarding:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.log.forwardingRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2096, 'menu.neData.backupData', 0, 30, 'backup-data', 'neData/backup-data/index', '1', '0', 'M', '1', '1', 'ne-data:backup-data:list', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2097, 'menu.fault.history', 2129, 2, 'history', 'alarm/history/index', '1', '1', 'M', '1', '1', 'faultManage/history-alarm/index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.historyRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2098, 'menu.fault.set', 2129, 100, 'set', 'alarm/set/index', '1', '0', 'M', '0', '1', 'faultManage/fault-setting/index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.fault.setRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2099, 'menu.perf', 0, 5, 'perfManage', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.perfRemark', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2107, 'menu.mml', 0, 19, 'mml', '', '1', '0', 'D', '1', '1', '', 'icon-zhizuoliucheng', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mmlRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2108, 'menu.mml.ne', 2107, 1, 'ne', 'mml/ne/index', '1', '1', 'M', '1', '1', 'mmlManage:neOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.neRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2109, 'menu.mml.udm', 2107, 2, 'udm', 'mml/udm/index', '1', '1', 'M', '1', '1', 'mmlManage:udmOperate:index', 'icon-gonggaodayi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.udmRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2110, 'menu.mml.set', 2107, 4, 'set', 'mml/set/index', '1', '0', 'M', '0', '0', 'mmlManage:mmlSet:index', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.setRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2111, 'menu.mml.omc', 2107, 3, 'omc', 'mml/omc/index', '1', '1', 'M', '0', '0', 'mmlManage:omcOperate:index', 'icon-huizhiguize', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.mml.omcRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2112, 'menu.dashboard.sgwcCDR', 2140, 12, 'sgwc-cdr', 'neData/sgwc-cdr/index', '1', '0', 'M', '1', '1', 'sgwc:cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'sgwc');
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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2115, 'menu.system.systemResource', 1, 15, 'monitor', 'monitor/monitor/index', '1', '1', 'M', '1', '1', 'monitor:monitor:info', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.system.systemResourceRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2116, 'menu.dashboard.smscCDR.content', 2157, 1, '', '', '1', '1', 'B', '1', '1', 'smsc:cdr:content', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'smsc');
INSERT INTO `sys_menu` VALUES (2117, 'menu.common.delete', 2140, 1, '', '', '1', '1', 'B', '1', '1', 'cdr:ne:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2118, 'menu.dashboard.smfCDRByIMSI', 2140, 7, 'smf-cdr-imsi', 'neData/smf-cdr-imsi/index', '1', '0', 'M', '1', '1', 'smf:cdr:index', 'icon-gerenzhanghu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'smf');
INSERT INTO `sys_menu` VALUES (2119, 'Alarm Overview', 2129, 6, 'overview', 'alarm/overview/index', '1', '1', 'M', '1', '1', 'faultManage:active-overview:index', 'icon-wenjian', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2120, 'DashboardV1', 2131, 8, 'dashboardV1', 'monitor/overview/index', '1', '0', 'M', '1', '1', 'dashboard:overview:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
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, '', '0', '0', '');
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', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2123, 'menu.log.neFile', 4, 30, 'neFile', 'ne/neFile/index', '1', '0', 'M', '1', '1', 'ne:neFile:index', 'icon-tubiaohuizhi', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2124, 'menu.perf.kpiTitle', 2099, 22, 'kpi-title', 'perfManage/kpi-title/index', '1', '1', 'M', '1', '1', 'perfManage:kpi-title:index', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2125, 'menu.neData.cbcCBE', 0, 20, 'cbc-cbe', 'neData/cbc-cbe/index', '1', '0', 'M', '1', '1', 'cbc:cbe:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2129, 'menu.alarm', 0, 4, 'alarm', '', '1', '0', 'D', '1', '1', '', 'icon-jinggao', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2130, 'menu.topology', 2087, 10, 'topology', '', '1', '0', 'D', '1', '1', '', 'icon-anzhuo', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2131, 'menu.dashboard', 2087, 15, 'dashboard', '', '1', '0', 'D', '1', '1', '', 'icon-soutubiao', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2132, 'menu.dashboard.overview', 2131, 1, 'overview', 'monitor/overview2/index', '1', '0', 'M', '1', '1', 'dashboard:overview:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2133, 'menu.dashboard.imsCDR', 2140, 3, 'ims-cdr', 'neData/ims-cdr/index', '1', '0', 'M', '1', '1', 'ims:cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'ims');
INSERT 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, '', '0', '0', '');
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, '', '0', '0', '');
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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2138, 'menu.dashboard.amfUE', 2141, 1, 'amf-ue', 'neData/amf-ue/index', '1', '0', 'M', '1', '1', 'amf:ue:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'amf');
INSERT INTO `sys_menu` VALUES (2139, 'menu.perf.kpiIMSOverview', 2099, 14, 'dashboard', 'perfManage/overview/index', '1', '0', 'M', '1', '1', 'ims:perfManage:dashboard:index', 'icon-fuzhichenggong', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'ims');
INSERT INTO `sys_menu` VALUES (2140, 'menu.monitor.cdr', 6, 25, 'cdr', '', '1', '0', 'D', '1', '1', '', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2141, 'menu.monitor.event', 6, 26, 'event', '', '1', '0', 'D', '1', '1', '', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2142, 'menu.ne.neQuickSetup', 4, 50, 'neQuickSetup', 'ne/neQuickSetup/index', '1', '1', 'M', '1', '1', 'ne:neQuickSetup:list', 'icon-wofaqi', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2144, 'menu.ne.neSoftware', 4, 24, 'neSoftware', 'ne/neSoftware/index', '1', '0', 'M', '1', '1', 'ne:neSoftware:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2145, 'menu.ne.neVersion', 4, 22, 'neVersion', 'ne/neVersion/index', '1', '0', 'M', '1', '1', 'ne:neVersion:list', 'icon-fuzhidaima', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2147, 'menu.fault.event', 2129, 3, 'event', 'alarm/event/index', '1', '0', 'M', '1', '1', 'faultManage:event:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2148, 'menu.dashboard.smfCDR', 2140, 6, 'smf-cdr', 'neData/smf-cdr/index', '1', '0', 'M', '1', '1', 'smf:cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'smf');
INSERT INTO `sys_menu` VALUES (2149, 'menu.dashboard.mmeUE', 2141, 5, 'mme-ue', 'neData/mme-ue/index', '1', '0', 'M', '1', '1', 'mme:ue:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'mme');
INSERT INTO `sys_menu` VALUES (2150, 'menu.system.user.editPost', 100, 9, '', '', '1', '1', 'B', '1', '1', 'system:user:editPost', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2151, 'menu.system.setting.doc', 2114, 2, '', '', '1', '1', 'B', '1', '1', 'system:setting:doc', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2152, 'menu.system.setting.official', 2114, 3, '', '', '1', '1', 'B', '1', '1', 'system:setting:official', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2153, 'menu.system.setting.lock', 2114, 4, '', '', '1', '1', 'B', '1', '1', 'system:setting:lock', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2155, 'menu.common.delete', 2154, 1, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:remove', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2156, 'menu.common.edit', 2154, 2, '#', '', '1', '1', 'B', '1', '1', 'ne:neConfigBackup:edit', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2157, 'menu.dashboard.smscCDR', 2140, 9, 'smsc-cdr', 'neData/smsc-cdr/index', '1', '0', 'M', '1', '1', 'smsc:cdr:index', 'icon-paixu', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '1', 'smsc');
INSERT INTO `sys_menu` VALUES (2158, 'menu.trace.pcapFile', 60, 12, 'pcap/inline/file', 'tool/pcap/file', '1', '0', 'M', '0', '1', 'traceManage:pcap:index', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT 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, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2161, 'menu.trace.taskHLR', 4, 45, 'taskHLR', 'ne/trace/task-hlr/index', '1', '0', 'M', '0', '1', 'traceManage:taskHLR:index', 'icon-chexiao', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2162, 'menu.trace.taskAnalyze', 4, 42, 'task/inline/analyze', 'ne/trace/task/analyze', '1', '0', 'M', '0', '1', 'traceManage:task:analyze', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2163, 'menu.trace.tshark', 60, 14, 'tshark', 'tool/tshark/index', '1', '0', 'M', '1', '1', 'traceManage:tshark:index', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2164, 'menu.trace.wireshark', 60, 16, 'wireshark', 'tool/wireshark/index', '1', '0', 'M', '1', '1', 'traceManage:wireshark:index', 'icon-gengduo', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2165, 'menu.ne.neOverview', 4, 1, 'neOverview', 'ne/neOverview/index', '1', '0', 'M', '1', '1', 'configManage:neOverview:index', 'icon-tubiaoku', '0', 'system', 1728641403588, 'system', 1728641403588, 'menu.ne.neOverviewRemark', '0', '0', '');
INSERT INTO `sys_menu` VALUES (2166, 'menu.dashboard.overview.smfUeNum', 2132, 4, '', '', '1', '1', 'B', '1', '1', 'dashboard:overview:smfUeNum', '#', '0', 'system', 1728641403588, 'system', 1728641403588, '', '0', '0', '');
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, '', '0', '0', '');
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, '', '0', '0', '');

View File

@@ -13,6 +13,7 @@ CREATE TABLE `udm_auth` (
`ki` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'ki',
`algo_index` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'algoIndex',
`opc` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'OPC',
`create_time` bigint(20) DEFAULT 0 COMMENT '创建时间',
PRIMARY KEY (`id`) USING BTREE,
UNIQUE KEY `uk_udm_auth_imsi_ne` (`ne_uid`,`imsi`) USING BTREE COMMENT '唯一主键-IMSI_网元ID',
KEY `idx_udm_auth_uid_type` (`core_uid`,`ne_uid`,`ne_type`) USING BTREE COMMENT '索引-核心网_资源标识_类型'

View File

@@ -79,7 +79,7 @@ func (s NeInfoController) State(c *gin.Context) {
"neUid": neInfo.NeUID,
"neType": neInfo.NeType,
"neName": neInfo.NeName,
"neIP": neInfo.IPAddr,
"ipAddr": neInfo.IPAddr,
}
}
neStateCacheMap.Store(neKey, resDataCache)
@@ -439,7 +439,7 @@ func (s NeInfoController) Remove(c *gin.Context) {
var query struct {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
ID int64 `form:"id" binding:"required"` // 记录ID
ID string `form:"id" binding:"required"` // 记录ID 批量多个逗号分隔
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -447,7 +447,15 @@ func (s NeInfoController) Remove(c *gin.Context) {
return
}
rows, err := s.neInfoService.DeleteById(query.ID, query.CoreUID, query.NeUID)
// 处理字符转id数组后去重
uniqueIDs := parse.RemoveDuplicatesToArray(query.ID, ",")
// 转换成int64数组类型
ids := make([]int64, 0)
for _, v := range uniqueIDs {
ids = append(ids, parse.Number(v))
}
rows, err := s.neInfoService.DeleteByIds(ids, query.CoreUID, query.NeUID)
if err != nil {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, err.Error())))
return

View File

@@ -45,7 +45,7 @@ func NeState(neInfo model.NeInfo) (map[string]any, error) {
"neUid": neInfo.NeUID,
"neType": neInfo.NeType,
"neName": neInfo.NeName,
"neIP": neInfo.IPAddr,
"ipAddr": neInfo.IPAddr,
"refreshTime": time.Now().UnixMilli(), // 获取时间
"standby": resData["standby"], // 是否备用服务
"version": resData["version"],

View File

@@ -93,7 +93,7 @@ func (r NeInfo) SelectByPage(query map[string]string) ([]model.NeInfo, int64) {
// 查询数据分页
pageNum, pageSize := db.PageNumSize(query["pageNum"], query["pageSize"])
tx = tx.Limit(pageSize).Offset(pageSize * pageNum)
err := tx.Order("ne_type asc").Find(&rows).Error
err := tx.Find(&rows).Error
if err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows, total

View File

@@ -289,8 +289,8 @@ func (r NeInfo) Insert(neInfo model.NeInfo) int64 {
CreateBy: neInfo.CreateBy,
}
if v, ok := serverState["version"]; ok && v != nil {
neVersion.Name = "-"
neVersion.Path = "-"
// neVersion.Name = "-"
// neVersion.Path = "-"
neVersion.Version = fmt.Sprint(v)
}
NewNeVersion.Insert(neVersion)
@@ -366,8 +366,8 @@ func (r NeInfo) Update(neInfo model.NeInfo) int64 {
neVersion.NeType = neInfo.NeType
}
if v, ok := serverState["version"]; ok && v != neVersion.Version {
neVersion.Name = "-"
neVersion.Path = "-"
// neVersion.Name = "-"
// neVersion.Path = "-"
neVersion.Version = fmt.Sprint(v)
}
neVersion.UpdateBy = neInfo.UpdateBy
@@ -403,10 +403,10 @@ func (r NeInfo) Update(neInfo model.NeInfo) int64 {
}
// DeleteByIds 批量删除信息
func (r NeInfo) DeleteById(id int64, coreUid, neUid string) (int64, error) {
func (r NeInfo) DeleteByIds(ids []int64, coreUid, neUid string) (int64, error) {
// 检查是否存在
arr := r.neInfoRepository.SelectByIds([]int64{id})
if len(arr) != 1 {
arr := r.neInfoRepository.SelectByIds(ids)
if len(arr) != len(ids) {
return 0, fmt.Errorf("not match id")
}
@@ -438,7 +438,7 @@ func (r NeInfo) DeleteById(id int64, coreUid, neUid string) (int64, error) {
// 缓存信息删除
redis.Del("", fmt.Sprintf("%s:%s:%s:%s", constants.CACHE_NE_INFO, v.CoreUID, v.NeType, v.NeUID))
}
rows := r.neInfoRepository.DeleteByIds([]int64{id})
rows := r.neInfoRepository.DeleteByIds(ids)
return rows, nil
}

View File

@@ -64,12 +64,12 @@ func (r NeVersion) checkNeVersion(arr *[]model.NeVersion) {
continue
}
if v, ok := result["version"]; ok && v != nil {
ver := v.(string)
if ver == item.Version {
ver, ok := v.(string)
if !ok || ver == item.Version {
continue
}
item.Name = "-"
item.Path = "-"
// item.Name = "-"
// item.Path = "-"
item.Version = ver
}
if item.NeType != neInfo.NeType {

View File

@@ -210,7 +210,7 @@ func (s *AMFController) NbInfoList(c *gin.Context) {
// 接入基站状态信息列表
//
// GET /nb/list-cfg
// GET /nb/addrs
//
// @Tags ne_data/amf
// @Accept json
@@ -220,7 +220,7 @@ func (s *AMFController) NbInfoList(c *gin.Context) {
// @Security TokenAuth
// @Summary Access to the base station status information list
// @Description Access to the base station status information list
// @Router /neData/amf/nb/list-cfg [get]
// @Router /neData/amf/nb/addrs [get]
func (s *AMFController) NbStateList(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {

View File

@@ -17,16 +17,18 @@ import (
// 实例化控制层 IMSController 结构体
var NewIMS = &IMSController{
neInfoService: neService.NewNeInfo,
cdrEventService: neDataService.NewCDREvent,
neInfoService: neService.NewNeInfo,
cdrEventService: neDataService.NewCDREvent,
kpiReportService: neDataService.NewKpiReport,
}
// 网元IMS
//
// PATH /ims
type IMSController struct {
neInfoService *neService.NeInfo // 网元信息服务
cdrEventService *neDataService.CDREvent // CDR会话事件服务
neInfoService *neService.NeInfo // 网元信息服务
cdrEventService *neDataService.CDREvent // CDR会话事件服务
kpiReportService *neDataService.KpiReport // 统计信息服务
}
// CDR会话列表
@@ -253,3 +255,45 @@ func (s *IMSController) UeSessionList(c *gin.Context) {
c.JSON(200, resp.OkData(data))
}
// KPI 忙时统计
//
// GET /kpi/busy-hour
//
// @Tags network_data/ims
// @Accept json
// @Produce json
// @Param neId query string true "NE ID" default(001)
// @Param timestamp query int64 false "timestamp"
// @Success 200 {object} object "Response Results"
// @Security TokenAuth
// @Summary Busy hour statistics
// @Description Busy hour statistics
// @Router /neData/ims/kpi/busy-hour [get]
func (s IMSController) KPIBusyHour(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
Timestamp int64 `form:"timestamp" binding:"required"` // 时间戳毫秒 年月日返回每小时的总和 年月日时返回该小时的总和
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
return
}
if query.Timestamp < 1e12 || query.Timestamp > 1e13 {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "timestamp format is ms"))
return
}
// 查询网元获取IP
neInfo := s.neInfoService.FindByCoreUidAndNeUid(query.CoreUID, query.NeUID)
if neInfo.CoreUID != query.CoreUID || neInfo.NeUID != query.NeUID {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "app.common.noNEInfo")))
return
}
data := s.kpiReportService.IMSBusyHour(neInfo.CoreUID, neInfo.NeUID, query.Timestamp)
c.JSON(200, resp.OkData(data))
}

View File

@@ -210,7 +210,7 @@ func (s *MMEController) NbInfoList(c *gin.Context) {
// 接入基站状态信息列表
//
// GET /nb/list-cfg
// GET /nb/addrs
//
// @Tags ne_data/mme
// @Accept json
@@ -220,7 +220,7 @@ func (s *MMEController) NbInfoList(c *gin.Context) {
// @Security TokenAuth
// @Summary Access to the base station status information list
// @Description Access to the base station status information list
// @Router /neData/mme/nb/list-cfg [get]
// @Router /neData/mme/nb/addrs [get]
func (s *MMEController) NbStateList(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {

View File

@@ -81,8 +81,8 @@ func (s *UDMAuthController) ResetData(c *gin.Context) {
// @Router /ne/link/udm/auth/list [get]
func (s *UDMAuthController) List(c *gin.Context) {
query := reqctx.QueryMap(c)
total, rows := s.udmAuthService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"total": total, "rows": rows}))
rows, total := s.udmAuthService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
}
// UDM鉴权用户信息
@@ -251,8 +251,8 @@ func (s *UDMAuthController) Edit(c *gin.Context) {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
return
}
if body.IMSI == "" {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: imsi is empty"))
if len(body.IMSI) != 15 {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: IMSI length is not 15 bits"))
return
}
@@ -306,7 +306,7 @@ func (s *UDMAuthController) Remove(c *gin.Context) {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
IMSI string `form:"imsi" binding:"required"` // IMSi
Num int64 `form:"num"` // 批量数量
Num int64 `form:"num"` // 数量 0可拼接imsi多删除 大于1为批
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -397,7 +397,7 @@ func (s *UDMAuthController) Export(c *gin.Context) {
}
fileType := c.Query("type")
if !(fileType == "csv" || fileType == "txt") {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "file type error, only support csv,txt"))
return
}

View File

@@ -81,8 +81,8 @@ func (s *UDMSubController) ResetData(c *gin.Context) {
// @Router /ne/link/udm/sub/list [get]
func (s *UDMSubController) List(c *gin.Context) {
query := reqctx.QueryMap(c)
total, rows := s.udmSubService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"total": total, "rows": rows}))
rows, total := s.udmSubService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
}
// UDM签约用户信息
@@ -247,12 +247,6 @@ func (s *UDMSubController) Add(c *gin.Context) {
// @Router /ne/link/udm/sub [put]
func (s *UDMSubController) Edit(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
neId := c.Param("neId")
if neId == "" {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
return
}
var body model.UDMSubUser
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -350,6 +344,7 @@ func (s *UDMSubController) Remove(c *gin.Context) {
s.udmSubService.LoadData(neInfo.CoreUID, neInfo.NeUID, query.IMSI, query.Num, "-(Deleted)-")
}
c.JSON(200, resp.OkData(data))
return
}
// 处理字符转id数组后去重
@@ -405,7 +400,7 @@ func (s *UDMSubController) Export(c *gin.Context) {
}
fileType := c.Query("type")
if !(fileType == "csv" || fileType == "txt") {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "file type error, only support csv,txt"))
return
}

View File

@@ -82,8 +82,8 @@ func (s *UDMVOIPController) ResetData(c *gin.Context) {
// @Router /ne/link/udm/voip/list [get]
func (s *UDMVOIPController) List(c *gin.Context) {
query := reqctx.QueryMap(c)
total, rows := s.udmVOIPService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"total": total, "rows": rows}))
rows, total := s.udmVOIPService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
}
// UDMVOIP用户信息
@@ -336,14 +336,14 @@ func (s *UDMVOIPController) Remove(c *gin.Context) {
func (s *UDMVOIPController) Export(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
// 查询结果,根据查询条件结果,单页最大值限制
neId := c.Query("neId")
fileType := c.Query("type")
if neId == "" {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: neId is empty"))
neUid := c.Query("neUid")
if c.Query("coreUid") == "" || neUid == "" {
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "bind err: coreUid or neUid is empty"))
return
}
fileType := c.Query("type")
if !(fileType == "csv" || fileType == "txt") {
c.JSON(200, resp.ErrMsg("file type error, only support csv,txt"))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "file type error, only support csv,txt"))
return
}
@@ -363,7 +363,7 @@ func (s *UDMVOIPController) Export(c *gin.Context) {
}
// 文件名
fileName := fmt.Sprintf("udm_voip_user_export_%s_%d.%s", neId, time.Now().UnixMilli(), fileType)
fileName := fmt.Sprintf("udm_voip_user_export_%s_%d.%s", neUid, time.Now().UnixMilli(), fileType)
filePath := filepath.Join(file.ParseUploadFileDir(constants.UPLOAD_EXPORT), fileName)
if fileType == "csv" {

View File

@@ -81,8 +81,8 @@ func (s *UDMVolteIMSController) ResetData(c *gin.Context) {
// @Router /ne/link/udm/volte-ims/list [get]
func (s *UDMVolteIMSController) List(c *gin.Context) {
query := reqctx.QueryMap(c)
total, rows := s.udmVolteIMSService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"total": total, "rows": rows}))
rows, total := s.udmVolteIMSService.FindByPage(query)
c.JSON(200, resp.OkData(map[string]any{"rows": rows, "total": total}))
}
// UDMVolteIMS用户信息
@@ -260,12 +260,12 @@ func (s *UDMVolteIMSController) Add(c *gin.Context) {
func (s *UDMVolteIMSController) Remove(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
IMSI string `form:"imsi" binding:"required"` // IMSi, 带数量时为批量
MSISDN string `form:"msisdn" binding:"required"` // MSISDN, 带数量时为批量
Volte string `form:"volte" binding:"required,oneof=0 1"` // volte
Num int64 `form:"num"` // 批量数量
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
NeUID string `form:"neUid" binding:"required"` // 网元唯一标识
IMSI string `form:"imsi" binding:"required"` // IMSi, 带数量时为批量
MSISDN string `form:"msisdn" binding:"required"` // MSISDN, 带数量时为批量
Tag string `form:"tag" binding:"required,oneof=0 1"` // tag
Num int64 `form:"num"` // 批量数量
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -291,10 +291,10 @@ func (s *UDMVolteIMSController) Remove(c *gin.Context) {
if query.Num > 1 {
// 发送MML
cmd := ""
if query.Volte == "0" {
if query.Tag == "0" {
cmd = fmt.Sprintf("bde imsuser:start_msisdn=%s,sub_num=%d,volte=0", query.MSISDN, query.Num)
}
if query.Volte == "1" {
if query.Tag == "1" {
cmd = fmt.Sprintf("bde imsuser:start_imsi=%s,start_msisdn=%s,sub_num=%d,volte=1", query.IMSI, query.MSISDN, query.Num)
}
data, err := telnet.ConvertToStr(telnetClient, cmd)
@@ -312,7 +312,7 @@ func (s *UDMVolteIMSController) Remove(c *gin.Context) {
}
// 发送MML
cmd := fmt.Sprintf("del imsuser:imsi=%s,msisdn=%s,volte=%s", query.IMSI, query.MSISDN, query.Volte)
cmd := fmt.Sprintf("del imsuser:imsi=%s,msisdn=%s,volte=%s", query.IMSI, query.MSISDN, query.Tag)
data, err := telnet.ConvertToStr(telnetClient, cmd)
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
@@ -352,7 +352,7 @@ func (s *UDMVolteIMSController) Export(c *gin.Context) {
}
fileType := c.Query("type")
if !(fileType == "csv" || fileType == "txt") {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, "ne.udm.errImportUserSubFileFormat")))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_CHEACK, "file type error, only support csv,txt"))
return
}

View File

@@ -27,9 +27,9 @@ type UPFController struct {
}
// 总流量数 N3上行 N6下行
// 单位 比特(bit)
// 单位 字节(Byte)
//
// GET /flow-total
// GET /kpi/flow-total
//
// @Tags network_data/upf
// @Accept json
@@ -40,8 +40,8 @@ type UPFController struct {
// @Security TokenAuth
// @Summary Total number of flows N3 upstream N6 downstream
// @Description Total number of flows N3 upstream N6 downstream
// @Router /ne/link/upf/flow-total [get]
func (s UPFController) FlowTotal(c *gin.Context) {
// @Router /ne/link/upf/kpi/flow-total [get]
func (s UPFController) KPIFlowTotal(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var querys struct {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识

View File

@@ -2,15 +2,16 @@ package model
// UDMAuthUser UDM鉴权用户 udm_auth
type UDMAuthUser struct {
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
Amf string `json:"amf" gorm:"column:amf"` // AMF
Ki string `json:"ki" gorm:"column:ki"` // ki
AlgoIndex string `json:"algoIndex" gorm:"column:algo_index"` // algoIndex
Opc string `json:"opc" gorm:"column:opc"` // OPC
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid" binding:"required"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type" binding:"required,oneof=UDM"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
Amf string `json:"amf" gorm:"column:amf"` // AMF
Ki string `json:"ki" gorm:"column:ki"` // ki
AlgoIndex string `json:"algoIndex" gorm:"column:algo_index"` // algoIndex
Opc string `json:"opc" gorm:"column:opc"` // OPC
CreateTime int64 `json:"createTime" gorm:"column:create_time"` // 创建时间
}
// TableName 表名称

View File

@@ -2,12 +2,12 @@ package model
// UDMSubUser UDM签约用户 udm_sub
type UDMSubUser struct {
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid" binding:"required"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type" binding:"required,oneof=UDM"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
AmDat string `json:"amDat" gorm:"column:am_dat"` // AmData
UeAmbrTpl string `json:"ambr" gorm:"column:ambr"` // AmData SubUeAMBRTemp

View File

@@ -2,10 +2,10 @@ package model
// UDMVOIPUser UDMVOIP用户 udm_voip
type UDMVOIPUser struct {
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid" binding:"required"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type" binding:"required,oneof=UDM"` // 网元类型
UserName string `json:"username" gorm:"column:username"` // 用户名
Password string `json:"password" gorm:"column:password"` // 密码

View File

@@ -2,12 +2,12 @@ package model
// UDMVolteIMSUser UDMVolteIMS用户 udm_volte_ims
type UDMVolteIMSUser struct {
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
ID int64 `json:"id" gorm:"column:id;primaryKey;autoIncrement"` // 主键
CoreUID string `json:"coreUid" gorm:"column:core_uid" binding:"required"` // 核心网唯一标识
NeUID string `json:"neUid" gorm:"column:ne_uid" binding:"required"` // 网元唯一标识
NeType string `json:"neType" gorm:"column:ne_type" binding:"required,oneof=UDM"` // 网元类型
IMSI string `json:"imsi" gorm:"column:imsi"` // SIM卡/USIM卡ID
MSISDN string `json:"msisdn" gorm:"column:msisdn"` // 用户电话号码
Tag string `json:"tag" gorm:"column:tag"` // 0=VoIP, 1=VoLTE
VNI string `json:"vni" gorm:"column:vni"` // VNI

View File

@@ -203,6 +203,10 @@ func Setup(router *gin.Engine) {
middleware.AuthorizeUser(nil),
controller.NewIMS.UeSessionList,
)
imsGroup.GET("/kpi/busy-hour",
middleware.AuthorizeUser(nil),
controller.NewIMS.KPIBusyHour,
)
}
// 网元SMSC
@@ -281,9 +285,9 @@ func Setup(router *gin.Engine) {
// 网元UPF
upfGroup := neDataGroup.Group("/upf")
{
upfGroup.GET("/flow-total",
upfGroup.GET("/kpi/flow-total",
middleware.AuthorizeUser(nil),
controller.NewUPF.FlowTotal,
controller.NewUPF.KPIFlowTotal,
)
}

View File

@@ -118,7 +118,24 @@ func (r KpiReport) SelectUPF(coreUid, neUid string, beginTime, endTime int64) []
tx = tx.Where("created_at <= ?", endTime)
// 查询数据
rows := []model.KpiReport{}
if err := tx.Select("kpi_values").Find(&rows).Error; err != nil {
if err := tx.Select("kpi_values", "created_at").Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}
return rows
}
// SelectIMS 查询IMS数据
func (r KpiReport) SelectIMS(coreUid, neUid string, beginTime, endTime int64) []model.KpiReport {
tx := db.DB("").Model(&model.KpiReport{})
// 表名
tx = tx.Table("kpi_report_ims")
tx = tx.Where("core_uid = ? and ne_uid = ?", coreUid, neUid)
tx = tx.Where("created_at >= ?", beginTime)
tx = tx.Where("created_at <= ?", endTime)
// 查询数据
rows := []model.KpiReport{}
if err := tx.Select("kpi_values", "created_at").Find(&rows).Error; err != nil {
logger.Errorf("query find err => %v", err.Error())
return rows
}

View File

@@ -173,7 +173,7 @@ func (r KpiReport) TitleInsert(param model.KpiTitle) int64 {
// UPFTodayFlowFind 查询UPF总流量 N3上行 N6下行
// day 统计天数
// down * 8 / 1000 / 1000 单位M
// down / 1000 / 1000 单位M
func (r KpiReport) UPFTodayFlowFind(neUid string, day int) (int64, int64) {
// 获取当前日期
now := time.Now()
@@ -280,3 +280,72 @@ func (r KpiReport) UPFTodayFlowLoad(day int) {
}
}
}
// IMSBusyHour IMS忙时流量统计
// SCSCF.06呼叫尝试次数 SCSCF.09呼叫成功次数
func (r KpiReport) IMSBusyHour(coreUid string, neUid string, timestamp int64) []map[string]any {
t := time.UnixMilli(timestamp)
beginTime := t
endTime := t
// 检查时分秒是否都为零
if t.Hour() == 0 && t.Minute() == 0 && t.Second() == 0 {
// 获取当天起始时间00:00:00
beginTime = t.Truncate(time.Hour)
// 计算当天结束时间23:59:59
endTime = beginTime.Add(23*time.Hour + 59*time.Minute + 59*time.Second)
} else {
// 起始时间:当前小时的 00 分 00 秒
beginTime = t.Truncate(time.Hour)
// 结束时间:当前小时的 59 分 59 秒 999 毫秒
endTime = beginTime.Add(time.Hour - time.Millisecond)
}
// 转换为毫秒级时间戳
rows := r.kpiReportRepository.SelectIMS(coreUid, neUid, beginTime.UnixMilli(), endTime.UnixMilli())
// 创建一个map来存储按时间段合并后的数据
timeGroup := make(map[int64]map[string]int64)
// 遍历每个数据项
for _, row := range rows {
// 将毫秒时间戳转换为小时级时间戳(保留到小时的起始毫秒)
timeHour := row.CreatedAt / 3600000 * 3600000 // 1小时 = 3600000毫秒
// 解析 JSON 字符串为 map
var kpiValues []map[string]any
err := json.Unmarshal([]byte(row.KpiValues), &kpiValues)
if err != nil {
continue
}
var callAttempts, callCompletions int64
for _, v := range kpiValues {
if k, ok := v["kpiId"]; ok {
if k == "SCSCF.06" {
callAttempts = parse.Number(v["value"])
}
if k == "SCSCF.09" {
callCompletions = parse.Number(v["value"])
}
}
}
// 合并到对应的小时段
if _, exists := timeGroup[timeHour]; !exists {
timeGroup[timeHour] = map[string]int64{
"callAttempts": 0,
"callCompletions": 0,
}
}
timeGroup[timeHour]["callAttempts"] += callAttempts
timeGroup[timeHour]["callCompletions"] += callCompletions
}
// 时间组合输出
data := make([]map[string]any, 0, len(timeGroup))
for hour, sums := range timeGroup {
data = append(data, map[string]any{
"timeGroup": fmt.Sprintf("%d", hour),
"callAttempts": sums["callAttempts"],
"callCompletions": sums["callCompletions"],
})
}
return data
}

View File

@@ -4,8 +4,10 @@ import (
"fmt"
"strconv"
"strings"
"time"
"be.ems/src/framework/database/redis"
"be.ems/src/framework/utils/date"
neService "be.ems/src/modules/ne/service"
"be.ems/src/modules/ne_data/model"
"be.ems/src/modules/ne_data/repository"
@@ -63,15 +65,25 @@ func (r *UDMAuthUser) dataByRedis(coreUid, neUid, imsi string) []model.UDMAuthUs
if v, ok := m["amf"]; ok {
amf = strings.Replace(v, "\r\n", "", 1)
}
// 创建时间
var createTime int64 = 0
if v, ok := m["create_time"]; ok {
t := date.ParseStrToDate(v, time.RFC3339)
createTime = t.UnixMilli()
} else {
createTime = time.Now().UnixMilli()
}
a := model.UDMAuthUser{
CoreUID: coreUid,
NeUID: neUid,
NeType: "UDM",
IMSI: imsi,
Amf: amf,
Ki: m["ki"],
AlgoIndex: m["algo"],
Opc: m["opc"],
CoreUID: coreUid,
NeUID: neUid,
NeType: "UDM",
IMSI: imsi,
Amf: amf,
Ki: m["ki"],
AlgoIndex: m["algo"],
Opc: m["opc"],
CreateTime: createTime,
}
arr = append(arr, a)
}

View File

@@ -74,10 +74,14 @@ func (s *Alarm) Resolve(a oam.Alarm) error {
if err := s.clearEvent(alarm); err != nil {
return err
}
// 推送
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.CoreUID, neInfo.NeUID), alarm)
} else {
if err := s.clear(alarm); err != nil {
return err
}
// 推送
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID), alarm)
}
}
@@ -89,12 +93,16 @@ func (s *Alarm) Resolve(a oam.Alarm) error {
return err
}
alarm.AlarmSeq = alarmSeq
// 推送
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM_EVENT, neInfo.CoreUID, neInfo.NeUID), alarm)
} else {
alarmSeq, err := s.add(alarm)
if err != nil {
return err
}
alarm.AlarmSeq = alarmSeq
// 推送
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID), alarm)
}
}
@@ -102,8 +110,7 @@ func (s *Alarm) Resolve(a oam.Alarm) error {
if err := s.saveLog(alarm); err != nil {
return err
}
// 推送
s.wsService.ByGroupID(fmt.Sprintf("%s_%s_%s", wsService.GROUP_ALARM, neInfo.CoreUID, neInfo.NeUID), alarm)
// 通知
go s.notify(alarm, neInfo)
return nil

View File

@@ -68,39 +68,6 @@ func (s *IPerfController) Version(c *gin.Context) {
c.JSON(200, resp.OkData(data))
}
// iperf 软件安装
//
// POST /i
//
// @Tags tool/iperf
// @Accept json
// @Produce json
// @Param data body object true "Request Param"
// @Success 200 {object} object "Response Results"
// @Security TokenAuth
// @Summary iperf software installation
// @Description iperf software installation
// @Router /tool/iperf/i [post]
func (s *IPerfController) Install(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var body struct {
CoreUid string `form:"coreUid" binding:"required"` // 核心网唯一资源标识
NeUid string `form:"neUid" binding:"required"` // 网元唯一资源标识
Version string `form:"version" binding:"required,oneof=V2 V3"` // 版本
}
if err := c.ShouldBindBodyWithJSON(&body); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
c.JSON(422, resp.CodeMsg(resp.CODE_PARAM_PARSER, errMsgs))
return
}
if err := s.iperfService.Install(body.CoreUid, body.NeUid, body.Version); err != nil {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, err.Error())))
return
}
c.JSON(200, resp.Ok(nil))
}
// iperf 软件运行
//
// GET /run

View File

@@ -87,7 +87,7 @@ func (s MMLController) Command(c *gin.Context) {
if neInfo.NeType == "UPF" && body.Type == "Standard" {
num = 2
}
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.NeType, neInfo.NeUID, num)
telnetClient, err := s.neInfoService.NeRunTelnetClient(neInfo.CoreUID, neInfo.NeUID, num)
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
return

View File

@@ -7,7 +7,6 @@ import (
"strings"
"time"
"be.ems/src/framework/config"
"be.ems/src/framework/logger"
"be.ems/src/framework/resp"
"be.ems/src/framework/ssh"
@@ -49,89 +48,6 @@ func (s *IPerf) Version(coreUid, neUid, version string) (string, error) {
return strings.TrimSpace(output), err
}
// Install 安装iperf3
func (s *IPerf) Install(coreUid, neUid, version string) error {
if version != "V2" && version != "V3" {
return fmt.Errorf("iperf version is required V2 or V3")
}
// 网元主机的SSH客户端
sshClient, err := neService.NewNeInfo.NeRunSSHClient(coreUid, neUid)
if err != nil {
return err
}
defer sshClient.Close()
// 网元主机的SSH客户端进行文件传输
sftpClient, err := sshClient.NewClientSFTP()
if err != nil {
return err
}
defer sftpClient.Close()
nePath := "/tmp"
depPkg := "sudo dpkg -i"
depDir := "assets/dependency/iperf3/deb"
// 检查平台类型
if _, err := sshClient.RunCMD("sudo dpkg --version"); err == nil {
depPkg = "sudo dpkg -i"
depDir = "assets/dependency/iperf3/deb"
// sudo apt remove iperf3 libiperf0 libsctp1 libsctp-dev lksctp-tools
} else if _, err := sshClient.RunCMD("sudo yum --version"); err == nil {
depPkg = "sudo rpm -Uvh --nosignature --reinstall --force"
depDir = "assets/dependency/iperf3/rpm"
// yum remove iperf3 iperf3-help.noarch
} else {
return fmt.Errorf("iperf %s not supported install", version)
}
// V2版本和V3版本的安装包路径不同
if version == "V2" {
depDir = strings.Replace(depDir, "iperf3", "iperf", 1)
}
// 从 embed.FS 中读取默认配置文件内容
assetsDir := config.GetAssetsDirFS()
fsDirEntrys, err := assetsDir.ReadDir(depDir)
if err != nil {
return err
}
neFilePaths := []string{}
for _, d := range fsDirEntrys {
// 打开本地文件
localFile, err := assetsDir.Open(fmt.Sprintf("%s/%s", depDir, d.Name()))
if err != nil {
return fmt.Errorf("iperf %s file local error", version)
}
defer localFile.Close()
// 创建远程文件
remotePath := fmt.Sprintf("%s/%s", nePath, d.Name())
remoteFile, err := sftpClient.Client.Create(remotePath)
if err != nil {
return fmt.Errorf("iperf %s file remote error", version)
}
defer remoteFile.Close()
// 使用 io.Copy 将嵌入的文件内容复制到目标文件
if _, err := io.Copy(remoteFile, localFile); err != nil {
return fmt.Errorf("iperf %s file copy error", version)
}
neFilePaths = append(neFilePaths, remotePath)
}
// 删除软件包
defer func() {
pkgRemove := fmt.Sprintf("sudo rm %s", strings.Join(neFilePaths, " "))
sshClient.RunCMD(pkgRemove)
}()
// 安装软件包
pkgInstall := fmt.Sprintf("%s %s", depPkg, strings.Join(neFilePaths, " "))
if _, err := sshClient.RunCMD(pkgInstall); err != nil {
return fmt.Errorf("iperf %s install error", version)
}
return err
}
// Run 接收IPerf3终端交互业务处理
func (s *IPerf) Run(client *wsModel.WSClient, reqMsg wsModel.WSRequest) {
// 必传requestId确认消息

View File

@@ -20,11 +20,6 @@ func Setup(router *gin.Engine) {
middleware.AuthorizeUser(nil),
controller.NewIPerf.Version,
)
iperfGroup.POST("/i",
middleware.AuthorizeUser(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.iperf", collectlogs.BUSINESS_TYPE_OTHER)),
controller.NewIPerf.Install,
)
iperfGroup.GET("/run",
middleware.AuthorizeUser(nil),
collectlogs.OperateLog(collectlogs.OptionNew("log.operate.title.iperf", collectlogs.BUSINESS_TYPE_OTHER)),

View File

@@ -8,6 +8,7 @@ import (
"be.ems/src/framework/i18n"
"be.ems/src/framework/reqctx"
"be.ems/src/framework/resp"
"be.ems/src/framework/utils/parse"
"be.ems/src/modules/trace/model"
traceService "be.ems/src/modules/trace/service"
@@ -95,7 +96,7 @@ func (s *TraceTaskController) Remove(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {
CoreUID string `form:"coreUid" binding:"required"` // 核心网唯一标识
ID int64 `form:"id" binding:"required"` // 记录ID
ID string `form:"id" binding:"required"` // 记录ID
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -103,7 +104,15 @@ func (s *TraceTaskController) Remove(c *gin.Context) {
return
}
rows, err := s.traceTaskService.DeleteByIds(query.ID, query.CoreUID)
// 处理字符转id数组后去重
uniqueIDs := parse.RemoveDuplicatesToArray(query.ID, ",")
// 转换成int64数组类型
ids := make([]int64, 0)
for _, v := range uniqueIDs {
ids = append(ids, parse.Number(v))
}
rows, err := s.traceTaskService.DeleteByIds(ids, query.CoreUID)
if err != nil {
c.JSON(200, resp.ErrMsg(i18n.TKey(language, err.Error())))
return

View File

@@ -89,7 +89,7 @@ func (s *TCPdump) DumpStart(coreUid, neUid, cmdStr string) (string, error) {
// 检查进程 ps aux | grep tcpdump
// 强杀 sudo pkill tcpdump
pidKey := fmt.Sprintf("%s_%s", neInfo.NeUID, taskCode)
pidKey := fmt.Sprintf("%s_%s_%s", strings.ToLower(neInfo.NeType), neInfo.NeUID, taskCode)
dumpPIDMap.Store(pidKey, PIDMap)
return taskCode, err
}

View File

@@ -295,20 +295,20 @@ func (r TraceTask) traceNeTask(neInfo neModel.NeInfo, task model.TraceTask) erro
}
// DeleteByIds 批量删除信息
func (r TraceTask) DeleteByIds(id int64, coreUid string) (int64, error) {
func (r TraceTask) DeleteByIds(ids []int64, coreUid string) (int64, error) {
// 检查是否存在
rows := r.traceTaskRepository.SelectByIds([]int64{id})
if len(rows) != 1 {
return 0, fmt.Errorf("not data")
arr := r.traceTaskRepository.SelectByIds(ids)
if len(arr) != len(ids) {
return 0, fmt.Errorf("not match id")
}
for _, v := range rows {
for _, v := range arr {
if v.CoreUID != coreUid {
return 0, fmt.Errorf("data not match, id: %d", v.ID)
}
}
// 删除数据同时给网元发送停止任务
for _, v := range rows {
for _, v := range arr {
// 删除数据
r.traceDataRepository.DeleteByTraceId(v.TraceId)
@@ -332,7 +332,7 @@ func (r TraceTask) DeleteByIds(id int64, coreUid string) (int64, error) {
}
}
num := r.traceTaskRepository.DeleteByIds([]int64{id})
num := r.traceTaskRepository.DeleteByIds(ids)
return num, nil
}

View File

@@ -33,10 +33,10 @@ import (
func (s *WSController) ShellView(c *gin.Context) {
language := reqctx.AcceptLanguage(c)
var query struct {
NeType string `form:"neType" binding:"required"` // 网元类型
NeId string `form:"neId" binding:"required"` // 网元标识id
Cols int `form:"cols"` // 终端单行字符数
Rows int `form:"rows"` // 终端显示行数
CoreUid string `form:"coreUid" binding:"required"` // 核心网唯一资源标识
NeUid string `form:"neUid" binding:"required"` // 网元唯一资源标识
Cols int `form:"cols"` // 终端单行字符数
Rows int `form:"rows"` // 终端显示行数
}
if err := c.ShouldBindQuery(&query); err != nil {
errMsgs := fmt.Sprintf("bind err: %s", resp.FormatBindError(err))
@@ -58,7 +58,7 @@ func (s *WSController) ShellView(c *gin.Context) {
}
// 网元主机的SSH客户端
sshClient, err := neService.NewNeInfo.NeRunSSHClient(query.NeType, query.NeId)
sshClient, err := neService.NewNeInfo.NeRunSSHClient(query.CoreUid, query.NeUid)
if err != nil {
c.JSON(200, resp.ErrMsg(err.Error()))
return

View File

@@ -39,12 +39,12 @@ func GetNeState(requestID string, data any) ([]byte, error) {
resultByte, err := json.Marshal(resp.Ok(map[string]any{
"requestId": requestID,
"data": map[string]any{
"online": false,
"coreUid": neInfo.CoreUID,
"neUid": neInfo.NeUID,
"neName": neInfo.NeName,
"neType": neInfo.NeType,
"neIPAddr": neInfo.IPAddr,
"online": false,
"coreUid": neInfo.CoreUID,
"neUid": neInfo.NeUID,
"neName": neInfo.NeName,
"neType": neInfo.NeType,
"ipAddr": neInfo.IPAddr,
},
}))
return resultByte, err

View File

@@ -3,6 +3,7 @@ package processor
import (
"encoding/json"
"fmt"
"strconv"
"strings"
"be.ems/src/framework/logger"
@@ -41,9 +42,15 @@ func GetNetConnections(requestID string, data any) ([]byte, error) {
if query.Name != "" && !strings.Contains(name, query.Name) {
continue
}
if query.Port > 0 && query.Port != int32(conn.Laddr.Port) && query.Port != int32(conn.Raddr.Port) {
continue
if query.Port > 0 {
portStr := strconv.Itoa(int(query.Port))
matchL := strings.HasPrefix(strconv.Itoa(int(conn.Laddr.Port)), portStr)
matchR := strings.HasPrefix(strconv.Itoa(int(conn.Raddr.Port)), portStr)
if !matchL && !matchR {
continue
}
}
dataArr = append(dataArr, model.NetConnectData{
Type: netType,
Status: conn.Status,

View File

@@ -12,35 +12,35 @@ import (
const (
// 组号-其他
GROUP_OTHER = "0"
// 组号-跟踪任务网元数据变更 2_traceId
// 组号-跟踪任务网元数据变更 2_taskId
GROUP_TRACE_NE = "2"
// 组号-信令跟踪Packet 4_taskNo
// 组号-信令跟踪Packet 4_TaskNo
GROUP_TRACE_PACKET = "4"
// 组号-网元状态 8_neType_neId
// 组号-网元状态 8_coreUid_neUid
GROUP_NE_STATE = "8"
// 组号-指标通用 10_neType_neId
// 组号-指标通用 10_coreUid_neUid
GROUP_KPI = "10"
// 组号-自定义KPI指标 20_neType_neId
// 组号-自定义KPI指标 20_coreUid_neUid
GROUP_KPI_C = "20"
// 组号-IMS_CDR会话事件 1005_neId
// 组号-IMS_CDR会话事件 1005_coreUid_neUid
GROUP_IMS_CDR = "1005"
// 组号-SMF_CDR会话事件 1006_neId
// 组号-SMF_CDR会话事件 1006_coreUid_neUid
GROUP_SMF_CDR = "1006"
// 组号-SMSC_CDR会话事件 1007_neId
// 组号-SMSC_CDR会话事件 1007_coreUid_neUid
GROUP_SMSC_CDR = "1007"
// 组号-SGWC_CDR会话事件 1008_neId
// 组号-SGWC_CDR会话事件 1008_coreUid_neUid
GROUP_SGWC_CDR = "1008"
// 组号-AMF_UE会话事件 1010_neId
// 组号-AMF_UE会话事件 1010_coreUid_neUid
GROUP_AMF_UE = "1010"
// 组号-MME_UE会话事件 1011_neId
// 组号-MME_UE会话事件 1011_coreUid_neUid
GROUP_MME_UE = "1011"
// 组号-AMF_NB状态事件 1014_neId
// 组号-AMF_NB状态事件 1014_coreUid_neUid
GROUP_AMF_NB = "1014"
// 组号-MME_NB状态事件 1015_neId
// 组号-MME_NB状态事件 1015_coreUid_neUid
GROUP_MME_NB = "1015"
// 组号-告警 2000_neType_neId
// 组号-告警 2000_coreUid_neUid
GROUP_ALARM = "2000"
// 组号-告警事件 2002_neType_neId
// 组号-告警事件 2002_coreUid_neUid
GROUP_ALARM_EVENT = "2002"
)