代码提交

segment2.0
zhanglb 2 years ago
parent 49c0bfdd0c
commit 5d57935f0e

@ -188,6 +188,7 @@ public class StartSegmentHandler {
OcrBasic ocrBasic = ocrBasicList.get(0); OcrBasic ocrBasic = ocrBasicList.get(0);
UploadBatchFileRequest request = new UploadBatchFileRequest(); UploadBatchFileRequest request = new UploadBatchFileRequest();
request.setCollectorId("-1");
request.setInpatientNo(ocrBasic.getInpatientNo()); request.setInpatientNo(ocrBasic.getInpatientNo());
request.setPatientId(patientId); request.setPatientId(patientId);
request.setName(ocrBasic.getName()); request.setName(ocrBasic.getName());

@ -53,6 +53,7 @@ public class PlatformServiceImpl {
data.put("files", files.toArray(new File[files.size()])); data.put("files", files.toArray(new File[files.size()]));
data.put("patientId", request.getPatientId()); data.put("patientId", request.getPatientId());
data.put("fileInfo", request.getFileInfo()); data.put("fileInfo", request.getFileInfo());
data.put("collectorId", request.getCollectorId());
return uploadFile(data); return uploadFile(data);
} catch (Exception ex) { } catch (Exception ex) {
return CommonResult.failed(ex.getMessage()); return CommonResult.failed(ex.getMessage());

@ -68,7 +68,7 @@ ocr:
api-url: http://192.168.16.85:9999/uploadfile api-url: http://192.168.16.85:9999/uploadfile
defaultAssortId: -1 defaultAssortId: -1
defaultAssortName: 其他 defaultAssortName: 其他
defaultAssortSource: 1 defaultAssortSource: 3
defaultSuffix: (扫描) defaultSuffix: (扫描)
download: download:

@ -1,56 +1,56 @@
package com.docus.server; //package com.docus.server;
//
import oshi.SystemInfo; //import oshi.SystemInfo;
import oshi.hardware.CentralProcessor; //import oshi.hardware.CentralProcessor;
import oshi.hardware.GlobalMemory; //import oshi.hardware.GlobalMemory;
import oshi.hardware.HardwareAbstractionLayer; //import oshi.hardware.HardwareAbstractionLayer;
import oshi.hardware.NetworkIF; //import oshi.hardware.NetworkIF;
import oshi.software.os.FileSystem; //import oshi.software.os.FileSystem;
import oshi.software.os.OSFileStore; //import oshi.software.os.OSFileStore;
//
import java.util.Arrays; //import java.util.Arrays;
import java.util.List; //import java.util.List;
//
public class Example { //public class Example {
public static void main(String[] args) { // public static void main(String[] args) {
SystemInfo systemInfo = new SystemInfo(); // SystemInfo systemInfo = new SystemInfo();
CentralProcessor processor = systemInfo.getHardware().getProcessor(); // CentralProcessor processor = systemInfo.getHardware().getProcessor();
int logicalProcessorCount = processor.getLogicalProcessorCount(); // int logicalProcessorCount = processor.getLogicalProcessorCount();
String cpuModel = processor.getProcessorIdentifier().getName(); // String cpuModel = processor.getProcessorIdentifier().getName();
long[] systemCpuLoadTicks = processor.getSystemCpuLoadTicks(); // long[] systemCpuLoadTicks = processor.getSystemCpuLoadTicks();
//
System.out.println(logicalProcessorCount); // System.out.println(logicalProcessorCount);
System.out.println(cpuModel); // System.out.println(cpuModel);
System.out.println(Arrays.asList(systemCpuLoadTicks)); // System.out.println(Arrays.asList(systemCpuLoadTicks));
//
GlobalMemory memory = systemInfo.getHardware().getMemory(); // GlobalMemory memory = systemInfo.getHardware().getMemory();
long totalMemorySize = memory.getTotal(); // long totalMemorySize = memory.getTotal();
long availableMemorySize = memory.getAvailable(); // long availableMemorySize = memory.getAvailable();
double memoryUsage = (totalMemorySize - availableMemorySize) * 100.0 / totalMemorySize; // double memoryUsage = (totalMemorySize - availableMemorySize) * 100.0 / totalMemorySize;
System.out.println(totalMemorySize); // System.out.println(totalMemorySize);
System.out.println(availableMemorySize); // System.out.println(availableMemorySize);
System.out.println(memoryUsage); // System.out.println(memoryUsage);
//
HardwareAbstractionLayer hal = systemInfo.getHardware(); // HardwareAbstractionLayer hal = systemInfo.getHardware();
FileSystem fileSystem = systemInfo.getOperatingSystem().getFileSystem(); // FileSystem fileSystem = systemInfo.getOperatingSystem().getFileSystem();
List<OSFileStore> fileStores = fileSystem.getFileStores(); // List<OSFileStore> fileStores = fileSystem.getFileStores();
for (OSFileStore store : fileStores) { // for (OSFileStore store : fileStores) {
long totalSpace = store.getTotalSpace(); // long totalSpace = store.getTotalSpace();
long usableSpace = store.getUsableSpace(); // long usableSpace = store.getUsableSpace();
double usage = (totalSpace - usableSpace) * 100.0 / totalSpace; // double usage = (totalSpace - usableSpace) * 100.0 / totalSpace;
System.out.println(totalSpace); // System.out.println(totalSpace);
System.out.println(usableSpace); // System.out.println(usableSpace);
System.out.println(usage); // System.out.println(usage);
} // }
//
List<NetworkIF> networkIFs = systemInfo.getHardware().getNetworkIFs(); // List<NetworkIF> networkIFs = systemInfo.getHardware().getNetworkIFs();
for (NetworkIF networkIF : networkIFs) { // for (NetworkIF networkIF : networkIFs) {
String name = networkIF.getName(); // String name = networkIF.getName();
long receiveBytes = networkIF.getBytesRecv(); // long receiveBytes = networkIF.getBytesRecv();
long transmitBytes = networkIF.getBytesSent(); // long transmitBytes = networkIF.getBytesSent();
System.out.println(name); // System.out.println(name);
System.out.println(receiveBytes); // System.out.println(receiveBytes);
System.out.println(transmitBytes); // System.out.println(transmitBytes);
} // }
} // }
} //}

@ -1,83 +1,83 @@
package com.docus.server; //package com.docus.server;
//
import cn.hutool.core.util.ZipUtil; //import cn.hutool.core.util.ZipUtil;
import cn.hutool.http.HttpRequest; //import cn.hutool.http.HttpRequest;
//
import com.google.common.collect.Lists; //import com.google.common.collect.Lists;
import io.swagger.annotations.ApiOperation; //import io.swagger.annotations.ApiOperation;
import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.web.bind.annotation.PostMapping; //import org.springframework.web.bind.annotation.PostMapping;
//
import java.io.File; //import java.io.File;
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.HashMap; //import java.util.HashMap;
import java.util.Map; //import java.util.Map;
//
/** ///**
* API // * 文件上传下载 API
* // *
* @author AutoGenerator // * @author AutoGenerator
* @since 2023-07-15 // * @since 2023-07-15
*/ // */
@SpringBootTest //@SpringBootTest
public class FileController { //public class FileController {
//
//
//
//
public static void test1() throws Exception { // public static void test1() throws Exception {
ZipUtil.unzip("/Users/linruifeng/Desktop/collector_packages/collector.zip", "/Users/linruifeng/Desktop/collector_packages"); // ZipUtil.unzip("/Users/linruifeng/Desktop/collector_packages/collector.zip", "/Users/linruifeng/Desktop/collector_packages");
// ZipUtil.unGzip(new GZIPInputStream(new FileInputStream(new File("/Users/linruifeng/Desktop/collector_packages/index.tar.gz")))); //// ZipUtil.unGzip(new GZIPInputStream(new FileInputStream(new File("/Users/linruifeng/Desktop/collector_packages/index.tar.gz"))));
// FileUtils.unTarGz("/Users/linruifeng/Desktop/collector_packages/", "/Users/linruifeng/Desktop/collector_packages/test"); //// FileUtils.unTarGz("/Users/linruifeng/Desktop/collector_packages/", "/Users/linruifeng/Desktop/collector_packages/test");
} // }
//
@ApiOperation("test") // @ApiOperation("test")
@PostMapping("/test") // @PostMapping("/test")
public void test2() throws Exception { // public void test2() throws Exception {
File file = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg"); // File file = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
File file1 = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174052\\麻醉.jpg"); // File file1 = new File("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174052\\麻醉.jpg");
//
Map<String, Object> data = new HashMap<>(); // Map<String, Object> data = new HashMap<>();
data.put("files", file); // data.put("files", file);
data.put("filetype", "jpg"); // data.put("filetype", "jpg");
//
ArrayList<File> files = Lists.newArrayList(file, file1); // ArrayList<File> files = Lists.newArrayList(file, file1);
//
String body = HttpRequest.post("http://localhost:9115/file/upload") // String body = HttpRequest.post("http://localhost:9115/file/upload")
.form("files", files.toArray(new File[files.size()])) // .form("files", files.toArray(new File[files.size()]))
.form("pathKey", "{\n" + // .form("pathKey", "{\n" +
" \"success\": true,\n" + // " \"success\": true,\n" +
" \"datas\": [\n" + // " \"datas\": [\n" +
" {\n" + // " {\n" +
" \"index\": 0,\n" + // " \"index\": 0,\n" +
" \"file_type\": \"string\",\n" + // " \"file_type\": \"string\",\n" +
" \"angle\": \"string\",\n" + // " \"angle\": \"string\",\n" +
" \"decline\": true,\n" + // " \"decline\": true,\n" +
" \"hand_shadow\": true,\n" + // " \"hand_shadow\": true,\n" +
" \"sort\": [\n" + // " \"sort\": [\n" +
" \"string\"\n" + // " \"string\"\n" +
" ],\n" + // " ],\n" +
" \"data\": [\n" + // " \"data\": [\n" +
" {\n" + // " {\n" +
" \"boxes\": {\n" + // " \"boxes\": {\n" +
" \"left\": 0,\n" + // " \"left\": 0,\n" +
" \"right\": 0,\n" + // " \"right\": 0,\n" +
" \"top\": 0,\n" + // " \"top\": 0,\n" +
" \"bottom\": 0\n" + // " \"bottom\": 0\n" +
" },\n" + // " },\n" +
" \"text\": \"string\"\n" + // " \"text\": \"string\"\n" +
" }\n" + // " }\n" +
" ]\n" + // " ]\n" +
" }\n" + // " }\n" +
" ],\n" + // " ],\n" +
" \"time\": 0,\n" + // " \"time\": 0,\n" +
" \"message\": \"string\"\n" + // " \"message\": \"string\"\n" +
"}") // "}")
.contentType("multipart/form-data") // .contentType("multipart/form-data")
.execute() // .execute()
.body(); // .body();
//
System.out.println(body); // System.out.println(body);
//
} // }
} //}

@ -1,162 +1,162 @@
package com.docus.server; //package com.docus.server;
//
import org.apache.tools.tar.TarInputStream; //import org.apache.tools.tar.TarInputStream;
//
import java.io.*; //import java.io.*;
import java.util.zip.GZIPInputStream; //import java.util.zip.GZIPInputStream;
//
/** ///**
* @program: JavaCode // * @program: JavaCode
* @ClassName FileUtils // * @ClassName FileUtils
* @description: // * @description:
* @author: ltcz99 // * @author: ltcz99
* @create: 2023-04-16 // * @create: 2023-04-16
* @Version 1.0 // * @Version 1.0
**/ // **/
public class FileUtils { //public class FileUtils {
//
//
/** // /**
* tar.gz // * 解压tar.gz文件到指定目录
* // *
* @param sourceDir // * @param sourceDir 源文件夹
* @param destDir // * @param destDir 解压后的目标文件夹
*/ // */
public static void unTarGz(String sourceDir, String destDir) throws Exception { // public static void unTarGz(String sourceDir, String destDir) throws Exception {
File outFile = new File(sourceDir); // File outFile = new File(sourceDir);
File[] files = outFile.listFiles(); // File[] files = outFile.listFiles();
try { // try {
//创建输出目录 // //创建输出目录
createDirectory(destDir, null); // createDirectory(destDir, null);
TarInputStream tarIn; // TarInputStream tarIn;
int index = 1; // int index = 1;
for (File file : files) { // for (File file : files) {
if (file.getName().contains("tar.gz")) { // if (file.getName().contains("tar.gz")) {
tarIn = new TarInputStream(new GZIPInputStream( // tarIn = new TarInputStream(new GZIPInputStream(
new BufferedInputStream(new FileInputStream(file))), // new BufferedInputStream(new FileInputStream(file))),
1024 * 2); // 1024 * 2);
//
String outFileName = destDir + "/" + file.getName(); // String outFileName = destDir + "/" + file.getName();
OutputStream out = new FileOutputStream(new File(outFileName)); // OutputStream out = new FileOutputStream(new File(outFileName));
int length = 0; // int length = 0;
byte[] b = new byte[2048]; // byte[] b = new byte[2048];
while ((length = tarIn.read(b)) != -1) { // while ((length = tarIn.read(b)) != -1) {
out.write(b, 0, length); // out.write(b, 0, length);
} // }
out.close(); // out.close();
tarIn.close(); // tarIn.close();
} // }
} // }
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
//
} // }
//
/** // /**
* gz // * 解压gz到指定的文件夹下面
* // *
* @param sourceDir // * @param sourceDir
* @param destDir // * @param destDir
*/ // */
public static void unGzipFile(String sourceDir, String destDir) { // public static void unGzipFile(String sourceDir, String destDir) {
//创建输出目录 // //创建输出目录
createDirectory(destDir, null); // createDirectory(destDir, null);
File sourceFile = new File(sourceDir); // File sourceFile = new File(sourceDir);
File[] files = sourceFile.listFiles(); // File[] files = sourceFile.listFiles();
try { // try {
int index = 1; // int index = 1;
for (File file : files) { // for (File file : files) {
if (file.getName().contains("gz")) { // if (file.getName().contains("gz")) {
FileInputStream fin = new FileInputStream(file); // FileInputStream fin = new FileInputStream(file);
//建立gzip解压工作流 // //建立gzip解压工作流
GZIPInputStream gzin = new GZIPInputStream(fin); // GZIPInputStream gzin = new GZIPInputStream(fin);
//建立解压文件输出流 // //建立解压文件输出流
File tmpFile = new File(destDir + "/" + index++ + ".log"); // File tmpFile = new File(destDir + "/" + index++ + ".log");
FileOutputStream fout = new FileOutputStream(tmpFile); // FileOutputStream fout = new FileOutputStream(tmpFile);
int length; // int length;
byte[] buf = new byte[2048]; // byte[] buf = new byte[2048];
while ((length = gzin.read(buf, 0, buf.length)) != -1) { // while ((length = gzin.read(buf, 0, buf.length)) != -1) {
fout.write(buf, 0, length); // fout.write(buf, 0, length);
} // }
gzin.close(); // gzin.close();
fout.close(); // fout.close();
fin.close(); // fin.close();
} // }
} // }
} catch (Exception ex) { // } catch (Exception ex) {
System.err.println(ex); // System.err.println(ex);
} // }
} // }
//
/** // /**
* // * 读取文件到指定的文件夹下面
* // *
* @param sourceLogPath // * @param sourceLogPath
* @param destLogPath // * @param destLogPath
*/ // */
public static void readFileToDestLogPath(String sourceLogPath, String destLogPath) { // public static void readFileToDestLogPath(String sourceLogPath, String destLogPath) {
File sourceFile = new File(sourceLogPath); // File sourceFile = new File(sourceLogPath);
File[] files = sourceFile.listFiles(); // File[] files = sourceFile.listFiles();
for (File file : files) { // for (File file : files) {
String fileName = destLogPath + "/" + file.getName(); // String fileName = destLogPath + "/" + file.getName();
File destFile = new File(fileName); // File destFile = new File(fileName);
if (file.getName().contains("log") && !fileName.contains("gz")) { // if (file.getName().contains("log") && !fileName.contains("gz")) {
try { // try {
if (destFile.exists()) { // if (destFile.exists()) {
destFile.delete(); // destFile.delete();
} // }
String logFile = sourceFile + "/" + file.getName(); // String logFile = sourceFile + "/" + file.getName();
FileInputStream fis = new FileInputStream(logFile); // FileInputStream fis = new FileInputStream(logFile);
FileOutputStream fos = new FileOutputStream(destFile); // FileOutputStream fos = new FileOutputStream(destFile);
BufferedInputStream bis = new BufferedInputStream(fis); // BufferedInputStream bis = new BufferedInputStream(fis);
BufferedOutputStream bos = new BufferedOutputStream(fos); // BufferedOutputStream bos = new BufferedOutputStream(fos);
int len = 0; // int len = 0;
while ((len = bis.read()) != -1) { // while ((len = bis.read()) != -1) {
bos.write(len); // bos.write(len);
} // }
bos.flush(); // bos.flush();
// 关闭资源 // // 关闭资源
fis.close(); // fis.close();
bis.close(); // bis.close();
fos.close(); // fos.close();
bos.close(); // bos.close();
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
} // }
} // }
//
} // }
//
/** // /**
* // * 创建目录
* // *
* @param outputDir // * @param outputDir
* @param subDir // * @param subDir
*/ // */
public static void createDirectory(String outputDir, String subDir) { // public static void createDirectory(String outputDir, String subDir) {
File file = new File(outputDir); // File file = new File(outputDir);
//子目录不为空 // //子目录不为空
if (!(subDir == null || subDir.trim().equals(""))) { // if (!(subDir == null || subDir.trim().equals(""))) {
file = new File(outputDir + "/" + subDir); // file = new File(outputDir + "/" + subDir);
} // }
if (!file.exists()) { // if (!file.exists()) {
if (!file.getParentFile().exists()) { // if (!file.getParentFile().exists()) {
file.getParentFile().mkdirs(); // file.getParentFile().mkdirs();
} // }
file.mkdirs(); // file.mkdirs();
} // }
} // }
//
public static void main(String[] args) throws Exception { // public static void main(String[] args) throws Exception {
String sourceDir = "/Users/ltcz99/Downloads/templog"; // String sourceDir = "/Users/ltcz99/Downloads/templog";
String destDir = "/Users/ltcz99/Downloads/unzip/"; // String destDir = "/Users/ltcz99/Downloads/unzip/";
//解压.gz文件到指定的文件件下面 // //解压.gz文件到指定的文件件下面
unGzipFile(sourceDir, destDir); // unGzipFile(sourceDir, destDir);
// 解压tar.gz文件到指定的文件夹下面 // // 解压tar.gz文件到指定的文件夹下面
unTarGz(sourceDir, destDir); // unTarGz(sourceDir, destDir);
//读取特定的文件到指定的文件夹下面 // //读取特定的文件到指定的文件夹下面
readFileToDestLogPath(sourceDir, destDir); // readFileToDestLogPath(sourceDir, destDir);
} // }
} //}

@ -1,60 +1,60 @@
package com.docus.server; //package com.docus.server;
//
import cn.hutool.core.img.ImgUtil; //import cn.hutool.core.img.ImgUtil;
import cn.hutool.core.io.FileUtil; //import cn.hutool.core.io.FileUtil;
import cn.hutool.core.util.StrUtil; //import cn.hutool.core.util.StrUtil;
import cn.hutool.http.HttpRequest; //import cn.hutool.http.HttpRequest;
//
import java.io.File; //import java.io.File;
import java.util.HashMap; //import java.util.HashMap;
import java.util.Map; //import java.util.Map;
//
public class ImageProcessingExample { //public class ImageProcessingExample {
//
public static void main(String[] args) throws Exception { // public static void main(String[] args) throws Exception {
//
// UploadBatchFileRequest uploadBatchFileParam = new UploadBatchFileRequest(); //// UploadBatchFileRequest uploadBatchFileParam = new UploadBatchFileRequest();
// System.out.println(JSON.toJSON(uploadBatchFileParam)); //// System.out.println(JSON.toJSON(uploadBatchFileParam));
// ////
// FileDTO fileDto = new FileDTO(); //// FileDTO fileDto = new FileDTO();
// System.out.println(JSON.toJSON(fileDto)); //// System.out.println(JSON.toJSON(fileDto));
// ////
// List<FileDTO> fileDtoList = new ArrayList<>(); //// List<FileDTO> fileDtoList = new ArrayList<>();
// System.out.println(JSON.toJSON(fileDtoList)); //// System.out.println(JSON.toJSON(fileDtoList));
//
//
// 1. 调整图片大小 // // 1. 调整图片大小
ImgUtil.scale(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg"), FileUtil.file("C:\\Users\\dataexa\\Desktop\\output-麻醉.jpg"), 0.5f); // ImgUtil.scale(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg"), FileUtil.file("C:\\Users\\dataexa\\Desktop\\output-麻醉.jpg"), 0.5f);
//
// 2. 裁剪图片 // // 2. 裁剪图片
// ImgUtil.cut(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg"), FileUtil.file("C:\\Users\\dataexa\\Desktop\\output1.jpg"), new Rectangle(50, 50, 2400, (3527 / 2) / 2)); // 从input.jpg中裁剪出一个200x200的区域保存为output.jpg //// ImgUtil.cut(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg"), FileUtil.file("C:\\Users\\dataexa\\Desktop\\output1.jpg"), new Rectangle(50, 50, 2400, (3527 / 2) / 2)); // 从input.jpg中裁剪出一个200x200的区域保存为output.jpg
//
// 5. 图片旋转 // // 5. 图片旋转
// Image image = ImgUtil.rotate(ImageIO.read(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg")), 90); //// Image image = ImgUtil.rotate(ImageIO.read(FileUtil.file("C:\\Users\\dataexa\\Desktop\\麻醉.jpg")), 90);
// ImgUtil.write(image, FileUtil.file("C:\\Users\\dataexa\\Desktop\\output2.jpg")); //// ImgUtil.write(image, FileUtil.file("C:\\Users\\dataexa\\Desktop\\output2.jpg"));
//
// uploadByte("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg"); //// uploadByte("D:\\docus\\cut\\segmentation\\20230822\\c6b03e5767814895a2c155c32f174051\\麻醉.jpg");
} // }
//
public static void uploadByte(String path) { // public static void uploadByte(String path) {
File toFile = new File(path); // File toFile = new File(path);
Map data = new HashMap(); // Map data = new HashMap();
data.put("file", toFile); // data.put("file", toFile);
data.put("filetype", "jpg"); // data.put("filetype", "jpg");
String body = HttpRequest.post("http://192.168.16.85:9999/uploadfile") // String body = HttpRequest.post("http://192.168.16.85:9999/uploadfile")
.form(data) // .form(data)
.contentType("multipart/form-data") // .contentType("multipart/form-data")
.execute() // .execute()
.body(); // .body();
if (StrUtil.isNotBlank(body)) { // if (StrUtil.isNotBlank(body)) {
// OcrResponse jsonRootBean = JSON.parseObject(body, OcrResponse.class); //// OcrResponse jsonRootBean = JSON.parseObject(body, OcrResponse.class);
// System.out.println(jsonRootBean); //// System.out.println(jsonRootBean);
} // }
//
// Boolean success = (Boolean)result.get("success"); //// Boolean success = (Boolean)result.get("success");
// BigDecimal time = (BigDecimal)result.get("time"); //// BigDecimal time = (BigDecimal)result.get("time");
//
} // }
//
//
} //}

@ -1,313 +1,313 @@
package com.docus.server; //package com.docus.server;
//
import com.alibaba.fastjson.JSONArray; //import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject; //import com.alibaba.fastjson.JSONObject;
import oshi.SystemInfo; //import oshi.SystemInfo;
import oshi.hardware.CentralProcessor; //import oshi.hardware.CentralProcessor;
import oshi.hardware.GlobalMemory; //import oshi.hardware.GlobalMemory;
import oshi.hardware.HardwareAbstractionLayer; //import oshi.hardware.HardwareAbstractionLayer;
import oshi.hardware.NetworkIF; //import oshi.hardware.NetworkIF;
import oshi.software.os.FileSystem; //import oshi.software.os.FileSystem;
import oshi.software.os.OSFileStore; //import oshi.software.os.OSFileStore;
import oshi.software.os.OperatingSystem; //import oshi.software.os.OperatingSystem;
import oshi.util.Util; //import oshi.util.Util;
//
import java.io.BufferedReader; //import java.io.BufferedReader;
import java.io.IOException; //import java.io.IOException;
import java.io.InputStreamReader; //import java.io.InputStreamReader;
import java.net.InetAddress; //import java.net.InetAddress;
import java.net.UnknownHostException; //import java.net.UnknownHostException;
import java.text.DecimalFormat; //import java.text.DecimalFormat;
import java.util.Formatter; //import java.util.Formatter;
import java.util.HashMap; //import java.util.HashMap;
import java.util.List; //import java.util.List;
import java.util.Map; //import java.util.Map;
import java.util.Optional; //import java.util.Optional;
import java.util.Properties; //import java.util.Properties;
import java.util.StringTokenizer; //import java.util.StringTokenizer;
//
/** ///**
* // * 系统消息工具类
**/ // **/
public class SystemInfoUtils { //public class SystemInfoUtils {
//
private static final int OSHI_WAIT_SECOND = 1000; // private static final int OSHI_WAIT_SECOND = 1000;
private static final int SLEEP_TIME = 2 * 1000; // private static final int SLEEP_TIME = 2 * 1000;
private static SystemInfo systemInfo = new SystemInfo(); // private static SystemInfo systemInfo = new SystemInfo();
private static HardwareAbstractionLayer hardware = systemInfo.getHardware(); // private static HardwareAbstractionLayer hardware = systemInfo.getHardware();
private static OperatingSystem operatingSystem = systemInfo.getOperatingSystem(); // private static OperatingSystem operatingSystem = systemInfo.getOperatingSystem();
//
public static void main(String[] args) throws Exception { // public static void main(String[] args) throws Exception {
JSONObject info = getInfo(); // JSONObject info = getInfo();
System.out.println(info); // System.out.println(info);
} // }
//
public static JSONObject getCpuInfo() { // public static JSONObject getCpuInfo() {
JSONObject cpuInfo = new JSONObject(); // JSONObject cpuInfo = new JSONObject();
CentralProcessor processor = hardware.getProcessor(); // CentralProcessor processor = hardware.getProcessor();
// CPU信息 // // CPU信息
long[] prevTicks = processor.getSystemCpuLoadTicks(); // long[] prevTicks = processor.getSystemCpuLoadTicks();
Util.sleep(OSHI_WAIT_SECOND); // Util.sleep(OSHI_WAIT_SECOND);
long[] ticks = processor.getSystemCpuLoadTicks(); // long[] ticks = processor.getSystemCpuLoadTicks();
long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()]; // long nice = ticks[CentralProcessor.TickType.NICE.getIndex()] - prevTicks[CentralProcessor.TickType.NICE.getIndex()];
long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()]; // long irq = ticks[CentralProcessor.TickType.IRQ.getIndex()] - prevTicks[CentralProcessor.TickType.IRQ.getIndex()];
long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()]; // long softirq = ticks[CentralProcessor.TickType.SOFTIRQ.getIndex()] - prevTicks[CentralProcessor.TickType.SOFTIRQ.getIndex()];
long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()]; // long steal = ticks[CentralProcessor.TickType.STEAL.getIndex()] - prevTicks[CentralProcessor.TickType.STEAL.getIndex()];
long cSys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()]; // long cSys = ticks[CentralProcessor.TickType.SYSTEM.getIndex()] - prevTicks[CentralProcessor.TickType.SYSTEM.getIndex()];
long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()]; // long user = ticks[CentralProcessor.TickType.USER.getIndex()] - prevTicks[CentralProcessor.TickType.USER.getIndex()];
long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()]; // long iowait = ticks[CentralProcessor.TickType.IOWAIT.getIndex()] - prevTicks[CentralProcessor.TickType.IOWAIT.getIndex()];
long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()]; // long idle = ticks[CentralProcessor.TickType.IDLE.getIndex()] - prevTicks[CentralProcessor.TickType.IDLE.getIndex()];
long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal; // long totalCpu = user + nice + cSys + idle + iowait + irq + softirq + steal;
//cpu核数 // //cpu核数
cpuInfo.put("cpuNum", processor.getLogicalProcessorCount()); // cpuInfo.put("cpuNum", processor.getLogicalProcessorCount());
//cpu系统使用率 // //cpu系统使用率
cpuInfo.put("cSys", new DecimalFormat("#.##%").format(cSys * 1.0 / totalCpu)); // cpuInfo.put("cSys", new DecimalFormat("#.##%").format(cSys * 1.0 / totalCpu));
//cpu用户使用率 // //cpu用户使用率
cpuInfo.put("user", new DecimalFormat("#.##%").format(user * 1.0 / totalCpu)); // cpuInfo.put("user", new DecimalFormat("#.##%").format(user * 1.0 / totalCpu));
//cpu当前等待率 // //cpu当前等待率
cpuInfo.put("iowait", new DecimalFormat("#.##%").format(iowait * 1.0 / totalCpu)); // cpuInfo.put("iowait", new DecimalFormat("#.##%").format(iowait * 1.0 / totalCpu));
//cpu当前使用率 // //cpu当前使用率
cpuInfo.put("idle", new DecimalFormat("#.##%").format(1.0 - (idle * 1.0 / totalCpu))); // cpuInfo.put("idle", new DecimalFormat("#.##%").format(1.0 - (idle * 1.0 / totalCpu)));
return cpuInfo; // return cpuInfo;
} // }
//
/** // /**
* jvm // * 系统jvm信息
*/ // */
public static JSONObject getJvmInfo() { // public static JSONObject getJvmInfo() {
JSONObject cpuInfo = new JSONObject(); // JSONObject cpuInfo = new JSONObject();
Properties props = System.getProperties(); // Properties props = System.getProperties();
Runtime runtime = Runtime.getRuntime(); // Runtime runtime = Runtime.getRuntime();
long jvmTotalMemoryByte = runtime.totalMemory(); // long jvmTotalMemoryByte = runtime.totalMemory();
long freeMemoryByte = runtime.freeMemory(); // long freeMemoryByte = runtime.freeMemory();
//jvm总内存 // //jvm总内存
cpuInfo.put("total", formatByte(runtime.totalMemory())); // cpuInfo.put("total", formatByte(runtime.totalMemory()));
//空闲空间 // //空闲空间
cpuInfo.put("free", formatByte(runtime.freeMemory())); // cpuInfo.put("free", formatByte(runtime.freeMemory()));
//jvm最大可申请 // //jvm最大可申请
cpuInfo.put("max", formatByte(runtime.maxMemory())); // cpuInfo.put("max", formatByte(runtime.maxMemory()));
//vm已使用内存 // //vm已使用内存
cpuInfo.put("user", formatByte(jvmTotalMemoryByte - freeMemoryByte)); // cpuInfo.put("user", formatByte(jvmTotalMemoryByte - freeMemoryByte));
//jvm内存使用率 // //jvm内存使用率
cpuInfo.put("usageRate", new DecimalFormat("#.##%").format((jvmTotalMemoryByte - freeMemoryByte) * 1.0 / jvmTotalMemoryByte)); // cpuInfo.put("usageRate", new DecimalFormat("#.##%").format((jvmTotalMemoryByte - freeMemoryByte) * 1.0 / jvmTotalMemoryByte));
//jdk版本 // //jdk版本
cpuInfo.put("jdkVersion", props.getProperty("java.version")); // cpuInfo.put("jdkVersion", props.getProperty("java.version"));
//jdk路径 // //jdk路径
cpuInfo.put("jdkHome", props.getProperty("java.home")); // cpuInfo.put("jdkHome", props.getProperty("java.home"));
return cpuInfo; // return cpuInfo;
} // }
//
/** // /**
* // * 系统内存信息
*/ // */
public static JSONObject getMemInfo() { // public static JSONObject getMemInfo() {
JSONObject cpuInfo = new JSONObject(); // JSONObject cpuInfo = new JSONObject();
GlobalMemory memory = systemInfo.getHardware().getMemory(); // GlobalMemory memory = systemInfo.getHardware().getMemory();
//总内存 // //总内存
long totalByte = memory.getTotal(); // long totalByte = memory.getTotal();
//剩余 // //剩余
long acaliableByte = memory.getAvailable(); // long acaliableByte = memory.getAvailable();
//总内存 // //总内存
cpuInfo.put("total", formatByte(totalByte)); // cpuInfo.put("total", formatByte(totalByte));
//使用 // //使用
cpuInfo.put("used", formatByte(totalByte - acaliableByte)); // cpuInfo.put("used", formatByte(totalByte - acaliableByte));
//剩余内存 // //剩余内存
cpuInfo.put("free", formatByte(acaliableByte)); // cpuInfo.put("free", formatByte(acaliableByte));
//使用率 // //使用率
cpuInfo.put("usageRate", new DecimalFormat("#.##%").format((totalByte - acaliableByte) * 1.0 / totalByte)); // cpuInfo.put("usageRate", new DecimalFormat("#.##%").format((totalByte - acaliableByte) * 1.0 / totalByte));
return cpuInfo; // return cpuInfo;
} // }
//
/** // /**
* // * 带宽
*/ // */
public static JSONArray networkIFs() throws Exception { // public static JSONArray networkIFs() throws Exception {
JSONObject cpuInfo; // JSONObject cpuInfo;
JSONArray sysFiles = new JSONArray(); // JSONArray sysFiles = new JSONArray();
//
List<NetworkIF> networkIFs = systemInfo.getHardware().getNetworkIFs(); // List<NetworkIF> networkIFs = systemInfo.getHardware().getNetworkIFs();
for (NetworkIF networkIF : networkIFs) { // for (NetworkIF networkIF : networkIFs) {
String name = networkIF.getName(); // String name = networkIF.getName();
long receiveBytes = networkIF.getBytesRecv(); // long receiveBytes = networkIF.getBytesRecv();
long transmitBytes = networkIF.getBytesSent(); // long transmitBytes = networkIF.getBytesSent();
//
cpuInfo = new JSONObject(); // cpuInfo = new JSONObject();
//名称 // //名称
cpuInfo.put("name", name); // cpuInfo.put("name", name);
//网络接收 // //网络接收
cpuInfo.put("receiveBytes", formatNumber(receiveBytes / (1024.0 * (2 * 1000 / 1000)))); // cpuInfo.put("receiveBytes", formatNumber(receiveBytes / (1024.0 * (2 * 1000 / 1000))));
//网络发送 // //网络发送
cpuInfo.put("transmitBytes", formatNumber(transmitBytes / (1024.0 * (2 * 1000 / 1000)))); // cpuInfo.put("transmitBytes", formatNumber(transmitBytes / (1024.0 * (2 * 1000 / 1000))));
//
sysFiles.add(cpuInfo); // sysFiles.add(cpuInfo);
} // }
return sysFiles; // return sysFiles;
} // }
//
public static JSONObject getNetWork() { // public static JSONObject getNetWork() {
JSONObject networkInfo = new JSONObject(); // JSONObject networkInfo = new JSONObject();
Properties props = System.getProperties(); // Properties props = System.getProperties();
String os = props.getProperty("os.name").toLowerCase(); // String os = props.getProperty("os.name").toLowerCase();
os = os.startsWith("win") ? "windows" : "linux"; // os = os.startsWith("win") ? "windows" : "linux";
Map<String, String> result = new HashMap<>(); // Map<String, String> result = new HashMap<>();
Process pro = null; // Process pro = null;
Runtime r = Runtime.getRuntime(); // Runtime r = Runtime.getRuntime();
BufferedReader input = null; // BufferedReader input = null;
try { // try {
String command = "windows".equals(os) ? "netstat -e" : "ifconfig"; // String command = "windows".equals(os) ? "netstat -e" : "ifconfig";
pro = r.exec(command); // pro = r.exec(command);
input = new BufferedReader(new InputStreamReader(pro.getInputStream())); // input = new BufferedReader(new InputStreamReader(pro.getInputStream()));
long result1[] = readInLine(input, os); // long result1[] = readInLine(input, os);
Thread.sleep(SLEEP_TIME); // Thread.sleep(SLEEP_TIME);
pro.destroy(); // pro.destroy();
input.close(); // input.close();
pro = r.exec(command); // pro = r.exec(command);
input = new BufferedReader(new InputStreamReader(pro.getInputStream())); // input = new BufferedReader(new InputStreamReader(pro.getInputStream()));
long result2[] = readInLine(input, os); // long result2[] = readInLine(input, os);
String rxPercent = formatNumber((result2[0] - result1[0]) / (1024.0 * (SLEEP_TIME / 1000)));// 下行速率(kB/s) // String rxPercent = formatNumber((result2[0] - result1[0]) / (1024.0 * (SLEEP_TIME / 1000)));// 下行速率(kB/s)
String txPercent = formatNumber((result2[1] - result1[1]) / (1024.0 * (SLEEP_TIME / 1000)));// 上行速率(kB/s) // String txPercent = formatNumber((result2[1] - result1[1]) / (1024.0 * (SLEEP_TIME / 1000)));// 上行速率(kB/s)
networkInfo.put("rxPercent", rxPercent); // networkInfo.put("rxPercent", rxPercent);
networkInfo.put("txPercent", txPercent); // networkInfo.put("txPercent", txPercent);
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} finally { // } finally {
if (input != null) { // if (input != null) {
try { // try {
input.close(); // input.close();
} catch (IOException e) { // } catch (IOException e) {
e.printStackTrace(); // e.printStackTrace();
} // }
} // }
Optional.ofNullable(pro).ifPresent(p -> p.destroy()); // Optional.ofNullable(pro).ifPresent(p -> p.destroy());
} // }
return networkInfo; // return networkInfo;
} // }
//
private static long[] readInLine(BufferedReader input, String osType) { // private static long[] readInLine(BufferedReader input, String osType) {
long arr[] = new long[2]; // long arr[] = new long[2];
StringTokenizer tokenStat = null; // StringTokenizer tokenStat = null;
try { // try {
if (osType.equals("linux")) { // 获取linux环境下的网口上下行速率 // if (osType.equals("linux")) { // 获取linux环境下的网口上下行速率
long rx = 0, tx = 0; // long rx = 0, tx = 0;
String line = null; // String line = null;
//RX packets:4171603 errors:0 dropped:0 overruns:0 frame:0 // //RX packets:4171603 errors:0 dropped:0 overruns:0 frame:0
//TX packets:4171603 errors:0 dropped:0 overruns:0 carrier:0 // //TX packets:4171603 errors:0 dropped:0 overruns:0 carrier:0
while ((line = input.readLine()) != null) { // while ((line = input.readLine()) != null) {
if (line.indexOf("RX packets") >= 0) { // if (line.indexOf("RX packets") >= 0) {
rx += Long.parseLong(line.substring(line.indexOf("RX packets") + 11, line.indexOf(" ", line.indexOf("RX packets") + 11))); // rx += Long.parseLong(line.substring(line.indexOf("RX packets") + 11, line.indexOf(" ", line.indexOf("RX packets") + 11)));
} else if (line.indexOf("TX packets") >= 0) { // } else if (line.indexOf("TX packets") >= 0) {
tx += Long.parseLong(line.substring(line.indexOf("TX packets") + 11, line.indexOf(" ", line.indexOf("TX packets") + 11))); // tx += Long.parseLong(line.substring(line.indexOf("TX packets") + 11, line.indexOf(" ", line.indexOf("TX packets") + 11)));
} // }
} // }
arr[0] = rx; // arr[0] = rx;
arr[1] = tx; // arr[1] = tx;
} else { // 获取windows环境下的网口上下行速率 // } else { // 获取windows环境下的网口上下行速率
input.readLine(); // input.readLine();
input.readLine(); // input.readLine();
input.readLine(); // input.readLine();
input.readLine(); // input.readLine();
tokenStat = new StringTokenizer(input.readLine()); // tokenStat = new StringTokenizer(input.readLine());
tokenStat.nextToken(); // tokenStat.nextToken();
arr[0] = Long.parseLong(tokenStat.nextToken()); // arr[0] = Long.parseLong(tokenStat.nextToken());
arr[1] = Long.parseLong(tokenStat.nextToken()); // arr[1] = Long.parseLong(tokenStat.nextToken());
} // }
} catch (Exception e) { // } catch (Exception e) {
e.printStackTrace(); // e.printStackTrace();
} // }
return arr; // return arr;
} // }
//
//
private static String formatNumber(double f) { // private static String formatNumber(double f) {
return new Formatter().format("%.2f", f).toString(); // return new Formatter().format("%.2f", f).toString();
} // }
//
/** // /**
* // * 系统盘符信息
*/ // */
public static JSONArray getSysFileInfo() { // public static JSONArray getSysFileInfo() {
JSONObject cpuInfo; // JSONObject cpuInfo;
JSONArray sysFiles = new JSONArray(); // JSONArray sysFiles = new JSONArray();
FileSystem fileSystem = operatingSystem.getFileSystem(); // FileSystem fileSystem = operatingSystem.getFileSystem();
List<OSFileStore> fsArray = fileSystem.getFileStores(); // List<OSFileStore> fsArray = fileSystem.getFileStores();
for (OSFileStore fs : fsArray) { // for (OSFileStore fs : fsArray) {
cpuInfo = new JSONObject(); // cpuInfo = new JSONObject();
//盘符路径 // //盘符路径
cpuInfo.put("dirName", fs.getMount()); // cpuInfo.put("dirName", fs.getMount());
//盘符类型 // //盘符类型
cpuInfo.put("sysTypeName", fs.getType()); // cpuInfo.put("sysTypeName", fs.getType());
//文件类型 // //文件类型
cpuInfo.put("typeName", fs.getName()); // cpuInfo.put("typeName", fs.getName());
//总大小 // //总大小
cpuInfo.put("total", formatByte(fs.getTotalSpace())); // cpuInfo.put("total", formatByte(fs.getTotalSpace()));
//剩余大小 // //剩余大小
cpuInfo.put("free", formatByte(fs.getUsableSpace())); // cpuInfo.put("free", formatByte(fs.getUsableSpace()));
//已经使用量 // //已经使用量
cpuInfo.put("used", formatByte(fs.getTotalSpace() - fs.getUsableSpace())); // cpuInfo.put("used", formatByte(fs.getTotalSpace() - fs.getUsableSpace()));
if (fs.getTotalSpace() == 0) { // if (fs.getTotalSpace() == 0) {
//资源的使用率 // //资源的使用率
cpuInfo.put("usage", 0); // cpuInfo.put("usage", 0);
} else { // } else {
cpuInfo.put("usage", new DecimalFormat("#.##%").format((fs.getTotalSpace() - fs.getUsableSpace()) * 1.0 / fs.getTotalSpace())); // cpuInfo.put("usage", new DecimalFormat("#.##%").format((fs.getTotalSpace() - fs.getUsableSpace()) * 1.0 / fs.getTotalSpace()));
} // }
sysFiles.add(cpuInfo); // sysFiles.add(cpuInfo);
} // }
return sysFiles; // return sysFiles;
} // }
//
/** // /**
* // * 系统信息
*/ // */
public static JSONObject getSysInfo() throws UnknownHostException { // public static JSONObject getSysInfo() throws UnknownHostException {
JSONObject cpuInfo = new JSONObject(); // JSONObject cpuInfo = new JSONObject();
Properties props = System.getProperties(); // Properties props = System.getProperties();
//操作系统名 // //操作系统名
cpuInfo.put("osName", props.getProperty("os.name")); // cpuInfo.put("osName", props.getProperty("os.name"));
//系统架构 // //系统架构
cpuInfo.put("osArch", props.getProperty("os.arch")); // cpuInfo.put("osArch", props.getProperty("os.arch"));
//服务器名称 // //服务器名称
cpuInfo.put("computerName", InetAddress.getLocalHost().getHostName()); // cpuInfo.put("computerName", InetAddress.getLocalHost().getHostName());
//服务器Ip // //服务器Ip
cpuInfo.put("computerIp", InetAddress.getLocalHost().getHostAddress()); // cpuInfo.put("computerIp", InetAddress.getLocalHost().getHostAddress());
//项目路径 // //项目路径
cpuInfo.put("userDir", props.getProperty("user.dir")); // cpuInfo.put("userDir", props.getProperty("user.dir"));
return cpuInfo; // return cpuInfo;
} // }
//
//
/** // /**
* // * 所有系统信息
*/ // */
public static JSONObject getInfo() throws Exception { // public static JSONObject getInfo() throws Exception {
JSONObject info = new JSONObject(); // JSONObject info = new JSONObject();
info.put("cpuInfo", getCpuInfo()); // info.put("cpuInfo", getCpuInfo());
info.put("jvmInfo", getJvmInfo()); // info.put("jvmInfo", getJvmInfo());
info.put("memInfo", getMemInfo()); // info.put("memInfo", getMemInfo());
info.put("sysInfo", getSysInfo()); // info.put("sysInfo", getSysInfo());
info.put("sysFileInfo", getSysFileInfo()); // info.put("sysFileInfo", getSysFileInfo());
info.put("networkInfo", getNetWork()); // info.put("networkInfo", getNetWork());
return info; // return info;
} // }
//
/** // /**
* // * 单位转换
*/ // */
private static String formatByte(long byteNumber) { // private static String formatByte(long byteNumber) {
//换算单位 // //换算单位
double FORMAT = 1024.0; // double FORMAT = 1024.0;
double kbNumber = byteNumber / FORMAT; // double kbNumber = byteNumber / FORMAT;
if (kbNumber < FORMAT) { // if (kbNumber < FORMAT) {
return new DecimalFormat("#.##KB").format(kbNumber); // return new DecimalFormat("#.##KB").format(kbNumber);
} // }
double mbNumber = kbNumber / FORMAT; // double mbNumber = kbNumber / FORMAT;
if (mbNumber < FORMAT) { // if (mbNumber < FORMAT) {
return new DecimalFormat("#.##MB").format(mbNumber); // return new DecimalFormat("#.##MB").format(mbNumber);
} // }
double gbNumber = mbNumber / FORMAT; // double gbNumber = mbNumber / FORMAT;
if (gbNumber < FORMAT) { // if (gbNumber < FORMAT) {
return new DecimalFormat("#.##GB").format(gbNumber); // return new DecimalFormat("#.##GB").format(gbNumber);
} // }
double tbNumber = gbNumber / FORMAT; // double tbNumber = gbNumber / FORMAT;
return new DecimalFormat("#.##TB").format(tbNumber); // return new DecimalFormat("#.##TB").format(tbNumber);
} // }
} //}

@ -1,87 +1,87 @@
package com.docus.server; //package com.docus.server;
//
import cn.smallbun.screw.core.Configuration; //import cn.smallbun.screw.core.Configuration;
import cn.smallbun.screw.core.engine.EngineConfig; //import cn.smallbun.screw.core.engine.EngineConfig;
import cn.smallbun.screw.core.engine.EngineFileType; //import cn.smallbun.screw.core.engine.EngineFileType;
import cn.smallbun.screw.core.engine.EngineTemplateType; //import cn.smallbun.screw.core.engine.EngineTemplateType;
import cn.smallbun.screw.core.execute.DocumentationExecute; //import cn.smallbun.screw.core.execute.DocumentationExecute;
import cn.smallbun.screw.core.process.ProcessConfig; //import cn.smallbun.screw.core.process.ProcessConfig;
import com.docus.server.api.ocr.OcrApi; //import com.docus.server.api.ocr.OcrApi;
import com.docus.server.vo.ocr.OcrResponse; //import com.docus.server.vo.ocr.OcrResponse;
import com.zaxxer.hikari.HikariConfig; //import com.zaxxer.hikari.HikariConfig;
import com.zaxxer.hikari.HikariDataSource; //import com.zaxxer.hikari.HikariDataSource;
import org.junit.jupiter.api.Test; //import org.junit.jupiter.api.Test;
import org.springframework.beans.factory.annotation.Autowired; //import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.boot.test.context.SpringBootTest; //import org.springframework.boot.test.context.SpringBootTest;
import org.springframework.context.ApplicationContext; //import org.springframework.context.ApplicationContext;
//
import javax.annotation.Resource; //import javax.annotation.Resource;
import javax.sql.DataSource; //import javax.sql.DataSource;
import java.io.File; //import java.io.File;
import java.util.ArrayList; //import java.util.ArrayList;
import java.util.HashMap; //import java.util.HashMap;
import java.util.Map; //import java.util.Map;
//
@SpringBootTest //@SpringBootTest
class ScrewTests { //class ScrewTests {
//
@Autowired // @Autowired
private ApplicationContext applicationContext; // private ApplicationContext applicationContext;
@Resource // @Resource
private OcrApi ocrApi; // private OcrApi ocrApi;
//
@Test // @Test
void test() { // void test() {
//
HikariConfig hikariConfig = new HikariConfig(); // HikariConfig hikariConfig = new HikariConfig();
hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver"); // hikariConfig.setDriverClassName("com.mysql.cj.jdbc.Driver");
hikariConfig.setJdbcUrl("jdbc:mysql://db.docus.cn:3306/docus-collector-scheduling?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai"); // hikariConfig.setJdbcUrl("jdbc:mysql://db.docus.cn:3306/docus-collector-scheduling?autoReconnect=true&allowMultiQueries=true&useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=Asia/Shanghai");
hikariConfig.setUsername("docus"); // hikariConfig.setUsername("docus");
hikariConfig.setPassword("docus702"); // hikariConfig.setPassword("docus702");
//设置可以获取tables remarks信息 // //设置可以获取tables remarks信息
hikariConfig.addDataSourceProperty("useInformationSchema", "true"); // hikariConfig.addDataSourceProperty("useInformationSchema", "true");
hikariConfig.setMinimumIdle(2); // hikariConfig.setMinimumIdle(2);
hikariConfig.setMaximumPoolSize(5); // hikariConfig.setMaximumPoolSize(5);
DataSource dataSource = new HikariDataSource(hikariConfig); // DataSource dataSource = new HikariDataSource(hikariConfig);
//
//生成文件配置 // //生成文件配置
EngineConfig engineConfig = EngineConfig // EngineConfig engineConfig = EngineConfig
.builder() // .builder()
//文件生成路径 // //文件生成路径
.fileOutputDir("h:\\file") // .fileOutputDir("h:\\file")
//打开目录 // //打开目录
.openOutputDir(false) // .openOutputDir(false)
//文件类型 // //文件类型
.fileType(EngineFileType.HTML) // .fileType(EngineFileType.HTML)
//生成模板实现 // //生成模板实现
.produceType(EngineTemplateType.freemarker) // .produceType(EngineTemplateType.freemarker)
.build(); // .build();
//配置想要生成的表 // //配置想要生成的表
ProcessConfig processConfig = ProcessConfig // ProcessConfig processConfig = ProcessConfig
.builder() // .builder()
//根据名称指定表生成 // //根据名称指定表生成
.designatedTableName(new ArrayList<>()) // .designatedTableName(new ArrayList<>())
//根据表前缀生成 // //根据表前缀生成
.designatedTablePrefix(new ArrayList<>()) // .designatedTablePrefix(new ArrayList<>())
//根据表后缀生成 // //根据表后缀生成
.designatedTableSuffix(new ArrayList<>()) // .designatedTableSuffix(new ArrayList<>())
//忽略表名 // //忽略表名
.ignoreTableName(new ArrayList<>()) // .ignoreTableName(new ArrayList<>())
//忽略表前缀 // //忽略表前缀
.ignoreTablePrefix(new ArrayList<>()) // .ignoreTablePrefix(new ArrayList<>())
//忽略表后缀 // //忽略表后缀
.ignoreTableSuffix(new ArrayList<>()) // .ignoreTableSuffix(new ArrayList<>())
.build(); // .build();
//生成文档配置 // //生成文档配置
Configuration configuration = Configuration.builder() // Configuration configuration = Configuration.builder()
.version("1.0.0") // .version("1.0.0")
.description("描述") // .description("描述")
.dataSource(dataSource) // .dataSource(dataSource)
.engineConfig(engineConfig) // .engineConfig(engineConfig)
.produceConfig(processConfig) // .produceConfig(processConfig)
.build(); // .build();
//
//生成 // //生成
new DocumentationExecute(configuration).execute(); // new DocumentationExecute(configuration).execute();
} // }
} //}

Loading…
Cancel
Save