From 66912c4eb95e34adb44f8d51d123373bbea5a095 Mon Sep 17 00:00:00 2001 From: lcj <2331845269@qq.com> Date: Mon, 30 Jun 2025 19:51:41 +0800 Subject: [PATCH] =?UTF-8?q?[add]=20=E5=AE=89=E5=85=A8=E3=80=81=E8=B4=A8?= =?UTF-8?q?=E9=87=8F=E7=9F=A5=E8=AF=86=E5=BA=93=E6=8E=A5=E5=85=A5=E7=95=85?= =?UTF-8?q?=E5=86=99=E5=9B=9E=E8=B0=83=E4=BF=9D=E5=AD=98=E6=96=87=E4=BB=B6?= =?UTF-8?q?=20[update]=20=E4=BF=AE=E6=94=B9=E6=96=AF=E5=B7=B4=E8=BE=BE?= =?UTF-8?q?=E4=B8=AD=E8=8E=B7=E5=8F=96=E6=96=87=E4=BB=B6=E5=90=8D=E5=AD=97?= =?UTF-8?q?=E6=96=B9=E6=B3=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application-dev.yml | 10 +- .../src/main/resources/application.yml | 2 +- .../java/org/dromara/test/SpartaTest.java | 478 ++++++++++++++++++ .../manager/spartamanager/SpartaManager.java | 3 + .../QltKnowledgeDocumentConstant.java | 2 +- .../QltKnowledgeDocumentController.java | 12 + .../service/IQltKnowledgeDocumentService.java | 11 + .../impl/QltKnowledgeDocumentServiceImpl.java | 43 ++ .../HseKnowledgeDocumentController.java | 12 + .../service/IHseKnowledgeDocumentService.java | 11 + .../impl/HseKnowledgeDocumentServiceImpl.java | 44 ++ 11 files changed, 621 insertions(+), 7 deletions(-) diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml index b2088195..1e48bea2 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application-dev.yml @@ -272,12 +272,12 @@ weather: # dxf转 geojson 执行文件名 dxf2GeoJson: file-name: main.exe -ys7: - app-key: 3acf9f1a43dc4209841e0893003db0a2 - app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36 #ys7: -# app-key: f01490bd5d5241b7809d8fc5fe84f7f8 -# app-secret: d468f270699de855fd85fe7fd6f9595f +# app-key: 3acf9f1a43dc4209841e0893003db0a2 +# app-secret: 4bbf3e9394f55d3af6e3af27b2d3db36 +ys7: + app-key: 081b0d6d5f7f4de8bc5c7fa350fb26ec + app-secret: caa37b9f60ef02deb57e563bc190e6db # 斯巴达算法 sparta: url: http://119.3.204.120:8040 diff --git a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml index bd3023d8..efecedc2 100644 --- a/xinnengyuan/ruoyi-admin/src/main/resources/application.yml +++ b/xinnengyuan/ruoyi-admin/src/main/resources/application.yml @@ -123,7 +123,7 @@ security: - /other/ys7Device/webhook # todo 仅测试 - /facility/matrix/** - - /changxie/callback + - /*/knowledgeDocument/changxie/callback/** # 多租户配置 tenant: diff --git a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/SpartaTest.java b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/SpartaTest.java index 54859839..134cf11d 100644 --- a/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/SpartaTest.java +++ b/xinnengyuan/ruoyi-admin/src/test/java/org/dromara/test/SpartaTest.java @@ -1,9 +1,11 @@ package org.dromara.test; +import cn.hutool.json.JSONUtil; import jakarta.annotation.Resource; import lombok.extern.slf4j.Slf4j; import org.dromara.manager.spartamanager.SpartaManager; import org.dromara.manager.spartamanager.enums.SpartaRecTypeEnum; +import org.dromara.manager.spartamanager.vo.ImageStreamResult; import org.dromara.manager.spartamanager.vo.SpartaRecognizeVo; import org.dromara.manager.spartamanager.vo.SpartaTargetVo; import org.dromara.other.domain.dto.ys7deviceimg.OthYs7DeviceImgCreateByCapture; @@ -15,7 +17,9 @@ import javax.imageio.ImageIO; import java.awt.*; import java.awt.image.BufferedImage; import java.io.File; +import java.io.FileOutputStream; import java.io.IOException; +import java.io.OutputStream; import java.net.URI; import java.net.URISyntaxException; import java.util.Date; @@ -110,4 +114,478 @@ public class SpartaTest { log.info("识别结果: {}", img); othYs7DeviceImgService.saveCapturePic(List.of(img)); } + + @Test + public void test4() throws IOException, URISyntaxException { + String url = "http://xny.yj-3d.com:7363/file/tif/20250625160218orthophoto.png"; + String targetStr = "[\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 344,\n" + + " 149\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3787,\n" + + " 3241\n" + + " ],\n" + + " \"score\": 0.9511\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 334,\n" + + " 147\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4276,\n" + + " 3590\n" + + " ],\n" + + " \"score\": 0.9498\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 330,\n" + + " 149\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3459,\n" + + " 3183\n" + + " ],\n" + + " \"score\": 0.9496\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 353,\n" + + " 148\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4226,\n" + + " 3714\n" + + " ],\n" + + " \"score\": 0.9495\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 339,\n" + + " 132\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4276,\n" + + " 2678\n" + + " ],\n" + + " \"score\": 0.9486\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 340,\n" + + " 145\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4565,\n" + + " 2982\n" + + " ],\n" + + " \"score\": 0.9486\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 335,\n" + + " 142\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3695,\n" + + " 3360\n" + + " ],\n" + + " \"score\": 0.9475\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 336,\n" + + " 145\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4446,\n" + + " 3357\n" + + " ],\n" + + " \"score\": 0.9473\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 338,\n" + + " 140\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4248,\n" + + " 2803\n" + + " ],\n" + + " \"score\": 0.9466\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 343,\n" + + " 155\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4565,\n" + + " 3769\n" + + " ],\n" + + " \"score\": 0.9464\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 346,\n" + + " 148\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4233,\n" + + " 2925\n" + + " ],\n" + + " \"score\": 0.9462\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 327,\n" + + " 159\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4000,\n" + + " 2484\n" + + " ],\n" + + " \"score\": 0.946\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 336,\n" + + " 145\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4906,\n" + + " 2908\n" + + " ],\n" + + " \"score\": 0.9457\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 339,\n" + + " 150\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3618,\n" + + " 3477\n" + + " ],\n" + + " \"score\": 0.9456\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 318,\n" + + " 147\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 5241,\n" + + " 3883\n" + + " ],\n" + + " \"score\": 0.9448\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 328,\n" + + " 147\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4934,\n" + + " 3702\n" + + " ],\n" + + " \"score\": 0.943\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 312,\n" + + " 142\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3633,\n" + + " 2557\n" + + " ],\n" + + " \"score\": 0.9428\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 340,\n" + + " 137\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4576,\n" + + " 2856\n" + + " ],\n" + + " \"score\": 0.9406\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 335,\n" + + " 138\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4316,\n" + + " 2548\n" + + " ],\n" + + " \"score\": 0.9398\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 345,\n" + + " 146\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4890,\n" + + " 3829\n" + + " ],\n" + + " \"score\": 0.9378\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 332,\n" + + " 153\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4126,\n" + + " 3304\n" + + " ],\n" + + " \"score\": 0.9371\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 325,\n" + + " 137\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3581,\n" + + " 2944\n" + + " ],\n" + + " \"score\": 0.9318\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 320,\n" + + " 145\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3879,\n" + + " 3123\n" + + " ],\n" + + " \"score\": 0.9304\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 343,\n" + + " 143\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4601,\n" + + " 3645\n" + + " ],\n" + + " \"score\": 0.9258\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 335,\n" + + " 142\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4673,\n" + + " 3528\n" + + " ],\n" + + " \"score\": 0.9255\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 312,\n" + + " 144\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4800,\n" + + " 3411\n" + + " ],\n" + + " \"score\": 0.923\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 337,\n" + + " 139\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4016,\n" + + " 3412\n" + + " ],\n" + + " \"score\": 0.9225\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 340,\n" + + " 141\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4605,\n" + + " 2729\n" + + " ],\n" + + " \"score\": 0.9191\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 298,\n" + + " 325\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3249,\n" + + " 2576\n" + + " ],\n" + + " \"score\": 0.9185\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 338,\n" + + " 156\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4537,\n" + + " 2451\n" + + " ],\n" + + " \"score\": 0.9118\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 334,\n" + + " 143\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4933,\n" + + " 2783\n" + + " ],\n" + + " \"score\": 0.9114\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 339,\n" + + " 141\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4464,\n" + + " 2308\n" + + " ],\n" + + " \"score\": 0.9107\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 343,\n" + + " 143\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3890,\n" + + " 3000\n" + + " ],\n" + + " \"score\": 0.9064\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 313,\n" + + " 139\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3593,\n" + + " 2810\n" + + " ],\n" + + " \"score\": 0.902\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 259,\n" + + " 131\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 4000,\n" + + " 2755\n" + + " ],\n" + + " \"score\": 0.8869\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 345,\n" + + " 149\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3901,\n" + + " 2864\n" + + " ],\n" + + " \"score\": 0.8841\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 345,\n" + + " 150\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 3945,\n" + + " 2610\n" + + " ],\n" + + " \"score\": 0.8632\n" + + " },\n" + + " {\n" + + " \"type\": \"pho\",\n" + + " \"size\": [\n" + + " 199,\n" + + " 110\n" + + " ],\n" + + " \"leftTopPoint\": [\n" + + " 5166,\n" + + " 3661\n" + + " ],\n" + + " \"score\": 0.8225\n" + + " }\n" + + " ]"; + List list = JSONUtil.toList(targetStr, SpartaTargetVo.class); + log.info("list:{}", list); + ImageStreamResult imageStreamResult = spartaManager.drawImageToStream(url, list); + log.info("imageStreamResult:{}", imageStreamResult); + try (OutputStream outputStream = new FileOutputStream("D:/images/save.png")) { + byte[] buffer = new byte[4096]; + int bytesRead; + while ((bytesRead = imageStreamResult.getInputStream().read(buffer)) != -1) { + outputStream.write(buffer, 0, bytesRead); + } + } + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/manager/spartamanager/SpartaManager.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/manager/spartamanager/SpartaManager.java index 1eace728..73e74680 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/manager/spartamanager/SpartaManager.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/manager/spartamanager/SpartaManager.java @@ -148,6 +148,9 @@ public class SpartaManager { private static String extractFilename(String url) { int start = url.lastIndexOf("/") + 1; int end = url.indexOf("?", start); + if (end == -1) { + return url.substring(start); + } if (start > 0 && end > start) { return url.substring(start, end); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/constant/QltKnowledgeDocumentConstant.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/constant/QltKnowledgeDocumentConstant.java index 39605bc5..eecfe91a 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/constant/QltKnowledgeDocumentConstant.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/constant/QltKnowledgeDocumentConstant.java @@ -11,7 +11,7 @@ public interface QltKnowledgeDocumentConstant { /** * 顶级目录前缀 */ - String TOP_FOLDER_PREFIX = "doc/safety/knowledge/"; + String TOP_FOLDER_PREFIX = "doc/quality/knowledge/"; /** * 顶级目录名称 diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltKnowledgeDocumentController.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltKnowledgeDocumentController.java index d026fcb1..2f8f1e38 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltKnowledgeDocumentController.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/controller/QltKnowledgeDocumentController.java @@ -3,6 +3,8 @@ package org.dromara.quality.controller; import cn.dev33.satoken.annotation.SaCheckPermission; import cn.hutool.core.lang.tree.Tree; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import jakarta.validation.constraints.NotNull; import org.dromara.common.core.domain.R; import org.dromara.common.idempotent.annotation.RepeatSubmit; @@ -145,4 +147,14 @@ public class QltKnowledgeDocumentController extends BaseController { @PathVariable Long[] ids) { return toAjax(qltKnowledgeDocumentService.recoveryBatchById(List.of(ids))); } + + /** + * 畅写在线修改保存回调 + */ + @SaCheckPermission("quality:knowledgeDocument:edit") + @PostMapping("/changxie/callback/{id}") + public void singleFileUploads(@NotNull(message = "主键不能为空") + @PathVariable Long id, HttpServletRequest request, HttpServletResponse response) { + qltKnowledgeDocumentService.singleFileUploads(id, request, response); + } } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltKnowledgeDocumentService.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltKnowledgeDocumentService.java index b1271020..38e36334 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltKnowledgeDocumentService.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/IQltKnowledgeDocumentService.java @@ -3,6 +3,8 @@ package org.dromara.quality.service; import cn.hutool.core.lang.tree.Tree; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; import org.dromara.quality.domain.QltKnowledgeDocument; @@ -138,4 +140,13 @@ public interface IQltKnowledgeDocumentService extends IService getVoPage(Page documentPage); + + /** + * 畅写在线文件修改 + * + * @param id 文档id + * @param request 请求 + * @param response 响应 + */ + void singleFileUploads(Long id, HttpServletRequest request, HttpServletResponse response); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltKnowledgeDocumentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltKnowledgeDocumentServiceImpl.java index 524f472f..79e5f3c1 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltKnowledgeDocumentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/quality/service/impl/QltKnowledgeDocumentServiceImpl.java @@ -5,10 +5,14 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.*; @@ -16,6 +20,8 @@ import org.dromara.common.enums.DocumentStatusEnum; import org.dromara.common.enums.DocumentTypeEnum; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.oss.core.OssClient; +import org.dromara.common.oss.factory.OssFactory; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.project.service.IBusProjectService; import org.dromara.quality.constant.QltKnowledgeDocumentConstant; @@ -34,6 +40,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.PrintWriter; import java.util.*; import java.util.stream.Collectors; @@ -321,6 +329,13 @@ public class QltKnowledgeDocumentServiceImpl extends ServiceImpl getVoPage(Page documentPage); + + /** + * 畅写在线文件修改 + * + * @param id 文档id + * @param request 请求 + * @param response 响应 + */ + void singleFileUploads(Long id, HttpServletRequest request, HttpServletResponse response); } diff --git a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseKnowledgeDocumentServiceImpl.java b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseKnowledgeDocumentServiceImpl.java index 80017db2..90be4c6e 100644 --- a/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseKnowledgeDocumentServiceImpl.java +++ b/xinnengyuan/ruoyi-modules/ruoyi-system/src/main/java/org/dromara/safety/service/impl/HseKnowledgeDocumentServiceImpl.java @@ -5,10 +5,15 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.lang.tree.Tree; import cn.hutool.core.util.IdUtil; import cn.hutool.core.util.ObjectUtil; +import cn.hutool.json.JSONObject; +import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import jakarta.annotation.Resource; +import jakarta.servlet.http.HttpServletRequest; +import jakarta.servlet.http.HttpServletResponse; +import lombok.extern.slf4j.Slf4j; import org.dromara.common.core.constant.HttpStatus; import org.dromara.common.core.exception.ServiceException; import org.dromara.common.core.utils.*; @@ -16,6 +21,8 @@ import org.dromara.common.enums.DocumentStatusEnum; import org.dromara.common.enums.DocumentTypeEnum; import org.dromara.common.mybatis.core.page.PageQuery; import org.dromara.common.mybatis.core.page.TableDataInfo; +import org.dromara.common.oss.core.OssClient; +import org.dromara.common.oss.factory.OssFactory; import org.dromara.common.satoken.utils.LoginHelper; import org.dromara.project.service.IBusProjectService; import org.dromara.safety.constant.HseKnowledgeDocumentConstant; @@ -34,6 +41,8 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; +import java.io.IOException; +import java.io.PrintWriter; import java.util.*; import java.util.stream.Collectors; @@ -43,6 +52,7 @@ import java.util.stream.Collectors; * @author lcj * @date 2025-06-25 */ +@Slf4j @Service public class HseKnowledgeDocumentServiceImpl extends ServiceImpl implements IHseKnowledgeDocumentService { @@ -320,6 +330,13 @@ public class HseKnowledgeDocumentServiceImpl extends ServiceImpl