From 2ba5b9de4efbb2465f09bcb66ef6d1e6ab4b1625 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=92?= Date: Sat, 1 Nov 2025 14:37:08 +0800 Subject: [PATCH] 1 --- .../service/impl/InstructionServiceImpl.java | 20 +++++++++++++++++++ 1 file changed, 20 insertions(+) diff --git a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java index cbb7bf3..75debc9 100644 --- a/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java +++ b/ruoyi-system/src/main/java/com/ruoyi/jarvis/service/impl/InstructionServiceImpl.java @@ -826,8 +826,24 @@ private String handleTF(String input) { // 解析第一行:🕒 林[1518] -> 提取姓名 String nameLine = lines[0].trim(); + // 先移除"拼多多"文本(如果存在) + nameLine = nameLine.replace("拼多多", "").trim(); // 移除emoji和特殊字符,提取中文姓名 String name = extractChinese(nameLine); + // 如果提取失败,尝试直接从第一行提取(去除emoji、符号和括号内容后剩余的中文) + if (name.isEmpty()) { + // 移除所有emoji和特殊符号,只保留中文 + String cleaned = nameLine.replaceAll("[🕒\\[\\]]", "").replaceAll("\\[.*?\\]", "").trim(); + // 再次移除"拼多多"(防止遗漏) + cleaned = cleaned.replace("拼多多", "").trim(); + // 只保留中文字符 + name = extractChinese(cleaned); + } else { + // 确保提取的姓名不包含"拼多多" + if (name.contains("拼多多")) { + name = name.replace("拼多多", "").trim(); + } + } // 提取编号(如果有) String suffix = extractBetweenBrackets(nameLine); @@ -847,8 +863,12 @@ private String handleTF(String input) { // 构建完整地址:姓名 + 固定号码(13068923963) + 地址 + 原始电话 + 转 + 编号 // 格式:林 13068923963 广西壮族自治区 柳州市 柳北区 绿城·杨柳郡柳园7栋 17284023487转1518 StringBuilder fullAddress = new StringBuilder(); + // 确保姓名不为空,如果仍为空则使用默认值(但这种情况应该不会发生) if (!name.isEmpty()) { fullAddress.append(name); + } else { + // 如果姓名提取失败,记录日志(生产环境可以移除) + System.err.println("警告:拼多多格式姓名提取失败,第一行内容:" + nameLine); } // 固定的号码 fullAddress.append(" 13068923963 ");