From e2782dd256f228da065f4fef7db1e3aacf32dc23 Mon Sep 17 00:00:00 2001
From: unknown <q>
Date: 星期二, 11 三月 2025 09:36:16 +0800
Subject: [PATCH] 指标接口、文件转txtdemo和文件下载

---
 JAVA/SMTAIServerBoot/.idea/inspectionProfiles/Project_Default.xml                            |    8 +
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachMetricDef.java  |    5 
 JAVA/SMTAIServerBoot/.idea/vcs.xml                                                           |    6 +
 JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json                                  |   19 +++
 JAVA/SMTAIServerBoot/.idea/compiler.xml                                                      |   22 ++++
 JAVA/SMTAIServerBoot/.idea/misc.xml                                                          |   13 ++
 JAVA/SMTAIServerBoot/.idea/encodings.xml                                                     |    9 +
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerRequest.java      |   11 ++
 JAVA/SMTAIServerBoot/.idea/.gitignore                                                        |    8 +
 JAVA/SMTAIServerBoot/.idea/jarRepositories.xml                                               |   20 ++++
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachTableDef.java   |    4 
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachTableSqlXml.java  |    7 
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachMetricSqlXml.java |   11 +
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java     |   48 ++++++++-
 JAVA/SMTAIServerBoot/.idea/google-java-format.xml                                            |    6 +
 JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerApp.java          |   52 ++++++++++
 JAVA/SMTAIServer/pom.xml                                                                     |   17 +++
 17 files changed, 245 insertions(+), 21 deletions(-)

diff --git a/JAVA/SMTAIServer/pom.xml b/JAVA/SMTAIServer/pom.xml
index 3f85ac6..681be69 100644
--- a/JAVA/SMTAIServer/pom.xml
+++ b/JAVA/SMTAIServer/pom.xml
@@ -12,6 +12,23 @@
 
 	<dependencies>
 		<dependency>
+			<groupId>org.apache.pdfbox</groupId>
+			<artifactId>pdfbox</artifactId>
+			<version>2.0.27</version>
+		</dependency>
+
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi-scratchpad</artifactId>
+			<version>5.2.2</version>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.poi</groupId>
+			<artifactId>poi-ooxml</artifactId>
+			<version>5.2.2</version>
+		</dependency>
+
+		<dependency>
 			<groupId>com.smtservlet</groupId>
 			<artifactId>SMTServlet</artifactId>
 			<version>0.0.1-SNAPSHOT</version>
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachMetricDef.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachMetricDef.java
index bb232d6..3b90bbc 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachMetricDef.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachMetricDef.java
@@ -72,14 +72,15 @@
 		}
 	}
 	
-	public void queryValueToJson(Date startTime, Date endTime, Json jsonQuotaKey, SMTJsonWriter jsonWr) throws Exception
+	public void queryValueToJson(Date startTime, Date endTime, Json jsonQuotaKey, SMTJsonWriter jsonWr,Integer limit) throws Exception
 	{
 		try(ASTDBMap dbMap = new ASTDBMap())
 		{
 			Map<String, String> mapArgs = new HashMap<>();
 			mapArgs.put("start_time", SMTStatic.toString(startTime));
 			mapArgs.put("end_time", SMTStatic.toString(endTime));
-			
+			mapArgs.put("limit", SMTStatic.toString(limit));
+
 			for(Entry<String, Json> entry : jsonQuotaKey.asJsonMap().entrySet())
 			{
 				mapArgs.put(entry.getKey(), entry.getValue().asString());
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachTableDef.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachTableDef.java
index 8b4f213..499369c 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachTableDef.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAIAttachTableDef.java
@@ -107,11 +107,11 @@
 		return _group;
 	}	
 	
-	public void queryRecordsToJson(Json jsonFilter, Json jsonOrder, SMTJsonWriter jsonWr) throws Exception
+	public void queryRecordsToJson(Json jsonFilter, Json jsonOrder, SMTJsonWriter jsonWr,Integer limit) throws Exception
 	{
 		try(ASTDBMap dbMap = new ASTDBMap())
 		{
-			_sqlXml.querySQLToJson(dbMap, jsonFilter, jsonOrder, this, jsonWr);
+			_sqlXml.querySQLToJson(dbMap, jsonFilter, jsonOrder, this, jsonWr,limit);
 		}
 	}
 }
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachMetricSqlXml.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachMetricSqlXml.java
index d994b77..2581508 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachMetricSqlXml.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachMetricSqlXml.java
@@ -132,13 +132,18 @@
 		_SQLXMLNode = createSQLXMLNode(rootElement);
 	}
 
-	public String createSQL(Map<String, String> mapArgs) throws Exception 
+	public String createSQL(Map<String, String> mapArgs) throws Exception
 	{
 		// 鐢熸垚鍘熷SQL
 		SQLXMLExecArg execArg = new SQLXMLExecArg(mapArgs);
 		_SQLXMLNode.execute(execArg);
-		
-		return execArg._sbSQLText.toString();
+
+		String sql = execArg._sbSQLText.toString();
+		if (mapArgs!=null){
+		sql = sql.replace("LIMIT\n" +
+				"      100", "LIMIT " + mapArgs.get("limit"));
+		}
+		return sql;
 	}
 
 }
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachTableSqlXml.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachTableSqlXml.java
index 3e935b3..2b302fd 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachTableSqlXml.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/attach/SMTAttachTableSqlXml.java
@@ -103,7 +103,7 @@
 		_SQLXMLNode = createSQLXMLNode(rootElement);
 	}
 
-	public void querySQLToJson(ASTDBMap dbMap, Json jsonFilters, Json jsonOrders, SMTAIAttachTableDef attachTableDef, SMTJsonWriter jsonWr) throws Exception 
+	public void querySQLToJson(ASTDBMap dbMap, Json jsonFilters, Json jsonOrders, SMTAIAttachTableDef attachTableDef, SMTJsonWriter jsonWr,Integer limit) throws Exception
 	{
 		// 鐢熸垚鍘熷SQL
 		SQLXMLExecArg execArg = new SQLXMLExecArg();
@@ -159,9 +159,10 @@
 		
 		SMTDatabase db = dbMap.getDatabase(_dsId);
 		DBRecords recs = db.querySQL(
-			"SELECT * FROM (" + execArg._sbSQLText.toString() + ") T " + sbWHERE.toString() + " " + sbORDER.toString() + " LIMIT 100", 
-			execArg._sqlParams.size() == 0 ? null : execArg._sqlParams.toArray(new Object[] {execArg._sqlParams.size()})
+				"SELECT * FROM (" + execArg._sbSQLText.toString() + ") T " + sbWHERE.toString() + " " + sbORDER.toString() + " LIMIT "+limit,
+						execArg._sqlParams.isEmpty() ? null : execArg._sqlParams.toArray()
 		);
+
 		
 		jsonWr.beginArray("columns");
 		for(SMTAIAttachTableColumn column : attachTableDef.getColumnList())
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java
index 2458ca6..3f5b232 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/control/SMTJavaAIControl.java
@@ -13,6 +13,7 @@
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import com.google.gson.Gson;
 import org.springframework.web.bind.annotation.RequestParam;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.servlet.ModelAndView;
@@ -127,7 +128,13 @@
 				tranReq.setAttachTables(jsonTables);
 				_mustRawMode = true;
 			}
-			
+			Json jsonMetrics = tranReq.convParamToJson("metrics", false);
+			if(jsonMetrics != null)
+			{
+				tranReq.setJsonAttachMetrics(jsonMetrics);
+				_mustRawMode = true;
+			}
+
 			_tranReq = tranReq;
 			_tranReq.setChunkedMode(true);
 		}
@@ -1239,10 +1246,12 @@
     	String attachTableId = tranReq.convParamToString("id", true);
     	Json jsonFilters = tranReq.convParamToJson("filter", false);
     	Json jsonOrders = tranReq.convParamToJson("order", false);
+    	Integer limit = tranReq.convParamToInteger("limit", false);
     	SMTAIAttachTableDef attachTableDef = (SMTAIAttachTableDef) SMTAIServerApp.getApp().getAttachTableDef(attachTableId);
-    	
+    	if (limit==null)
+			limit=100;
     	SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
-    	attachTableDef.queryRecordsToJson(jsonFilters, jsonOrders, jsonWr);
+    	attachTableDef.queryRecordsToJson(jsonFilters, jsonOrders, jsonWr,limit);
     	
     	return tranReq.returnJson(jsonWr);
     	
@@ -1288,11 +1297,13 @@
     	Date startTime = tranReq.convParamToDate("start_time", true);
        	Date endTime = tranReq.convParamToDate("end_time", true);
     	Json jsonQuotaKeys = tranReq.convParamToJson("quota_keys", true);
-    	
+    	Integer limit = tranReq.convParamToInteger("limit", false);
+		if (limit==null)
+			limit=100;
     	SMTAIAttachMetricDef attachMetricDef = SMTAIServerApp.getApp().getAttachMetricDef(attachMetricId);
     	
     	SMTJsonWriter jsonWr = tranReq.newReturnJsonWriter(true, null, null);
-    	attachMetricDef.queryValueToJson(startTime, endTime, jsonQuotaKeys, jsonWr);
+    	attachMetricDef.queryValueToJson(startTime, endTime, jsonQuotaKeys, jsonWr,limit);
     	
     	return tranReq.returnJson(jsonWr);
     }
@@ -1330,4 +1341,31 @@
 
 		return tranReq.returnJson(jsonWr);
     }
+
+	public void downloadFileByFileId(SMTAIServerRequest tranReq, HttpServletResponse response) throws Exception {
+		String fileId = tranReq.convParamToString("file_id", true);  // 鑾峰彇璇锋眰涓殑file_id
+		SMTDatabase db = SMTAIServerApp.getApp().allocDatabase();
+
+		try {
+			// 鏌ヨ鎸囧畾file_id鐨勬枃浠惰褰�
+			DBRecords dbRecords = db.querySQL("SELECT * FROM ai_times.chat_history_attach WHERE attach_id=?", new Object[]{fileId});
+			if (dbRecords.getRecords().isEmpty()) {
+				throw new Exception("鏂囦欢涓嶅瓨鍦�");
+			}
+
+			// 鑾峰彇鏂囦欢淇℃伅
+			DBRecord fileRecord = dbRecords.getRecords().get(0);
+			String attachTitle = fileRecord.getString("attach_title");  // 鑾峰彇鏂囦欢鏍囬
+			String attachBytes = fileRecord.getString("attach_bytes");
+			byte[] bytes = attachBytes.getBytes();
+			// 璁剧疆鍝嶅簲澶村拰鏂囦欢鍚�
+			String fileName = attachTitle != null ? attachTitle : "downloaded_file";
+			response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\"");
+			response.setContentType("application/octet-stream");
+            response.getOutputStream().write(bytes);
+            response.getOutputStream().flush();
+		} catch (Exception e) {
+			throw new Exception("Error processing file download: " + e.getMessage());
+		}
+	}
 }
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 9212d25..a760821 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,6 @@
 package com.smtaiserver.smtaiserver.core;
 
-import java.io.ByteArrayOutputStream;
-import java.io.InputStream;
+import java.io.*;
 import java.sql.Connection;
 import java.sql.DriverManager;
 import java.util.ArrayList;
@@ -19,6 +18,13 @@
 
 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.poifs.filesystem.FileMagic;
+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;
@@ -67,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
@@ -1238,4 +1245,45 @@
 		
 		return attachMetricDef;
 	}
+
+	/**
+	 * 鏂囦欢(word銆乸df)杞瑃xt
+	 */
+	public 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();
+						}
+					default:
+						_logger.info("鏈煡鏂囦欢绫诲瀷: " + mimeType);
+						break;
+				}
+			} else {
+				_logger.info("鏃犳硶鑾峰彇鏂囦欢绫诲瀷");
+			}
+		} catch (Exception e) {
+			_logger.error("鏂囦欢澶勭悊澶辫触: " + e.getMessage());
+			throw new Exception("鏂囦欢澶勭悊澶辫触: " + e.getMessage());
+		}
+		return null;
+	}
+
 }
diff --git a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerRequest.java b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerRequest.java
index cc28fc5..8823686 100644
--- a/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerRequest.java
+++ b/JAVA/SMTAIServer/src/main/java/com/smtaiserver/smtaiserver/core/SMTAIServerRequest.java
@@ -96,6 +96,7 @@
 	private boolean					_disableConclusion = false;
 	private List<AIAttachFile>		_listAttchFile = null;
 	private Json					_jsonAttachTables = null;
+	private Json					_jsonAttachMetrics = null;
 	private boolean					_sendStarStream = false; // 灏嗚緭鍑烘枃瀛楀彉鎴�*
 
 
@@ -133,7 +134,11 @@
 	{
 		_jsonAttachTables = jsonTables;
 	}
-	
+
+	public void setJsonAttachMetrics(Json attachMetrics)
+	{
+		_jsonAttachMetrics = attachMetrics;
+	}
 	public String[] getAttachMessage()
 	{
 		List<String> list = new ArrayList<>();
@@ -201,6 +206,10 @@
 		{
 			jsonResult.set("attach_tables", _jsonAttachTables);
 		}
+		if(_jsonAttachMetrics != null)
+		{
+			jsonResult.set("attach_metrics", _jsonAttachMetrics);
+		}
 	}
 	
 	public void addAttachFile(AIAttachFile attachFile)
diff --git a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
index 427d350..3338d2c 100644
--- a/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
+++ b/JAVA/SMTAIServer/src/main/resources/requestmap/java_ai.json
@@ -166,7 +166,8 @@
 					{"name":"group_type", "title":"闂鍒嗙被", "default":"涓氬姟鍦烘櫙", "required":false},
 					{"name":"cur_pos", "title":"褰撳墠浣嶇疆", "required":false},
 					{"name":"files", "title":"闄勪欢鏂囦欢", "required":false, "type":"file"},
-					{"name":"tables", "title":"闄勪欢琛ㄨ褰昜{title:涓枃鍚�, columns:[瀛楁1锛屽瓧娈�2...],values:[[鍊�1锛屽��2...]]}]", "required":false}
+					{"name":"tables", "title":"闄勪欢琛ㄨ褰昜{title:涓枃鍚�, columns:[瀛楁1锛屽瓧娈�2...],values:[[鍊�1锛屽��2...]]}]", "required":false},
+					{"name":"metrics", "title":"闄勪欢鎸囨爣璁板綍[{title:涓枃鍚�, columns:[瀛楁1锛屽瓧娈�2...],values:[[鍊�1锛屽��2...]]}]", "required":false}
 				]
 			}
 		]
@@ -304,7 +305,8 @@
 				"parameters" : [
 					{"name":"id", "title":"鏌ヨ琛╥d", "required":true},
 					{"name":"filter", "title":"杩囨护鏉′欢[{col:瀛楁鍚�, filter:杩囨护鏉′欢, values:[鍊�1锛屽��2...]},...]", "required":false},
-					{"name":"order", "title":"鎺掑簭鏉′欢[{col:瀛楁鍚�, order:ASC/DESC", "required":false}
+					{"name":"order", "title":"鎺掑簭鏉′欢[{col:瀛楁鍚�, order:ASC/DESC", "required":false},
+					{"name":"limit", "title":"鏌ヨ椤垫暟锛岄粯璁�100", "required":false}
 				]
 			}
 		]
@@ -340,7 +342,18 @@
 					{"name":"id", "title":"鏌ヨ鎸囨爣id", "required":true},
 					{"name":"start_time", "title":"璧峰鏃堕棿", "required":true},
 					{"name":"end_time", "title":"缁撴潫鏃堕棿", "required":true},
-					{"name":"quota_keys", "title":"query_attach_metric_names杩斿洖鍓嶇鐨刯son", "required":true}
+					{"name":"quota_keys", "title":"query_attach_metric_names杩斿洖鍓嶇鐨刯son", "required":true},
+					{"name":"limit", "title":"鏌ヨ椤垫暟锛岄粯璁�100", "required":false}
+				]
+			}
+		]
+	},
+	"file/download_file":{"map":{"class":"#SMTJavaAIControl", "method":"downloadFileByFileId"},
+		"swaggers":[
+			{	"tags" : ["鏂囦欢涓嬭浇"],
+				"title" : "鏂囦欢涓嬭浇",
+				"parameters" : [
+					{"name":"file_id", "title":"鏂囦欢id", "required":true}
 				]
 			}
 		]
diff --git a/JAVA/SMTAIServerBoot/.idea/.gitignore b/JAVA/SMTAIServerBoot/.idea/.gitignore
new file mode 100644
index 0000000..35410ca
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/.gitignore
@@ -0,0 +1,8 @@
+# 榛樿蹇界暐鐨勬枃浠�
+/shelf/
+/workspace.xml
+# 鍩轰簬缂栬緫鍣ㄧ殑 HTTP 瀹㈡埛绔姹�
+/httpRequests/
+# Datasource local storage ignored files
+/dataSources/
+/dataSources.local.xml
diff --git a/JAVA/SMTAIServerBoot/.idea/compiler.xml b/JAVA/SMTAIServerBoot/.idea/compiler.xml
new file mode 100644
index 0000000..c1a09de
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/compiler.xml
@@ -0,0 +1,22 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="CompilerConfiguration">
+    <annotationProcessing>
+      <profile default="true" name="Default" enabled="true" />
+      <profile name="Maven default annotation processors profile" enabled="true">
+        <sourceOutputDir name="target/generated-sources/annotations" />
+        <sourceTestOutputDir name="target/generated-test-sources/test-annotations" />
+        <outputRelativeToContentRoot value="true" />
+        <module name="SMTAIServerVer" />
+        <module name="SMTAIServer" />
+        <module name="SMTServlet" />
+      </profile>
+    </annotationProcessing>
+  </component>
+  <component name="JavacSettings">
+    <option name="ADDITIONAL_OPTIONS_OVERRIDE">
+      <module name="SMTAIServer" options="-parameters" />
+      <module name="SMTServlet" options="-parameters" />
+    </option>
+  </component>
+</project>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/encodings.xml b/JAVA/SMTAIServerBoot/.idea/encodings.xml
new file mode 100644
index 0000000..147d6db
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/encodings.xml
@@ -0,0 +1,9 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="Encoding">
+    <file url="file://$PROJECT_DIR$/../SMTAIServer/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/java" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/src/main/resources" charset="UTF-8" />
+    <file url="file://$PROJECT_DIR$/../SMTServlet/src/main/java" charset="UTF-8" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/google-java-format.xml b/JAVA/SMTAIServerBoot/.idea/google-java-format.xml
new file mode 100644
index 0000000..8b57f45
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/google-java-format.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="GoogleJavaFormatSettings">
+    <option name="enabled" value="true" />
+  </component>
+</project>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/inspectionProfiles/Project_Default.xml b/JAVA/SMTAIServerBoot/.idea/inspectionProfiles/Project_Default.xml
new file mode 100644
index 0000000..53f9cea
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/inspectionProfiles/Project_Default.xml
@@ -0,0 +1,8 @@
+<component name="InspectionProjectProfileManager">
+  <profile version="1.0">
+    <option name="myName" value="Project Default" />
+    <inspection_tool class="AutoCloseableResource" enabled="true" level="WARNING" enabled_by_default="true">
+      <option name="METHOD_MATCHER_CONFIG" value="java.util.Formatter,format,java.io.Writer,append,com.google.common.base.Preconditions,checkNotNull,org.hibernate.Session,close,java.io.PrintWriter,printf,java.io.PrintStream,printf,com.smtaiserver.smtaiserver.core.SMTAIServerApp,allocDatabase" />
+    </inspection_tool>
+  </profile>
+</component>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/jarRepositories.xml b/JAVA/SMTAIServerBoot/.idea/jarRepositories.xml
new file mode 100644
index 0000000..712ab9d
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/jarRepositories.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="RemoteRepositoriesConfiguration">
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Central Repository" />
+      <option name="url" value="https://repo.maven.apache.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="central" />
+      <option name="name" value="Maven Central repository" />
+      <option name="url" value="https://repo1.maven.org/maven2" />
+    </remote-repository>
+    <remote-repository>
+      <option name="id" value="jboss.community" />
+      <option name="name" value="JBoss Community repository" />
+      <option name="url" value="https://repository.jboss.org/nexus/content/repositories/public/" />
+    </remote-repository>
+  </component>
+</project>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/misc.xml b/JAVA/SMTAIServerBoot/.idea/misc.xml
new file mode 100644
index 0000000..043e26d
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/misc.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="ExternalStorageConfigurationManager" enabled="true" />
+  <component name="MavenProjectsManager">
+    <option name="originalFiles">
+      <list>
+        <option value="$PROJECT_DIR$/pom.xml" />
+        <option value="$PROJECT_DIR$/../SMTAIServer/pom.xml" />
+      </list>
+    </option>
+  </component>
+  <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="corretto-1.8" project-jdk-type="JavaSDK" />
+</project>
\ No newline at end of file
diff --git a/JAVA/SMTAIServerBoot/.idea/vcs.xml b/JAVA/SMTAIServerBoot/.idea/vcs.xml
new file mode 100644
index 0000000..b2bdec2
--- /dev/null
+++ b/JAVA/SMTAIServerBoot/.idea/vcs.xml
@@ -0,0 +1,6 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project version="4">
+  <component name="VcsDirectoryMappings">
+    <mapping directory="$PROJECT_DIR$/../.." vcs="Git" />
+  </component>
+</project>
\ No newline at end of file

--
Gitblit v1.9.3