From 55ad1665b90bc2d6ae01ab9ac0f60726a0066d41 Mon Sep 17 00:00:00 2001 From: sxlong Date: Wed, 20 Nov 2024 17:40:21 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E4=B8=8A?= =?UTF-8?q?=E4=BC=A0=E6=97=B6=E5=B0=86=E6=96=87=E4=BB=B6=E9=87=8D=E5=91=BD?= =?UTF-8?q?=E5=90=8D=E5=B9=B6=E5=AD=98=E5=88=B0=E7=BC=93=E5=AD=98=E7=9B=AE?= =?UTF-8?q?=E5=BD=95=E5=86=8D=E7=A7=BB=E5=8A=A8=E7=9A=84=E9=80=BB=E8=BE=91?= =?UTF-8?q?=EF=BC=9B2.=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E4=B8=AD=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0=E6=97=B6?= =?UTF-8?q?=E9=97=B4=E5=92=8C=E4=BF=9D=E5=AD=98=E7=8A=B6=E6=80=81=E5=AD=97?= =?UTF-8?q?=E6=AE=B5=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/EDDataController.java | 5 +- .../indicator/model/EDDataInfo.java | 6 +- .../indicator/parames/EDDataParams.java | 7 +- .../request/indicator/EDDataRequest.java | 10 +++ .../manage/repository/dao/EDDataMapper.java | 15 ----- .../resources/sqlmapper/EdDataInfoMapper.xml | 13 +++- .../service/facade/EDDataFacadeImpl.java | 66 +++++++++++++++---- 7 files changed, 88 insertions(+), 34 deletions(-) diff --git a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/EDDataController.java b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/EDDataController.java index 295e721..62d0d03 100644 --- a/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/EDDataController.java +++ b/bootstrap/src/main/java/com/electromagnetic/industry/software/data/manage/controller/EDDataController.java @@ -10,6 +10,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; +import java.util.Date; @RequestMapping("/data/ed/file") @RestController @@ -49,10 +50,12 @@ public class EDDataController { @ApiOperation(value = "上传",notes = "") @RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST) public ElectromagneticResult upload(@RequestParam("parentId") String parentId, - @RequestParam("file") MultipartFile file){ + @RequestParam("file") MultipartFile file, + @RequestParam("gmtBatchUpload") Long gmtBatchUpload){ EDDataRequest request = new EDDataRequest(); request.setParentId(parentId); request.setFileData(file); + request.setGmtBatchUpload(new Date(gmtBatchUpload)); return edDataFacade.upload(request); } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/EDDataInfo.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/EDDataInfo.java index 463774f..01945a7 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/EDDataInfo.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/model/EDDataInfo.java @@ -64,7 +64,11 @@ public class EDDataInfo { /** * 批量上传时间 */ - private String gmtBatchUpload; + private Date gmtBatchUpload; + /** + * 保存状态 + */ + private String saveStatus; /** * 创建人 */ diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/EDDataParams.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/EDDataParams.java index 076a3da..23cf20f 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/EDDataParams.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/parames/EDDataParams.java @@ -4,6 +4,7 @@ import lombok.Data; import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; +import java.util.Date; @Data public class EDDataParams implements Serializable { @@ -51,7 +52,11 @@ public class EDDataParams implements Serializable { /** * 批量上传时间 */ - private String gmtBatchUpload; + private Date gmtBatchUpload; + /** + * 保存状态 + */ + private String saveStatus; /** * 文件数据编码数组 */ diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/EDDataRequest.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/EDDataRequest.java index 5a6ef86..8849351 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/EDDataRequest.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/request/indicator/EDDataRequest.java @@ -4,6 +4,8 @@ import org.springframework.web.multipart.MultipartFile; import electromagnetic.data.framework.share.model.BaseRequest; import lombok.Data; +import java.util.Date; + @Data public class EDDataRequest extends BaseRequest { @@ -47,6 +49,14 @@ public class EDDataRequest extends BaseRequest { * 关键词 */ private String keyWord; + /** + * 批量上传时间 + */ + private Date gmtBatchUpload; + /** + * 保存状态 + */ + private String saveStatus; /** * 文件数据编码数组 */ diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/EDDataMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/EDDataMapper.java index 736e2ed..2aa6d7d 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/EDDataMapper.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/EDDataMapper.java @@ -32,19 +32,4 @@ public interface EDDataMapper { */ Boolean updateFileInfo(EDDataParams parames); - /** - * 获取子文件数量 - * @param parames - * @return - */ - Integer getChildFileCount(EDDataParams parames); - - /** - * 获取目录路径 - * @param categoryId - * @return - */ - String getDirectoryPath(String categoryId); - - } \ No newline at end of file diff --git a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml index c91c18b..39c1094 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -17,6 +17,7 @@ + @@ -27,7 +28,7 @@ id,category_id,data_id,data_no,data_name,data_type,file_type,version,content, - implant_json,data_status,note,creator,creator_name,gmt_create,modifier,modifier_name, + implant_json,data_status,note,editor,gmt_batch_upload,save_status,creator,creator_name,gmt_create,modifier,modifier_name, gmt_modified,effect_flag @@ -40,7 +41,7 @@ data_id, data_no, data_name, data_type, file_type, version, content, implant_json, data_status, - note, editor, gmt_batch_upload, + note, editor, gmt_batch_upload, save_status, creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, effect_flag @@ -49,7 +50,7 @@ #{dataId,jdbcType=VARCHAR}, #{dataNo,jdbcType=VARCHAR}, #{dataName,jdbcType=VARCHAR}, #{dataType,jdbcType=VARCHAR}, #{fileType,jdbcType=VARCHAR},#{version,jdbcType=VARCHAR}, #{content,jdbcType=VARCHAR}, #{implantJson,jdbcType=VARCHAR}, #{dataStatus,jdbcType=VARCHAR}, - #{note,jdbcType=VARCHAR}, #{editor,jdbcType=VARCHAR}, #{gmtBatchUpload,jdbcType=TIMESTAMP}, + #{note,jdbcType=VARCHAR}, #{editor,jdbcType=VARCHAR}, #{gmtBatchUpload,jdbcType=TIMESTAMP}, #{saveStatus,jdbcType=VARCHAR}, #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, #{modifierName,jdbcType=VARCHAR},now(),1 ) @@ -72,6 +73,9 @@ and data_name LIKE '%${keyWord}%' + + and save_status='${saveStatus}' + GROUP BY id order by gmt_create ${gmtCreate} @@ -90,6 +94,9 @@ note = #{note,jdbcType=VARCHAR}, + + save_status = #{saveStatus,jdbcType=VARCHAR}, + effect_flag = #{effectFlag,jdbcType=VARCHAR}, diff --git a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java index 6818106..5aca09a 100644 --- a/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java +++ b/service/src/main/java/com/electromagnetic/industry/software/data/manage/service/facade/EDDataFacadeImpl.java @@ -19,7 +19,9 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.nio.file.Files; import java.nio.file.Path; +import java.nio.file.Paths; import java.util.*; @Service @@ -120,6 +122,7 @@ public class EDDataFacadeImpl implements EDDataFacade { */ public ElectromagneticResult getDataInfoList(EDDataRequest request) { + EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); //获取中支指标配置列表 EDDataPage edDataPage = edDataService.getDataInfoList(parames); @@ -174,15 +177,15 @@ public class EDDataFacadeImpl implements EDDataFacade { String categoryId = request.getParentId(); // 获取要上传的文件 - MultipartFile file = request.getFileData(); + MultipartFile fileInput = request.getFileData(); // 检查文件是否为空 - if (file == null || file.isEmpty()) { + if (fileInput == null || fileInput.isEmpty()) { return ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上传的文件为空"); } // 获取文件名 - String fileFullName = file.getOriginalFilename(); + String fileFullName = fileInput.getOriginalFilename(); // 获取文件类型 String fileType = ""; // 获取文件名称 @@ -198,8 +201,9 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataService.createMultiLevelDirectory(storageDirectory); } - String parentFolderPath = ""; - String parentFolderIdPath = ""; + String parentFolderPath = ""; //上级文件夹路径 + String parentFolderIdPath = ""; //上级文件夹ID路径 + String parentFolderName = ""; //上级文件夹名称 // 获取上级文件夹路径 { @@ -218,16 +222,13 @@ public class EDDataFacadeImpl implements EDDataFacade { parentFolderIdPath += "/" ; parentFolderPath += edDataInfoParent.getDataName(); parentFolderIdPath += edDataInfoParent.getDataId(); + parentFolderName = edDataInfoParent.getDataName(); } // 文件保存目录路径 - String fileSavePath = storageDirectory + "/" + parentFolderPath + "/" + fileFullName; - - // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 - File saveFile = new File(fileSavePath); - - // 将文件保存到硬盘 - file.transferTo(saveFile); + String fileSavePath = storageDirectory + "/" + parentFolderPath; + String treeName = "目录树名称"; + String newFileName = treeName + "," + parentFolderName + "," + fileFullName; // 文件数据信息写到数据库 { @@ -246,14 +247,17 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setModifier(request.getUserId()); edDataInfo.setModifierName(request.getUserName()); edDataInfo.setCategoryId(request.getParentId()); - edDataInfo.setDataName(fileFullName); + edDataInfo.setDataName(newFileName); edDataInfo.setNote(request.getNote()); + edDataInfo.setFileType(fileType); + edDataInfo.setGmtBatchUpload(request.getGmtBatchUpload()); edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); edDataInfo.setDataType("file"); edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); + edDataInfo.setSaveStatus("saving"); JSONObject newImplantJsonObject = new JSONObject(); newImplantJsonObject.put("folderPath", parentFolderPath); @@ -262,6 +266,42 @@ public class EDDataFacadeImpl implements EDDataFacade { boolean isSuccess = edDataService.createDataInfo(edDataInfo); + String userHome = System.getProperty("user.home"); + File cacheDirectory = new File(userHome + "\\AppData\\Local\\Temp\\EDData"); + if (!cacheDirectory.exists()) { + cacheDirectory.mkdirs(); + } + + String cacheFolder = cacheDirectory.getAbsolutePath(); + + String cachePath = cacheFolder + "/" + newFileName; + System.out.println("文件缓存路径为: " + cacheDirectory.getAbsolutePath()); + fileSavePath += "/" + newFileName; + + + // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 + File saveFile = new File(cachePath);//fileSavePath + + // 将文件保存到硬盘 + fileInput.transferTo(saveFile); + + EDDataParams fileParames = new EDDataParams(); + fileParames.setDataId(edDataInfo.getDataId()); + if(fileInput.getSize() == saveFile.length()) + { + Path source = Paths.get(cachePath); + Path target = Paths.get(fileSavePath); + Files.move(source, target); + fileParames.setSaveStatus("success"); + } + else + { + saveFile.delete(); + fileParames.setSaveStatus("failure"); + } + + isSuccess = edDataService.updateFileInfo(fileParames); + } // 如果文件上传成功,返回成功消息