feat: psap support ticket notification
This commit is contained in:
@@ -34,5 +34,6 @@ CREATE TABLE `ne_info` (
|
||||
-- 初始网元数据
|
||||
INSERT INTO `ne_info` VALUES (1, 'OMC', '001', '4400PSAPOMC001', 'PSAP门户管理中心', '172.16.5.100', 33030, 'PNF', '-', '-', '-', '-', '1,2', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (2, 'MF', '001', '4400PSAPMF0001', 'PSAP紧急呼叫中心', '172.16.5.110', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
INSERT INTO `ne_info` VALUES (3, 'CBC', '001', '4400PSAPCBC001', 'PSAP小区广播中心', '172.16.5.120', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
|
||||
@@ -723,5 +723,7 @@ INSERT INTO `sys_dict_data` VALUES (20006, 4, 'callback.status.NO_ANSWER_2', '
|
||||
INSERT INTO `sys_dict_data` VALUES (20007, 5, 'callback.status.TIMEOUT', '超时', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784100809, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (20008, 6, 'callback.status.PENDING', '挂起', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784115379, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (20009, 7, 'callback.status.CLOSED', '关闭', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784127612, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (20010, 20010, 'job.export.cdr.mf', '定期导出MF话单', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (20011, 20011, 'job.psap.ticket.monitor', '回拨工单监控', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -723,5 +723,7 @@ INSERT INTO `sys_dict_data` VALUES (25006, 4, 'callback.status.NO_ANSWER_2', 'NO
|
||||
INSERT INTO `sys_dict_data` VALUES (25007, 5, 'callback.status.TIMEOUT', 'TIMEOUT', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784100809, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (25008, 6, 'callback.status.PENDING', 'PENDING', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784115379, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (25009, 7, 'callback.status.CLOSED', 'CLOSED', 'callback_status', NULL, NULL, '1', 'supervisor', 1749784127612, '', 0, NULL);
|
||||
INSERT INTO `sys_dict_data` VALUES (25010, 25010, 'job.export.cdr.mf', 'Regularly Export MF CDR', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT INTO `sys_dict_data` VALUES (25011, 25011, 'job.psap.ticket.monitor', 'Callback Ticket Monitor', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -30,19 +30,14 @@ CREATE TABLE `sys_job` (
|
||||
-- ----------------------------
|
||||
INSERT INTO `sys_job` VALUES (1, 'job.monitor_sys_resource', 'SYSTEM', 'monitor_sys_resource', '{\"interval\":5}', '0 0/5 * * * ?', '3', '0', '1', '0', 'supervisor', 1698478134839, 'supervisor', 1700571615807, 'job.monitor_sys_resource_remark');
|
||||
INSERT INTO `sys_job` VALUES (2, 'job.ne_config_backup', 'SYSTEM', 'ne_config_backup', '', '0 30 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134839, 'supervisor', 1700571615807, 'job.ne_config_backup_remark');
|
||||
INSERT INTO `sys_job` VALUES (3, 'job.ne_data_udm', 'SYSTEM', 'ne_data_udm', '', '0 0 0/12 * * ?', '3', '0', '1', '1', 'supervisor', 1730173767412, '', 0, '');
|
||||
INSERT INTO `sys_job` VALUES (4, 'job.delExpiredNeBackup', 'SYSTEM', 'delExpiredNeBackup', '{\"duration\":60}', '0 20 0 * * ?', '3', '0', '0', '1', 'supervisor', 1698478134840, NULL, 0, 'job.delExpiredNeBackupRemark');
|
||||
INSERT INTO `sys_job` VALUES (5, 'job.deleteExpiredAlarmRecord', 'SYSTEM', 'deleteExpiredRecord', '{\"duration\":90,\"tableName\":\"alarm\",\"colName\":\"event_time\",\"extras\":\"alarm_status=\'0\'\"}', '0 10 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134841, NULL, 0, 'job.deleteExpiredAlarmRecordRemark');
|
||||
INSERT INTO `sys_job` VALUES (6, 'job.deleteExpiredKpiRecord', 'SYSTEM', 'deleteExpiredRecord', '{\"duration\":30,\"tableName\":\"gold_kpi\",\"colName\":\"date\"}', '0 15 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'supervisor', 1700570673113, 'job.deleteExpiredKpiRecordRemark');
|
||||
INSERT INTO `sys_job` VALUES (7, 'job.backupEtcFromNE', 'SYSTEM', 'backupEtcFromNE', NULL, '0 30 0 * * ?', '3', '0', '0', '1', 'supervisor', 1698478134843, NULL, 0, 'job.backupEtcFromNERemark');
|
||||
INSERT INTO `sys_job` VALUES (8, 'job.deleteExpiredNeStateRecord', 'SYSTEM', 'deleteExpiredRecord', '{\"duration\":1,\"tableName\":\"ne_state\",\"colName\":\"timestamp\"}', '0 25 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1703668901929, 'job.deleteExpiredNeStateRecordRemark');
|
||||
INSERT INTO `sys_job` VALUES (9, 'job.getStateFromNE', 'SYSTEM', 'getStateFromNE', '', '0/10 * * * * ?', '3', '0', '0', '0', 'supervisor', 1698478134842, 'admin', 1713231120503, 'job.getStateFromNERemark');
|
||||
INSERT INTO `sys_job` VALUES (10, 'job.genNeStateAlarm', 'SYSTEM', 'genNeStateAlarm', '{\"alarmID\":\"HXEMSSM10000\",\"alarmCode\":10000,\"alarmTitle\":\"The system state is abnormal\",\"neType\":\"OMC\",\"alarmType\":\"EquipmentAlarm\",\"origSeverity\": \"Major\",\"objectName\":\"EMS;SystemManagement;Heartbeat\",\"objectType\":\"SystemState\",\"specificProblem\":\"Alarm cause: the system state of target NE has not been received for {threshold} seconds\", \"specificProblemID\":\"AC10000\",\"threshold\":30}', '0/5 * * * * ?', '3', '0', '1', '0', 'supervisor', 1698478134842, 'admin', 1713781643031, 'job.genNeStateAlarmRemark');
|
||||
INSERT INTO `sys_job` VALUES (11, 'job.exportOperateLog', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"sys_log_operate\",\"timeCol\":\"oper_time\",\"timeUnit\":\"milli\",\"columns\":\"oper_id,omc_get_dict_value(title, \\\"i18n_en\\\") as title,business_type,method,request_method,operator_type,oper_name,dept_name,oper_url,oper_ip,oper_location,oper_param,oper_msg,status,oper_time,cost_time\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/operate_log\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724833786290, 'job.exportOperateLog');
|
||||
INSERT INTO `sys_job` VALUES (12, 'job.exportIMSCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_ims\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callType\')) as call_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callDuration\')) as call_duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceResult\')) as service_result,DATE_FORMAT(FROM_UNIXTIME(timestamp), \'%Y-%m-%d %H:%i:%s\') AS timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/ims_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1722224659251, '');
|
||||
INSERT INTO `sys_job` VALUES (13, 'job.exportSMFCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smf\",\"columns\":\"id,ne_type,ne_name,rm_uid,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) AS record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.chargingID\')) AS charging_id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDType\')) AS subscriber_id_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.subscriberIdentifier.subscriptionIDData\')) AS subscriber_id_data,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.duration\')) AS duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.invocationTimestamp\')) as invocationTimestamp,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeUplink\')) AS data_volume_uplink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataVolumeDownlink\')) AS data_volume_downlink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.listOfMultipleUnitUsage[*].usedUnitContainer[*].dataTotalVolume\')) AS data_total_volume,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.pDUSessionChargingInformation.pDUAddress.pDUIPv4Address\')) AS pdu_ipv4_address,timestamp\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smf_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
|
||||
INSERT INTO `sys_job` VALUES (14, 'job.exportSMSCCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_smsc\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as record_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceType\')) as service_type,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as caller_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as called_party,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.result\')) as result,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.updateTime\')) as update_time\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/smsc_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
|
||||
INSERT INTO `sys_job` VALUES (15, 'job.removeExportedFiles', 'SYSTEM', 'removeFile', '[{\"filePath\":\"/usr/local/omc/backup/operate_log\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/ims_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smf_cdr\",\"maxDays\":30},{\"filePath\":\"/usr/local/omc/backup/smsc_cdr\",\"maxDays\":30}]', '0 10 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1728634085631, '');
|
||||
INSERT INTO `sys_job` VALUES (16, 'job.exportSGWCCDR', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_sgwc\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as recordType,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.accessPointNameNI\')) as accessPointNameNI,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.servedIMSI\')) as IMSI,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.servedMSISDN\')) as MSISDN,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.servedPDPPDNAddress\')) as PdpAddress,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.duration\')) as duration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordOpeningTime\')) as recordOpeningTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.chargingID\')) as chargingID,JSON_UNQUOTE(JSON_EXTRACT(cdr_json, \'$.listOfTrafficVolumes[0].dataVolumeGPRSDownlink\')) AS dataVolumeGPRSDownlink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json, \'$.listOfTrafficVolumes[0].dataVolumeGPRsUplink\')) as dataVolumeGPRsUplink,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.userLocationInformation.tai.tac\')) as tac,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.userLocationInformation.ecgi.eutraCellId\')) as cellID\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/sgwc_cdr\"}', '0 0 0/1 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1724309047797, '');
|
||||
INSERT INTO `sys_job` VALUES (15, 'job.removeExportedFiles', 'SYSTEM', 'removeFile', '[{\"filePath\":\"/usr/local/omc/backup/mf_cdr\",\"maxDays\":30}]', '0 10 0 * * ?', '3', '0', '1', '1', 'supervisor', 1698478134842, 'admin', 1728634085631, '');
|
||||
INSERT INTO `sys_job` VALUES (100, 'job.export.cdr.mf', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_mf\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as recordType,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as callerParty,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as calledParty,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.seizureTime\')) as seizureTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.answerTime\')) as answerTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.releaseTime\')) as releaseTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callDuration\')) as callDuration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordPath\')) as recordPath,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.msdData\')) as msdData,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceResult\')) as serviceResult\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/mf_cdr\"}', '0 40 0 * * ?', '3', '0', '1', '1', 'admin', (UNIX_TIMESTAMP(NOW(3)) * 1000), '', NULL, '');
|
||||
INSERT INTO `sys_job` VALUES (101, 'job.psap.ticket.monitor', 'SYSTEM', 'psap_ticket_monitor', '{}', '0/5 * * * * ?', '3', '0', '1', '1', 'admin', (UNIX_TIMESTAMP(NOW(3)) * 1000), '', NULL, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
|
||||
@@ -37,6 +37,8 @@ INSERT INTO `sys_role_menu` VALUES (2, 101);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 102);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 108);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 115);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 116);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 117);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 500);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1000);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1001);
|
||||
@@ -61,6 +63,10 @@ INSERT INTO `sys_role_menu` VALUES (2, 1041);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1048);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1049);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1050);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1051);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1053);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1055);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 1056);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2087);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2088);
|
||||
INSERT INTO `sys_role_menu` VALUES (2, 2089);
|
||||
|
||||
40
database/upgrade/upg_ne_info.sql
Normal file
40
database/upgrade/upg_ne_info.sql
Normal file
@@ -0,0 +1,40 @@
|
||||
SET NAMES utf8mb4;
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
--
|
||||
-- Table structure for table `ne_info`
|
||||
--
|
||||
|
||||
|
||||
CREATE TABLE IF NOT EXISTS `ne_info` (
|
||||
`id` int NOT NULL AUTO_INCREMENT,
|
||||
`ne_type` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL,
|
||||
`ne_id` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci NOT NULL DEFAULT '',
|
||||
`rm_uid` varchar(40) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`ne_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`ip` varchar(128) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`port` int DEFAULT '0' COMMENT '端口',
|
||||
`pv_flag` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT 'PNF' COMMENT '''PNF'',''VNF''',
|
||||
`province` varchar(32) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-' COMMENT '省份地域',
|
||||
`vendor_name` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '-',
|
||||
`dn` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '',
|
||||
`ne_address` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT 'MAC地址',
|
||||
`host_ids` varchar(64) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '网元主机ID组 数据格式(ssh,telnet)-来自ne_host表',
|
||||
`status` int DEFAULT '0' COMMENT '0离线 1在线 2配置待下发 3备用模式',
|
||||
`remark` varchar(255) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '备注',
|
||||
`create_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '创建者',
|
||||
`create_time` bigint DEFAULT '0' COMMENT '创建时间',
|
||||
`update_by` varchar(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci DEFAULT '' COMMENT '更新者',
|
||||
`update_time` bigint DEFAULT '0' COMMENT '更新时间',
|
||||
PRIMARY KEY (`id`) USING BTREE,
|
||||
UNIQUE KEY `ux_netype_neid` (`ne_type`,`ne_id`) USING BTREE
|
||||
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_general_ci COMMENT='网元信息表 对应一个网元版本、网元授权、网元主机';
|
||||
|
||||
-- 初始网元数据
|
||||
INSERT IGNORE INTO `ne_info` VALUES (1, 'OMC', '001', '4400PSAPOMC001', 'PSAP门户管理中心', '172.16.5.100', 33030, 'PNF', '-', '-', '-', '-', '1,2', 0, '', '', 0, '', 0);
|
||||
INSERT IGNORE INTO `ne_info` VALUES (2, 'MF', '001', '4400PSAPMF0001', 'PSAP紧急呼叫中心', '172.16.5.110', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
INSERT IGNORE INTO `ne_info` VALUES (3, 'CBC', '001', '4400PSAPCBC001', 'PSAP小区广播中心', '172.16.5.120', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
INSERT IGNORE INTO `ne_info` VALUES (4, 'IMS', '001', '4400PSAPIMS001', 'PSAP彩铃中心', '172.16.5.130', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
INSERT IGNORE INTO `ne_info` VALUES (5, 'SMSC', '001', '4400PSAPSMSC01', 'PSAP彩信中心', '172.16.5.140', 33030, 'PNF', '-', '-', '-', '-', '3,4', 0, '', '', 0, '', 0);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
6
database/upgrade/upg_sys_dict_data_en.sql
Normal file
6
database/upgrade/upg_sys_dict_data_en.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
INSERT IGNORE INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `tag_class`, `tag_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (25010, 25010, 'job.export.cdr.mf', 'Regularly Export MF CDR', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `tag_class`, `tag_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (25011, 25011, 'job.psap.ticket.monitor', 'Callback Ticket Monitor', 'i18n_en', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
6
database/upgrade/upg_sys_dict_data_zh.sql
Normal file
6
database/upgrade/upg_sys_dict_data_zh.sql
Normal file
@@ -0,0 +1,6 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
INSERT IGNORE INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `tag_class`, `tag_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20010, 20010, 'job.export.cdr.mf', '定期导出MF话单', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_dict_data` (`dict_code`, `dict_sort`, `dict_label`, `dict_value`, `dict_type`, `tag_class`, `tag_type`, `status`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (20011, 20011, 'job.psap.ticket.monitor', '回拨工单监控', 'i18n_zh', '', '', '1', 'supervisor', 1721902269805, '', 0, '');
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
14
database/upgrade/upg_sys_job.sql
Normal file
14
database/upgrade/upg_sys_job.sql
Normal file
@@ -0,0 +1,14 @@
|
||||
SET FOREIGN_KEY_CHECKS=0;
|
||||
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 3;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 6;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 11;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 12;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 13;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 14;
|
||||
DELETE FROM `sys_job` WHERE `job_id` = 16;
|
||||
INSERT IGNORE INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `target_params`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `save_log`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (100, 'job.export.cdr.mf', 'SYSTEM', 'exportTable', '{\"duration\":1,\"tableName\":\"cdr_event_mf\",\"columns\":\"id,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordType\')) as recordType,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callerParty\')) as callerParty,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.calledParty\')) as calledParty,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.seizureTime\')) as seizureTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.answerTime\')) as answerTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.releaseTime\')) as releaseTime,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.callDuration\')) as callDuration,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.recordPath\')) as recordPath,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.msdData\')) as msdData,JSON_UNQUOTE(JSON_EXTRACT(cdr_json,\'$.serviceResult\')) as serviceResult\",\"timeCol\":\"timestamp\",\"timeUnit\":\"second\",\"extras\":\"\",\"filePath\":\"/usr/local/omc/backup/mf_cdr\"}', '0 40 0 * * ?', '3', '0', '1', '1', 'admin', 1698478134842, '', 0, '');
|
||||
INSERT IGNORE INTO `sys_job` (`job_id`, `job_name`, `job_group`, `invoke_target`, `target_params`, `cron_expression`, `misfire_policy`, `concurrent`, `status`, `save_log`, `create_by`, `create_time`, `update_by`, `update_time`, `remark`) VALUES (101, 'job.psap.ticket.monitor', 'SYSTEM', 'psap_ticket_monitor', '{}', '0/5 * * * * ?', '3', '0', '1', '1', 'admin', 1750406767785, '', NULL, '');
|
||||
UPDATE `sys_job` SET `job_name` = 'job.removeExportedFiles', `job_group` = 'SYSTEM', `invoke_target` = 'removeFile', `target_params` = '[{\"filePath\":\"/usr/local/omc/backup/mf_cdr\",\"maxDays\":30}]', `cron_expression` = '0 10 0 * * ?', `misfire_policy` = '3', `concurrent` = '0', `status` = '1', `save_log` = '1', `create_by` = 'supervisor', `create_time` = 1698478134842, `update_by` = 'admin', `update_time` = 1728634085631, `remark` = '' WHERE `job_id` = 15;
|
||||
|
||||
SET FOREIGN_KEY_CHECKS=1;
|
||||
11
database/upgrade/upg_sys_role_menu.sql
Normal file
11
database/upgrade/upg_sys_role_menu.sql
Normal file
@@ -0,0 +1,11 @@
|
||||
SET FOREIGN_KEY_CHECKS = 0;
|
||||
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 2);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 116);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 117);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1051);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1053);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1055);
|
||||
INSERT IGNORE INTO `sys_role_menu` (`role_id`, `menu_id`) VALUES (2, 1056);
|
||||
|
||||
SET FOREIGN_KEY_CHECKS = 1;
|
||||
@@ -11,6 +11,7 @@ import (
|
||||
"be.ems/lib/config"
|
||||
"be.ems/lib/core/ctx"
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/email"
|
||||
"be.ems/lib/log"
|
||||
"be.ems/lib/services"
|
||||
neService "be.ems/src/modules/network_element/service"
|
||||
@@ -115,6 +116,15 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
||||
// 选择下一个要分配的座席
|
||||
selectedAgent := mfService.SelectNextAgent(agentResp.Data, lastAgent)
|
||||
|
||||
// 获取分配座席的邮箱
|
||||
agentEmail := ""
|
||||
for _, agent := range agentResp.Data {
|
||||
if agent.Name == selectedAgent {
|
||||
agentEmail = agent.Email
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 创建回调工单
|
||||
var updatedAt *int64 = nil
|
||||
ticket := ueCallBackTicket.CallbackTicket{
|
||||
@@ -133,6 +143,12 @@ func PostCDREventFrom(w http.ResponseWriter, r *http.Request) {
|
||||
// services.ResponseInternalServerError500ProcessError(w, err)
|
||||
// return
|
||||
}
|
||||
// 新工单分配后发送邮件通知
|
||||
if agentEmail != "" {
|
||||
subject := "新工单分配通知"
|
||||
body := fmt.Sprintf("您被分配了一个新的回拨工单,主叫号码:%s", ticket.CallerNumber)
|
||||
go email.SendEmail(agentEmail, subject, body) // 异步发送
|
||||
}
|
||||
}
|
||||
|
||||
// MF网元类型特殊处理, 处理座席回拨的工单流转
|
||||
|
||||
@@ -5,6 +5,7 @@ import (
|
||||
"time"
|
||||
|
||||
"be.ems/lib/dborm"
|
||||
"be.ems/lib/email"
|
||||
"gorm.io/gorm"
|
||||
)
|
||||
|
||||
@@ -347,6 +348,15 @@ func (s *CallbackTicketService) UpdateTicketToTimeout(ticket *CallbackTicket, or
|
||||
lastAgent := ticket.AgentName
|
||||
newAgent := s.SelectNextAgent(agents, lastAgent)
|
||||
|
||||
// 查找新座席邮箱
|
||||
newAgentEmail := ""
|
||||
for _, agent := range agents {
|
||||
if agent.Name == newAgent {
|
||||
newAgentEmail = agent.Email
|
||||
break
|
||||
}
|
||||
}
|
||||
|
||||
// 3. 创建新工单
|
||||
newTicket := CallbackTicket{
|
||||
CallerNumber: ticket.CallerNumber,
|
||||
@@ -363,5 +373,12 @@ func (s *CallbackTicketService) UpdateTicketToTimeout(ticket *CallbackTicket, or
|
||||
return fmt.Errorf("创建新工单失败: %w", err)
|
||||
}
|
||||
|
||||
// 新工单分配后发送邮件通知
|
||||
if newAgentEmail != "" {
|
||||
subject := "新工单自动重建通知"
|
||||
body := fmt.Sprintf("您被分配了一个自动重建的回拨工单,主叫号码:%s", newTicket.CallerNumber)
|
||||
go email.SendEmail(newAgentEmail, subject, body)
|
||||
}
|
||||
|
||||
return nil
|
||||
}
|
||||
|
||||
19
lib/email/email.go
Normal file
19
lib/email/email.go
Normal file
@@ -0,0 +1,19 @@
|
||||
package email
|
||||
|
||||
import "net/smtp"
|
||||
|
||||
// 简单邮件发送函数
|
||||
func SendEmail(to, subject, body string) error {
|
||||
from := "your@email.com"
|
||||
password := "your_password"
|
||||
smtpHost := "smtp.yourserver.com"
|
||||
smtpPort := "587"
|
||||
|
||||
msg := "From: " + from + "\n" +
|
||||
"To: " + to + "\n" +
|
||||
"Subject: " + subject + "\n\n" +
|
||||
body
|
||||
|
||||
auth := smtp.PlainAuth("", from, password, smtpHost)
|
||||
return smtp.SendMail(smtpHost+":"+smtpPort, auth, from, []string{to}, []byte(msg))
|
||||
}
|
||||
@@ -34,10 +34,10 @@ func (s *PsapTicketMonitor) Execute(data any) (any, error) {
|
||||
"count": s.count,
|
||||
}
|
||||
|
||||
// 处理超时的NEW状态工单 (30分钟)
|
||||
// 处理超时的NEW状态工单 (60分钟)
|
||||
newTicketsUpdated, err := s.handleTimeoutTickets(
|
||||
ueCallBackTicket.TicketStatusNew.Enum(),
|
||||
30*60*1000000, // 30分钟(微秒)
|
||||
60*1000000, // 60分钟(微秒)
|
||||
)
|
||||
if err != nil {
|
||||
logger.Errorf("处理NEW状态超时工单失败: %v", err)
|
||||
|
||||
@@ -21,6 +21,8 @@ func (r NeInfo) neListSort(arr []model.NeInfo) []model.NeInfo {
|
||||
"OMC",
|
||||
"CBC",
|
||||
"MF",
|
||||
"IMS",
|
||||
"SMSC",
|
||||
}
|
||||
|
||||
// 创建优先级映射
|
||||
|
||||
Reference in New Issue
Block a user