From 91d25247ccf97714a9a65fc7c86c40f89fb845b8 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E8=8D=92?= Date: Thu, 28 Aug 2025 19:22:51 +0800 Subject: [PATCH] 1 --- .../service/impl/InstructionServiceImpl.java | 48 +++++++++++-------- 1 file changed, 29 insertions(+), 19 deletions(-) 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 7ce8d2f..ccf5752 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 @@ -262,27 +262,37 @@ public class InstructionServiceImpl implements IInstructionService { } private String handleTF(String input) { - String[] parts = input.replace("TF", "").split("\t"); // 使用制表符分割 - if (parts.length >= 3) { - String modelNumber = parts[0].replace("\\n", ""); // 型号 - String quantityStr = parts[1]; // 数量 - StringBuilder address = new StringBuilder(); - // 使用正则表达式提取中文字符 - Pattern pattern = Pattern.compile("[\\u4E00-\\u9FA5]+"); - Matcher matcher = pattern.matcher(parts[2]); - if (matcher.find()) { - address = new StringBuilder(matcher.group()); - } - for (int i = 3; i < parts.length; i++) { - address.append(parts[i]); - } - String jf = productWithJF.get(modelNumber); + String body = input.replaceFirst("^TF\\s*", ""); + String[] lines = body.split("\\r?\\n+"); + List outputs = new ArrayList<>(); + for (String line : lines) { + if (line == null) continue; + line = line.trim(); + if (line.isEmpty()) continue; + String[] parts = line.split("\t"); // 使用制表符分割每一行 + if (parts.length >= 3) { + String modelNumber = parts[0].replace("\\n", ""); // 型号 + String quantityStr = parts[1]; // 数量 + StringBuilder address = new StringBuilder(); + // 使用正则表达式提取中文字符(常用于姓名开头) + Pattern pattern = Pattern.compile("[\\u4E00-\\u9FA5]+"); + Matcher matcher = pattern.matcher(parts[2]); + if (matcher.find()) { + address = new StringBuilder(matcher.group()); + } + for (int i = 3; i < parts.length; i++) { + address.append(parts[i]); + } + String jf = productWithJF.get(modelNumber); - StringBuilder order = new StringBuilder(); - order.append("生").append("\n").append("H-TF").append("\n").append(modelNumber).append("\n").append(jf).append("\n").append(quantityStr).append("\n").append(address); - return generateOrderText(order.toString()); + StringBuilder order = new StringBuilder(); + order.append("生").append("\n").append("H-TF").append("\n").append(modelNumber).append("\n").append(jf).append("\n").append(quantityStr).append("\n").append(address); + outputs.add(generateOrderText(order.toString())); + } else { + outputs.add("TF 指令格式:TF\t型号\t数量\t地址(可含其它字段) ;也支持多行,每行一条数据"); + } } - return "TF 指令格式:TF\t型号\t数量\t地址(可含其它字段)"; + return String.join("\n\n", outputs); } private String handleH(String input) {