From 9e1fdcdd6a08357eb4a62c5ee7bfe6ed58a8d74e Mon Sep 17 00:00:00 2001 From: Kane Wang Date: Tue, 18 Nov 2025 15:30:57 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=9D=E5=AD=98=E8=BF=9B=E5=BA=A6=EF=BC=81?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../cpic/xim/utils/files/SaveUploadFile.java | 4 +- .../controllers/fileupload/FileUpload.java | 31 ++++- .../fileupload/MoveFileRequest.java | 11 +- ...eFileResult.java => MoveFileResponse.java} | 6 +- ...ileResult.java => UploadFileResponse.java} | 6 +- .../package-lock.json | 112 +++++++++--------- .../regulatory-management-util/package.json | 4 +- 7 files changed, 98 insertions(+), 76 deletions(-) rename code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/{MoveFileResult.java => MoveFileResponse.java} (89%) rename code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/{UploadFileResult.java => UploadFileResponse.java} (91%) diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/utils/files/SaveUploadFile.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/utils/files/SaveUploadFile.java index 65d39a7..9bec45d 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/utils/files/SaveUploadFile.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/utils/files/SaveUploadFile.java @@ -2,7 +2,7 @@ * @Author: Kane Wang * @Date: 2025-10-16 09:46:42 * @LastEditors: Kane Wang - * @LastModified: 2025-11-14 11:17:39 + * @LastModified: 2025-11-18 15:11:46 * @FilePath: src/main/java/com/cpic/xim/utils/files/SaveUploadFile.java * @Description: * @@ -126,7 +126,7 @@ public class SaveUploadFile file.transferTo( destFile ); - uploadedFile = new UploadedFile(fileName, fullPath); + uploadedFile = new UploadedFile(fileName, destFile.getPath() ); savedFiles.add( uploadedFile ); } diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java index 26b3ce3..b17e21b 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/FileUpload.java @@ -14,6 +14,7 @@ import java.io.File; import java.util.Vector; import org.springframework.stereotype.Controller; +import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.ResponseBody; @@ -21,6 +22,7 @@ import org.springframework.web.multipart.MultipartFile; import com.cpic.xim.utils.files.SaveUploadFile; import com.cpic.xim.utils.files.UploadedFile; +import com.cpic.xim.utils.files.exceptions.MoveUploadedFileException; import com.cpic.xim.utils.files.exceptions.ProcessUploadedFileException; import jakarta.servlet.http.HttpServletRequest; @@ -44,7 +46,7 @@ public class FileUpload */ @RequestMapping( path = "/file-upload.do" ) @ResponseBody - public UploadFileResult saveUploadFile( + public UploadFileResponse saveUploadFile( @RequestParam( "file-name" ) String fileName, @RequestParam( "files" ) MultipartFile file, HttpServletRequest request @@ -52,7 +54,7 @@ public class FileUpload { // session id用来创建临时目录,避免重复 String sessionID = request.getSession().getId(); - UploadFileResult result = new UploadFileResult(); + UploadFileResponse result = new UploadFileResponse(); MultipartFile[] files = new MultipartFile[1]; result.setSuccess( true ); @@ -87,5 +89,28 @@ public class FileUpload return result; } - // public + @RequestMapping( path = "/move-file.do" ) + @ResponseBody + public MoveFileResponse moveFile( @RequestBody MoveFileRequest request ) + throws MoveUploadedFileException + { + MoveFileResponse response = new MoveFileResponse( false, null, null ); + + try + { + SaveUploadFile.MoveUploadedFile( request.getOriginFilePath(), request.getDestFilePath() ); + + response.setSuccess( true ); + response.setMessage( "移动文件路径完成!" ); + response.setNewFilePath( request.getDestFilePath() ); + } + catch ( MoveUploadedFileException error ) + { + response.setSuccess( false ); + response.setMessage( error.getMessage() ); + response.setNewFilePath( request.getDestFilePath() ); + } + + return response; + } } diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileRequest.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileRequest.java index 9e4126f..33583f1 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileRequest.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileRequest.java @@ -2,7 +2,7 @@ * @Author: Kane Wang * @Date: 2025-11-17 17:49:58 * @LastEditors: Kane Wang - * @LastModified: 2025-11-17 18:11:27 + * @LastModified: 2025-11-18 15:19:46 * @FilePath: src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileRequest.java * @Description: * @@ -14,17 +14,14 @@ import com.fasterxml.jackson.annotation.JsonProperty; public class MoveFileRequest { - @JsonProperty("origin-file-path") + @JsonProperty("originFilePath") private String originFilePath; - @JsonProperty("dest-file-path") + @JsonProperty("destFilePath") private String destFilePath; public MoveFileRequest() - { - originFilePath = ""; - destFilePath = ""; - } + {} public MoveFileRequest( String originFilePath, String destFilePath ) { diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResult.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResponse.java similarity index 89% rename from code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResult.java rename to code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResponse.java index 825cc1c..622538a 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResult.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/MoveFileResponse.java @@ -14,18 +14,18 @@ import com.cpic.xim.web.controllers.QueryResponse; import com.fasterxml.jackson.annotation.JsonProperty; -public class MoveFileResult extends QueryResponse +public class MoveFileResponse extends QueryResponse { @JsonProperty("new-file-path") private String newFilePath; - public MoveFileResult() + public MoveFileResponse() { super(); } - public MoveFileResult( + public MoveFileResponse( boolean success, String message, String newFilePath diff --git a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResult.java b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResponse.java similarity index 91% rename from code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResult.java rename to code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResponse.java index 0754830..73d0c6c 100644 --- a/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResult.java +++ b/code/backend/RegulatoryManagementBackend/src/main/java/com/cpic/xim/web/controllers/fileupload/UploadFileResponse.java @@ -23,9 +23,9 @@ import com.cpic.xim.web.controllers.QueryResponse; import com.fasterxml.jackson.annotation.JsonProperty; @SuppressWarnings( "unused" ) -public class UploadFileResult extends QueryResponse +public class UploadFileResponse extends QueryResponse { - public UploadFileResult() + public UploadFileResponse() { super(); } @@ -37,7 +37,7 @@ public class UploadFileResult extends QueryResponse * @param message 消息字符串 * @param fileList 文件绝对路径字符串数组 */ - public UploadFileResult( + public UploadFileResponse( boolean success, String message, Vector fileList diff --git a/code/web/regulatory-management-util/package-lock.json b/code/web/regulatory-management-util/package-lock.json index ec937c0..471a2b4 100644 --- a/code/web/regulatory-management-util/package-lock.json +++ b/code/web/regulatory-management-util/package-lock.json @@ -16,8 +16,8 @@ "@element-plus/icons-vue": "^2.3.2", "@stylistic/eslint-plugin": "^5.5.0", "@types/node": "^24.10.1", - "@typescript-eslint/eslint-plugin": "^8.46.4", - "@typescript-eslint/parser": "^8.46.4", + "@typescript-eslint/eslint-plugin": "^8.47.0", + "@typescript-eslint/parser": "^8.47.0", "@vitejs/plugin-vue": "^6.0.1", "@vue-office/docx": "^1.6.3", "@vue-office/excel": "^1.7.14", @@ -1762,17 +1762,17 @@ "license": "MIT" }, "node_modules/@typescript-eslint/eslint-plugin": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.46.4.tgz", - "integrity": "sha512-R48VhmTJqplNyDxCyqqVkFSZIx1qX6PzwqgcXn1olLrzxcSBDlOsbtcnQuQhNtnNiJ4Xe5gREI1foajYaYU2Vg==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/eslint-plugin/-/eslint-plugin-8.47.0.tgz", + "integrity": "sha512-fe0rz9WJQ5t2iaLfdbDc9T80GJy0AeO453q8C3YCilnGozvOyCG5t+EZtg7j7D88+c3FipfP/x+wzGnh1xp8ZA==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/regexpp": "^4.10.0", - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/type-utils": "8.46.4", - "@typescript-eslint/utils": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/type-utils": "8.47.0", + "@typescript-eslint/utils": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "graphemer": "^1.4.0", "ignore": "^7.0.0", "natural-compare": "^1.4.0", @@ -1786,23 +1786,23 @@ "url": "https://opencollective.com/typescript-eslint" }, "peerDependencies": { - "@typescript-eslint/parser": "^8.46.4", + "@typescript-eslint/parser": "^8.47.0", "eslint": "^8.57.0 || ^9.0.0", "typescript": ">=4.8.4 <6.0.0" } }, "node_modules/@typescript-eslint/parser": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.46.4.tgz", - "integrity": "sha512-tK3GPFWbirvNgsNKto+UmB/cRtn6TZfyw0D6IKrW55n6Vbs7KJoZtI//kpTKzE/DUmmnAFD8/Ca46s7Obs92/w==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/parser/-/parser-8.47.0.tgz", + "integrity": "sha512-lJi3PfxVmo0AkEY93ecfN+r8SofEqZNGByvHAI3GBLrvt1Cw6H5k1IM02nSzu0RfUafr2EvFSw0wAsZgubNplQ==", "dev": true, "license": "MIT", "peer": true, "dependencies": { - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4" }, "engines": { @@ -1818,14 +1818,14 @@ } }, "node_modules/@typescript-eslint/project-service": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/project-service/-/project-service-8.46.4.tgz", - "integrity": "sha512-nPiRSKuvtTN+no/2N1kt2tUh/HoFzeEgOm9fQ6XQk4/ApGqjx0zFIIaLJ6wooR1HIoozvj2j6vTi/1fgAz7UYQ==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/project-service/-/project-service-8.47.0.tgz", + "integrity": "sha512-2X4BX8hUeB5JcA1TQJ7GjcgulXQ+5UkNb0DL8gHsHUHdFoiCTJoYLTpib3LtSDPZsRET5ygN4qqIWrHyYIKERA==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/tsconfig-utils": "^8.46.4", - "@typescript-eslint/types": "^8.46.4", + "@typescript-eslint/tsconfig-utils": "^8.47.0", + "@typescript-eslint/types": "^8.47.0", "debug": "^4.3.4" }, "engines": { @@ -1840,14 +1840,14 @@ } }, "node_modules/@typescript-eslint/scope-manager": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.46.4.tgz", - "integrity": "sha512-tMDbLGXb1wC+McN1M6QeDx7P7c0UWO5z9CXqp7J8E+xGcJuUuevWKxuG8j41FoweS3+L41SkyKKkia16jpX7CA==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/scope-manager/-/scope-manager-8.47.0.tgz", + "integrity": "sha512-a0TTJk4HXMkfpFkL9/WaGTNuv7JWfFTQFJd6zS9dVAjKsojmv9HT55xzbEpnZoY+VUb+YXLMp+ihMLz/UlZfDg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4" + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1858,9 +1858,9 @@ } }, "node_modules/@typescript-eslint/tsconfig-utils": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.46.4.tgz", - "integrity": "sha512-+/XqaZPIAk6Cjg7NWgSGe27X4zMGqrFqZ8atJsX3CWxH/jACqWnrWI68h7nHQld0y+k9eTTjb9r+KU4twLoo9A==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/tsconfig-utils/-/tsconfig-utils-8.47.0.tgz", + "integrity": "sha512-ybUAvjy4ZCL11uryalkKxuT3w3sXJAuWhOoGS3T/Wu+iUu1tGJmk5ytSY8gbdACNARmcYEB0COksD2j6hfGK2g==", "dev": true, "license": "MIT", "engines": { @@ -1875,15 +1875,15 @@ } }, "node_modules/@typescript-eslint/type-utils": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.46.4.tgz", - "integrity": "sha512-V4QC8h3fdT5Wro6vANk6eojqfbv5bpwHuMsBcJUJkqs2z5XnYhJzyz9Y02eUmF9u3PgXEUiOt4w4KHR3P+z0PQ==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/type-utils/-/type-utils-8.47.0.tgz", + "integrity": "sha512-QC9RiCmZ2HmIdCEvhd1aJELBlD93ErziOXXlHEZyuBo3tBiAZieya0HLIxp+DoDWlsQqDawyKuNEhORyku+P8A==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4", - "@typescript-eslint/utils": "8.46.4", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0", + "@typescript-eslint/utils": "8.47.0", "debug": "^4.3.4", "ts-api-utils": "^2.1.0" }, @@ -1900,9 +1900,9 @@ } }, "node_modules/@typescript-eslint/types": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.46.4.tgz", - "integrity": "sha512-USjyxm3gQEePdUwJBFjjGNG18xY9A2grDVGuk7/9AkjIF1L+ZrVnwR5VAU5JXtUnBL/Nwt3H31KlRDaksnM7/w==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/types/-/types-8.47.0.tgz", + "integrity": "sha512-nHAE6bMKsizhA2uuYZbEbmp5z2UpffNrPEqiKIeN7VsV6UY/roxanWfoRrf6x/k9+Obf+GQdkm0nPU+vnMXo9A==", "dev": true, "license": "MIT", "engines": { @@ -1914,16 +1914,16 @@ } }, "node_modules/@typescript-eslint/typescript-estree": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.46.4.tgz", - "integrity": "sha512-7oV2qEOr1d4NWNmpXLR35LvCfOkTNymY9oyW+lUHkmCno7aOmIf/hMaydnJBUTBMRCOGZh8YjkFOc8dadEoNGA==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/typescript-estree/-/typescript-estree-8.47.0.tgz", + "integrity": "sha512-k6ti9UepJf5NpzCjH31hQNLHQWupTRPhZ+KFF8WtTuTpy7uHPfeg2NM7cP27aCGajoEplxJDFVCEm9TGPYyiVg==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/project-service": "8.46.4", - "@typescript-eslint/tsconfig-utils": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/visitor-keys": "8.46.4", + "@typescript-eslint/project-service": "8.47.0", + "@typescript-eslint/tsconfig-utils": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/visitor-keys": "8.47.0", "debug": "^4.3.4", "fast-glob": "^3.3.2", "is-glob": "^4.0.3", @@ -1943,16 +1943,16 @@ } }, "node_modules/@typescript-eslint/utils": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.46.4.tgz", - "integrity": "sha512-AbSv11fklGXV6T28dp2Me04Uw90R2iJ30g2bgLz529Koehrmkbs1r7paFqr1vPCZi7hHwYxYtxfyQMRC8QaVSg==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/utils/-/utils-8.47.0.tgz", + "integrity": "sha512-g7XrNf25iL4TJOiPqatNuaChyqt49a/onq5YsJ9+hXeugK+41LVg7AxikMfM02PC6jbNtZLCJj6AUcQXJS/jGQ==", "dev": true, "license": "MIT", "dependencies": { "@eslint-community/eslint-utils": "^4.7.0", - "@typescript-eslint/scope-manager": "8.46.4", - "@typescript-eslint/types": "8.46.4", - "@typescript-eslint/typescript-estree": "8.46.4" + "@typescript-eslint/scope-manager": "8.47.0", + "@typescript-eslint/types": "8.47.0", + "@typescript-eslint/typescript-estree": "8.47.0" }, "engines": { "node": "^18.18.0 || ^20.9.0 || >=21.1.0" @@ -1967,13 +1967,13 @@ } }, "node_modules/@typescript-eslint/visitor-keys": { - "version": "8.46.4", - "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.46.4.tgz", - "integrity": "sha512-/++5CYLQqsO9HFGLI7APrxBJYo+5OCMpViuhV8q5/Qa3o5mMrF//eQHks+PXcsAVaLdn817fMuS7zqoXNNZGaw==", + "version": "8.47.0", + "resolved": "https://registry.npmmirror.com/@typescript-eslint/visitor-keys/-/visitor-keys-8.47.0.tgz", + "integrity": "sha512-SIV3/6eftCy1bNzCQoPmbWsRLujS8t5iDIZ4spZOBHqrM+yfX2ogg8Tt3PDTAVKw3sSCiUgg30uOAvK2r9zGjQ==", "dev": true, "license": "MIT", "dependencies": { - "@typescript-eslint/types": "8.46.4", + "@typescript-eslint/types": "8.47.0", "eslint-visitor-keys": "^4.2.1" }, "engines": { diff --git a/code/web/regulatory-management-util/package.json b/code/web/regulatory-management-util/package.json index a64a468..9a61790 100644 --- a/code/web/regulatory-management-util/package.json +++ b/code/web/regulatory-management-util/package.json @@ -17,8 +17,8 @@ "@element-plus/icons-vue": "^2.3.2", "@stylistic/eslint-plugin": "^5.5.0", "@types/node": "^24.10.1", - "@typescript-eslint/eslint-plugin": "^8.46.4", - "@typescript-eslint/parser": "^8.46.4", + "@typescript-eslint/eslint-plugin": "^8.47.0", + "@typescript-eslint/parser": "^8.47.0", "@vitejs/plugin-vue": "^6.0.1", "@vue-office/docx": "^1.6.3", "@vue-office/excel": "^1.7.14",