From c5243f3521fc014b4e2649789d16ca1f3b7e849d Mon Sep 17 00:00:00 2001 From: 秦芳睿 <1425609123@qq.com> Date: 星期六, 22 三月 2025 00:27:54 +0800 Subject: [PATCH] 1 --- JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java | 130 +++++++++++++++++++++++++++++++++++++++++- 1 files changed, 125 insertions(+), 5 deletions(-) diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java index 31c0566..edef209 100644 --- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java +++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java @@ -1,7 +1,7 @@ package com.smtaiserver.smtaiserver.core; -import java.io.ByteArrayOutputStream; -import java.io.InputStream; +import java.io.*; +import java.net.URLEncoder; import java.sql.Connection; import java.sql.DriverManager; import java.util.ArrayList; @@ -19,6 +19,12 @@ import org.apache.logging.log4j.LogManager; import org.apache.logging.log4j.Logger; +import org.apache.pdfbox.pdmodel.PDDocument; +import org.apache.pdfbox.text.PDFTextStripper; +import org.apache.poi.hwpf.HWPFDocument; +import org.apache.poi.hwpf.extractor.WordExtractor; +import org.apache.poi.xwpf.extractor.XWPFWordExtractor; +import org.apache.poi.xwpf.usermodel.XWPFDocument; import org.dom4j.Document; import org.dom4j.io.OutputFormat; import org.dom4j.io.XMLWriter; @@ -36,6 +42,7 @@ import org.springframework.web.context.WebApplicationContext; import com.alibaba.druid.pool.DruidDataSource; +import com.smtaiserver.smtaiserver.attach.SMTAIAttachMetricDef; import com.smtaiserver.smtaiserver.attach.SMTAIAttachTableDef; import com.smtaiserver.smtaiserver.database.SMTDatabase; import com.smtaiserver.smtaiserver.gismap.SMTGisMapLayerDef; @@ -66,6 +73,7 @@ import net.sf.ehcache.CacheManager; import com.smtservlet.core.SMTApp.SMTEhCacheManagerInitialize; +import org.springframework.web.multipart.MultipartFile; public class SMTAIServerApp extends SMTApp implements SMTEhCacheManagerInitialize,SMTApp.SMTSessionListenerEvent @@ -138,7 +146,7 @@ protected Map<String, SMTSSEBroadcastChat> _mapUser2SMTSSEBroadcastChat = new HashMap<>(); - + public static final String GET_WORKFLOWS = "http://localhost:5678/api/v1/workflows?"; private static Pattern _patGroupStep = Pattern.compile("(\\d+)\\s*(minutes|hours|days|months|years|month|hour|year|day|minute)"); private static Pattern _patGlobalMacro = Pattern.compile("\\{\\{\\{([\\w\\.]+)\\}\\}\\}"); private static Logger _logger = LogManager.getLogger(SMTQwenApp.class); @@ -160,7 +168,8 @@ "getMapVPropDefMap", "getMapThemeTableDefMap", "getMapThemeDefMap", - "getAttachTableDefMap" + "getAttachTableDefMap", + "getAttachMetricDefMap" }; public static SMTAIServerApp getApp() @@ -227,7 +236,7 @@ Map<String, SMTMetricsDef> mapResult = mapMapMetrics.get(groupId); if(mapResult == null) - throw new Exception("can't find metrics group : " + groupId); + return new HashMap<String, SMTMetricsDef>(); return mapResult; } @@ -293,6 +302,8 @@ _serverEncache.getMapThemeTableDefMap(); _serverEncache.getMapThemeDefMap(); _serverEncache.getAttachTableDefMap(); + _serverEncache.getAttachMetricDefMap(); + _serverEncache.getQwenAgentManager(); } public SMTMapTableDef getMapTableDef(String tableId) throws Exception @@ -1221,4 +1232,113 @@ return attachTableDef; } + + public Map<String, SMTAIAttachMetricDef> getAttachMetricDefMap() throws Exception + { + return _serverEncache.getAttachMetricDefMap(); + } + + public SMTAIAttachMetricDef getAttachMetricDef(String id) throws Exception + { + SMTAIAttachMetricDef attachMetricDef = _serverEncache.getAttachMetricDefMap().get(id); + if(attachMetricDef == null) + throw new Exception("can't find attach metric def : " + id); + + return attachMetricDef; + } + + /** + * 鏂囦欢(word銆乸df)杞瑃xt + */ + public static String fileTranslTxt(MultipartFile file) throws Exception { + InputStream inputStream = file.getInputStream(); + try (BufferedInputStream bis = new BufferedInputStream(file.getInputStream())) { + String mimeType = file.getContentType(); + if (mimeType != null) { + switch (mimeType) { + case "application/pdf": + _logger.info("鏂囦欢绫诲瀷鏄� PDF"); + PDDocument document = PDDocument.load(inputStream); + PDFTextStripper stripper = new PDFTextStripper(); + return stripper.getText(document); + case "application/vnd.openxmlformats-officedocument.wordprocessingml.document": + _logger.info("鏂囦欢绫诲瀷鏄� Word (DOCX)"); + try (XWPFDocument docx = new XWPFDocument(bis)) { + XWPFWordExtractor docxExtractor = new XWPFWordExtractor(docx); + return docxExtractor.getText(); + } + case "application/msword": + _logger.info("鏂囦欢绫诲瀷鏄� Word (DOC)"); + try (HWPFDocument doc = new HWPFDocument(bis)) { + WordExtractor wordExtractor = new WordExtractor(doc); + return wordExtractor.getText(); + } + case "text/plain": + _logger.info("鏂囦欢绫诲瀷鏄� TXT"); + byte[] fileData = readAttachFile(file); + return new String(fileData, "UTF-8"); + default: + _logger.info("鏈煡鏂囦欢绫诲瀷: " + mimeType); + break; + } + } else { + _logger.info("鏃犳硶鑾峰彇鏂囦欢绫诲瀷"); + } + } catch (Exception e) { + _logger.error("鏂囦欢澶勭悊澶辫触: " + e.getMessage()); + throw new Exception("鏂囦欢澶勭悊澶辫触: " + e.getMessage()); + } + return ""; + } + public static byte[] readAttachFile(MultipartFile file) throws Exception + { + InputStream is = file.getInputStream(); + ByteArrayOutputStream bos = new ByteArrayOutputStream(); + byte[] data = new byte[1024 * 1024]; + while(true) + { + int size = is.read(data); + if(size <= 0) + return bos.toByteArray(); + + bos.write(data, 0, size); + } + } + public static String buildUrl(String active, String tags, String name, String projectId, String excludePinnedData, int limit) throws UnsupportedEncodingException { + // 浣跨敤Map鏉ュ瓨鍌ㄥ弬鏁� + Map<String, String> params = new HashMap<>(); + params.put("active", active); + params.put("tags", tags); + params.put("name", name != null ? URLEncoder.encode(name, "UTF-8") : null); + params.put("projectId", projectId); + params.put("excludePinnedData", excludePinnedData); + params.put("limit", String.valueOf(limit)); + + // 鍩烘湰URL + StringBuilder urlBuilder = new StringBuilder(GET_WORKFLOWS); + + // 閬嶅巻map骞舵瀯寤篣RL + for (Map.Entry<String, String> entry : params.entrySet()) { + if (entry.getValue() != null) { + urlBuilder.append(entry.getKey()) + .append("=") + .append(entry.getValue()) + .append("&"); + } + } + // 鍘婚櫎鏈�鍚庝竴涓浣欑殑&绗﹀彿 + String requestUrl = urlBuilder.toString(); + if (requestUrl.endsWith("&")) { + requestUrl = requestUrl.substring(0, requestUrl.length() - 1); + } + return requestUrl; + } + public static List<String> extractParts(String input, Pattern pattern) { + Matcher matcher = pattern.matcher(input); + List<String> results = new ArrayList<>(); + while (matcher.find()) { + results.add(matcher.group(1)); // 鎻愬彇绗竴涓崟鑾风粍鍐呭 + } + return results; + } } -- Gitblit v1.9.3