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); + } // 如果文件上传成功,返回成功消息