From b1ff3475c44738107398f4e502d9b54aac97fc48 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期二, 21 十月 2025 17:14:47 +0800
Subject: [PATCH] 数采调整2
---
src/main/java/com/chinaztt/mes/docx/util/TakeWords.java | 221 ++++++++++++++++++++++++++++++++-----------------------
1 files changed, 129 insertions(+), 92 deletions(-)
diff --git a/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java b/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
index 12bad80..70f5c15 100644
--- a/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
+++ b/src/main/java/com/chinaztt/mes/docx/util/TakeWords.java
@@ -5,33 +5,26 @@
import com.opencsv.CSVReader;
import com.opencsv.CSVReaderBuilder;
import com.opencsv.exceptions.CsvValidationException;
-import com.chinaztt.mes.docx.dto.ThicknessData;
import net.sourceforge.tess4j.Tesseract;
import net.sourceforge.tess4j.TesseractException;
import org.apache.commons.lang3.ObjectUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.POIXMLDocument;
import org.apache.poi.POIXMLTextExtractor;
-import org.apache.poi.hssf.usermodel.HSSFPicture;
import org.apache.poi.hssf.usermodel.HSSFPictureData;
-import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
import org.apache.poi.hwpf.extractor.WordExtractor;
-import org.apache.poi.openxml4j.exceptions.InvalidFormatException;
import org.apache.poi.openxml4j.opc.OPCPackage;
-import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.ss.usermodel.Sheet;
+import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.xssf.usermodel.XSSFSheet;
import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.apache.poi.xwpf.extractor.XWPFWordExtractor;
-import java.awt.Color;
-import java.awt.image.BufferedImage;
-import javax.imageio.ImageIO;
import java.io.*;
+import java.nio.file.Files;
import java.sql.*;
import java.util.*;
-import java.util.regex.Pattern;
-import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class TakeWords {
@@ -64,32 +57,30 @@
return result;
}
- public static Object readExcelFile(File file) throws FileNotFoundException, IOException {
+ public static Object readExcelFile(File file) throws IOException {
StringBuilder result = new StringBuilder();
//鍒涘缓宸ヤ綔绨垮璞�
- XSSFWorkbook xssfWorkbook = new XSSFWorkbook(new FileInputStream(file));
+ XSSFWorkbook xssfWorkbook = new XSSFWorkbook(Files.newInputStream(file.toPath()));
//鑾峰彇宸ヤ綔绨夸笅sheet鐨勪釜鏁� 鍙鍙栫涓�涓猻heet
// int sheetNum = xssfWorkbook.getNumberOfSheets();
//閬嶅巻宸ヤ綔绨夸腑鐨勬墍鏈夋暟鎹�
- for (int i = 0; i < 1; i++) {
- XSSFSheet sheet = xssfWorkbook.getSheetAt(i);
- //鑾峰彇鏈�鍚庝竴琛岀殑num锛屽嵆鎬昏鏁般�傛澶勪粠0寮�濮�
- int maxRow = sheet.getLastRowNum();
- for (int row = 0; row <= maxRow; row++) {
- //鑾峰彇鏈�鍚庡崟鍏冩牸num锛屽嵆鎬诲崟鍏冩牸鏁� ***娉ㄦ剰锛氭澶勪粠1寮�濮嬭鏁�***
- int maxRol = sheet.getRow(row).getLastCellNum();
- StringBuilder aLine = new StringBuilder();
- for (int rol = 0; rol < maxRol; rol++) {
- aLine.append(sheet.getRow(row).getCell(rol)).append(splitIdentifier);
- }
- result.append(aLine).append("\n");
+ XSSFSheet sheet = xssfWorkbook.getSheetAt(0);
+ //鑾峰彇鏈�鍚庝竴琛岀殑num锛屽嵆鎬昏鏁般�傛澶勪粠0寮�濮�
+ int maxRow = sheet.getLastRowNum();
+ for (int row = 1; row <= maxRow; row++) {
+ //鑾峰彇鏈�鍚庡崟鍏冩牸num锛屽嵆鎬诲崟鍏冩牸鏁� ***娉ㄦ剰锛氭澶勪粠1寮�濮嬭鏁�***
+ int maxRol = sheet.getRow(row).getLastCellNum();
+ StringBuilder aLine = new StringBuilder();
+ for (int rol = 0; rol < maxRol; rol++) {
+ aLine.append(sheet.getRow(row).getCell(rol)).append(splitIdentifier);
}
+ result.append(aLine).append("\n");
}
return result.toString();
}
public static Object readExcelxlsFile(File file) throws IOException {
- StringBuilder result = new StringBuilder();
+ String result = "";
try (FileInputStream fis = new FileInputStream(file);
Workbook workbook = new HSSFWorkbook(fis)) {
// 鑾峰彇绗竴涓伐浣滆〃
@@ -98,41 +89,66 @@
if (workbook instanceof HSSFWorkbook) {
HSSFWorkbook hssfWorkbook = (HSSFWorkbook) workbook;
List<HSSFPictureData> pictures = hssfWorkbook.getAllPictures();
- for (HSSFPictureData picture : pictures) {
- // 鑾峰彇鍥剧墖绫诲瀷
- String pictureType = picture.suggestFileExtension();
- // 鑾峰彇鍥剧墖鏁版嵁
- byte[] pictureData = picture.getData();
- // 鍒涘缓涓存椂鏂囦欢
- File tempFile = File.createTempFile(UUID.randomUUID().toString(), "." + pictureType);
- try (FileOutputStream fos = new FileOutputStream(tempFile)) {
- fos.write(pictureData);
- }
- // 鍥剧墖棰勫鐞�
-// File processedFile = preprocessImage(tempFile, pictureType);
- // 璋冪敤 readPngFile1 鏂规硶璇诲彇鍥剧墖鏂囧瓧淇℃伅
- String ocrResult = "";
- try {
- ocrResult = (String) readPngFile1(tempFile);
-// ocrResult = (String) readPngFile(tempFile);
-// ocrResult = (String) readPngFile(processedFile);
- } catch (TesseractException e) {
- ocrResult = "OCR璇嗗埆澶辫触: " + e.getMessage();
- } finally {
- // 鍒犻櫎涓存椂鏂囦欢
- tempFile.delete();
-// processedFile.delete();
- }
-
- // 灏嗗浘鐗囦俊鎭坊鍔犲埌缁撴灉涓�
-// result.append("Picture Type: ").append(pictureType)
-// .append(", Picture Size: ").append(pictureData.length)
-// .append(" bytes")
-// .append(", OCR Result: ").append(ocrResult)
-// .append(",");
- String ocrText = fixOcrText(ocrResult);
- result.append("OCR Result:").append(ocrText).append(",");
+ //澶勭悊鏈�鍚庝竴寮犲浘鐗囨暟鎹�
+ HSSFPictureData lastPicture = pictures.get(pictures.size()-1);
+ // 鑾峰彇鍥剧墖绫诲瀷
+ String pictureType = lastPicture.suggestFileExtension();
+ // 鑾峰彇鍥剧墖鏁版嵁
+ byte[] pictureData = lastPicture.getData();
+ // 鍒涘缓涓存椂鏂囦欢
+ File tempFile = File.createTempFile(UUID.randomUUID().toString(), "." + pictureType);
+ try (FileOutputStream fos = new FileOutputStream(tempFile)) {
+ fos.write(pictureData);
}
+ String ocrResult = "";
+ try {
+ ocrResult = (String) readPngFile(tempFile);
+ } catch (TesseractException e) {
+ ocrResult = "OCR璇嗗埆澶辫触: " + e.getMessage();
+ } finally {
+ // 鍒犻櫎涓存椂鏂囦欢
+ tempFile.delete();
+ }
+ result = ocrResult;
+// String ocrText = fixOcrText(ocrResult);
+// result.append("OCR Result:").append(ocrText).append(",");
+
+
+// for (HSSFPictureData picture : pictures) {
+// // 鑾峰彇鍥剧墖绫诲瀷
+// String pictureType = picture.suggestFileExtension();
+// // 鑾峰彇鍥剧墖鏁版嵁
+// byte[] pictureData = picture.getData();
+// // 鍒涘缓涓存椂鏂囦欢
+// File tempFile = File.createTempFile(UUID.randomUUID().toString(), "." + pictureType);
+// try (FileOutputStream fos = new FileOutputStream(tempFile)) {
+// fos.write(pictureData);
+// }
+// // 鍥剧墖棰勫鐞�
+//// File processedFile = preprocessImage(tempFile, pictureType);
+// // 璋冪敤 readPngFile1 鏂规硶璇诲彇鍥剧墖鏂囧瓧淇℃伅
+// String ocrResult = "";
+// try {
+// ocrResult = (String) readPngFile(tempFile);
+//// ocrResult = (String) readPngFile(tempFile);
+//// ocrResult = (String) readPngFile(processedFile);
+// } catch (TesseractException e) {
+// ocrResult = "OCR璇嗗埆澶辫触: " + e.getMessage();
+// } finally {
+// // 鍒犻櫎涓存椂鏂囦欢
+//// tempFile.delete();
+//// processedFile.delete();
+// }
+//
+// // 灏嗗浘鐗囦俊鎭坊鍔犲埌缁撴灉涓�
+//// result.append("Picture Type: ").append(pictureType)
+//// .append(", Picture Size: ").append(pictureData.length)
+//// .append(" bytes")
+//// .append(", OCR Result: ").append(ocrResult)
+//// .append(",");
+// String ocrText = fixOcrText(ocrResult);
+// result.append("OCR Result:").append(ocrText).append(",");
+// }
}
//
// // 閬嶅巻姣忎竴琛�
@@ -208,9 +224,6 @@
return tesseract.doOCR(file);
}
-
-
-
public static Object readTxtFile(File file) throws IOException {
FileInputStream fin = new FileInputStream(file);
InputStreamReader reader = new InputStreamReader(fin);
@@ -228,21 +241,6 @@
StringBuilder stringBuilder = new StringBuilder();
// 鍒涘缓 reader
-// try (BufferedReader br = Files.newBufferedReader(file.toPath())) {
-// // CSV鏂囦欢鐨勫垎闅旂
-// String DELIMITER = ",";
-// // 鎸夎璇诲彇
-// String line;
-// System.out.println(br.readLine());
-// while ((line = br.readLine()) != null) {
-// // 鍒嗗壊
-// String[] columns = line.split(DELIMITER);
-// // 鎵撳嵃琛�
-// stringBuilder.append(String.join(splitIdentifier, columns)).append("\n");
-// }
-// } catch (IOException ex) {
-// ex.printStackTrace();
-// }
try (FileReader fileReader = new FileReader(file);
CSVReader csvReader = new CSVReaderBuilder(fileReader).build()) {
@@ -319,6 +317,7 @@
}
tableMap.put("data", list);
} catch (Exception e) {
+ e.printStackTrace();
} finally {
closeA1l(conn, preparedStatement, rs);
}
@@ -339,33 +338,71 @@
} catch (Exception ignore) {
}
}
- public static Object getmysqlFile(GetFileDto getFileDto) throws SQLException, ClassNotFoundException, InstantiationException, IllegalAccessException {
+
+ public static Object getMysqlFile(GetFileDto getFileDto){
Map<String, Object> tableMap = new HashMap<>(16);
- // 鏁版嵁搴撹繛鎺ヤ俊鎭�
- String url = "jdbc:mysql://localhost:3306/"+getFileDto.getDbFileName()+"?useSSL=false&serverTimezone=UTC&allowPublicKeyRetrieval=true";
+ // 浠� GetFileDto 鑾峰彇鏁版嵁搴撳悕锛屽搴斻�愭枃浠跺悕绉般�戝瓧娈�
+ String dbName = getFileDto.getDbFileName();
String user = getFileDto.getDbUserName();
String password = getFileDto.getDbPassword();
- List<ThicknessData> dataList = new ArrayList<>();
+ // 浠� GetFileDto 鑾峰彇鏁版嵁琛ㄥ悕锛屽搴斻�愭暟鎹簱琛ㄥ悕銆戝瓧娈�
+ String table = getFileDto.getDbTable();
+ // 妫�鏌ユ暟鎹簱鍚嶅拰琛ㄥ悕鏄惁涓虹┖
+ if (dbName == null || dbName.isEmpty() || table == null || table.isEmpty()) {
+ return R.failed("鏁版嵁搴撳悕鎴栬〃鍚嶄笉鑳戒负绌�");
+ }
+ // 鏁版嵁搴撹繛鎺ヤ俊鎭�
+ String url = "jdbc:mysql://localhost:3306/"+dbName+"?useSSL=false&serverTimezone=GMT%2B8&allowPublicKeyRetrieval=true&characterEncoding=utf8";
+ Connection connection = null;
+ PreparedStatement preparedStatement = null;
+ ResultSet resultSet = null;
+ List<Map<String, Object>> dataList = new ArrayList<>();
- try (
- // 寤虹珛杩炴帴
- Connection connection = DriverManager.getConnection(url, user, password);
- // 鍒涘缓 Statement 瀵硅薄鎵ц SQL
- Statement statement = connection.createStatement()
- ) {
- String sql = "SELECT ThinnestPoint, AverageThickness FROM model1records";
- ResultSet resultSet = statement.executeQuery(sql);
+ try {
+ // 寤虹珛杩炴帴
+ connection = DriverManager.getConnection(url, user, password);
+ // 鏋勫缓鍩虹 SQL
+ String sql = "SELECT * FROM "+table+" WHERE 1=1";
+ if(StringUtils.isNotBlank(getFileDto.getMdbEntrustCode())){
+ sql+=" AND " + getFileDto.getMdbEntrustCode() + " = '" + getFileDto.getEntrustCode()+ "'";
+ }
+ if(StringUtils.isNotBlank(getFileDto.getMdbSampleCode())){
+ sql+=" AND " + getFileDto.getMdbSampleCode() + " = '" + getFileDto.getSampleCode() + "'";
+ }
+ // 鍒涘缓 PreparedStatement 瀵硅薄鎵ц SQL
+ preparedStatement = connection.prepareStatement(sql);
+ resultSet = preparedStatement.executeQuery();
+ ResultSetMetaData metaData = resultSet.getMetaData();
+ int columnCount = metaData.getColumnCount();
// 閬嶅巻缁撴灉闆嗚幏鍙栨暟鎹�
while (resultSet.next()) {
- double thinnestPoint = resultSet.getDouble("ThinnestPoint");
- double averageThickness = resultSet.getDouble("AverageThickness");
- dataList.add(new ThicknessData(thinnestPoint, averageThickness));
+ Map<String, Object> rowData = new HashMap<>();
+ for (int i = 1; i <= columnCount; i++) {
+ String columnName = metaData.getColumnName(i);
+ rowData.put(columnName, resultSet.getObject(i));
+ }
+ dataList.add(rowData);
}
tableMap.put("data", dataList);
} catch (Exception e) {
e.printStackTrace();
+ // 鍋囪 R 绫绘湁 failed 鏂规硶锛岃嫢娌℃湁闇�琛ュ厖瀹炵幇
return R.failed("鏁版嵁搴撴煡璇㈠嚭閿�: " + e.getMessage());
+ } finally {
+ try {
+ if (resultSet != null) {
+ resultSet.close();
+ }
+ if (preparedStatement != null) {
+ preparedStatement.close();
+ }
+ if (connection != null) {
+ connection.close();
+ }
+ } catch (SQLException e) {
+ e.printStackTrace();
+ }
}
return tableMap;
}
--
Gitblit v1.9.3