From 8619126d168ce651d67bc79a0e8491173d5e1824 Mon Sep 17 00:00:00 2001 From: sxlong Date: Thu, 21 Nov 2024 18:12:43 +0800 Subject: [PATCH] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=95=B0=E6=8D=AE=E5=BA=93?= =?UTF-8?q?=E5=AF=BC=E5=87=BA=E6=8E=A5=E5=8F=A3=E9=83=A8=E5=88=86=E4=BB=A3?= =?UTF-8?q?=E7=A0=81=E9=80=BB=E8=BE=91=E3=80=82(=E4=B8=8D=E8=83=BD?= =?UTF-8?q?=E8=BF=90=E8=A1=8C)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .gitignore | 4 +- .../user/repository/CategoryRepository.java | 15 ++++ .../user/service/CategoryService.java | 28 +++++++ .../service/impl/CategoryServiceImpl.java | 51 +++++++++++++ .../manage/repository/dao/CategoryMapper.java | 12 +++ .../impl/CategoryRepositoryImpl.java | 20 ++++- .../resources/sqlmapper/CategoryMapper.xml | 13 ++++ .../service/facade/EDDataFacadeImpl.java | 76 ++++++++++++++++++- 8 files changed, 211 insertions(+), 8 deletions(-) diff --git a/.gitignore b/.gitignore index 2d351a5..802a470 100644 --- a/.gitignore +++ b/.gitignore @@ -23,4 +23,6 @@ hs_err_pid* .vs -.idea \ No newline at end of file +.idea +*.iml +**/target/ diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/CategoryRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/CategoryRepository.java index 42d01a0..176fb1c 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/CategoryRepository.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/repository/CategoryRepository.java @@ -15,4 +15,19 @@ public interface CategoryRepository { * 获取所有节点 */ List getAllCategories(); + + /** + * 获取节点通过编码ID + * @param category + * @return + */ + List selectCategories(Category category); + + /** + * 获取子节点通过父ID + * @param category + * @return + */ + List selectChildCategories(Category category); + } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/CategoryService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/CategoryService.java index 1a62adb..792916a 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/CategoryService.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/CategoryService.java @@ -11,4 +11,32 @@ public interface CategoryService { */ public List buildCategoryTree(); + /** + * 获取所有节点 + * @return + */ + List selectAllCategories(); + + /** + * 获取节点通过编码ID + * @param category + * @return + */ + List selectCategories(Category category); + + /** + * 获取子节点通过父ID + * @param category + * @return + */ + List selectChildCategories(Category category); + + /** + * 获取 指定节点的 父节点 从所有节点数组中 + * @param categoryId + * @param categoryList + * @return + */ + Category getParentCategories(String categoryId, List categoryList); + } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/CategoryServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/CategoryServiceImpl.java index ab1cc51..ef441ea 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/CategoryServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/user/service/impl/CategoryServiceImpl.java @@ -80,4 +80,55 @@ public class CategoryServiceImpl implements CategoryService { private boolean hasChild(List list, Category category) { return !getChildList(list, category).isEmpty(); } + + /** + * 获取所有节点 + * @return + */ + public List selectAllCategories() { return categoryRepository.getAllCategories(); } + + /** + * 获取节点通过编码ID + * @param category + * @return + */ + public List selectCategories(Category category) { return categoryRepository.selectCategories(category); } + + /** + * 获取子节点通过父ID + * @param category + * @return + */ + public List selectChildCategories(Category category) { return categoryRepository.selectChildCategories(category); } + + /** + * 获取 指定节点的 父节点 从所有节点数组中 + * @param categoryId + * @param categoryList + * @return + */ + public Category getParentCategories(String categoryId, List categoryList) + { + Category category = null; + Category categoryParent = null; + for(Category iter : categoryList) + { + if(category == null && iter.getCategoryId().equals(categoryId)) + { + category = iter; + break; + } + } + for(Category iter : categoryList) + { + if(categoryParent == null && iter.getCategoryId().equals(category.getParentId())) + { + categoryParent = iter; + break; + } + } + + return categoryParent; + } + } diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/CategoryMapper.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/CategoryMapper.java index 762c437..9f51c2c 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/CategoryMapper.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/dao/CategoryMapper.java @@ -19,4 +19,16 @@ public interface CategoryMapper { * @return */ List selectAllCategories(); + + /** + * 获取节点通过编码ID + * @return + */ + List selectCategories(Category category); + + /** + * 获取子节点通过父ID + * @return + */ + List selectChildCategories(Category category); } diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/CategoryRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/CategoryRepositoryImpl.java index ae4471f..2af6889 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/CategoryRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/CategoryRepositoryImpl.java @@ -26,8 +26,22 @@ public class CategoryRepositoryImpl implements CategoryRepository { * 获取所有节点 */ @Override - public List getAllCategories(){ - return categoryMapper.selectAllCategories(); - } + public List getAllCategories() { return categoryMapper.selectAllCategories(); } + + /** + * 获取节点通过编码ID + * @param category + * @return + */ + @Override + public List selectCategories(Category category) { return categoryMapper.selectCategories(category); } + + /** + * 获取子节点通过父ID + * @param category + * @return + */ + @Override + public List selectChildCategories(Category category) { return categoryMapper.selectChildCategories(category); } } diff --git a/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml index 86f06c8..37a864d 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/CategoryMapper.xml @@ -32,4 +32,17 @@ where category_status="available" + + + + + \ No newline at end of file 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 80e7a06..6951d73 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 @@ -2,10 +2,12 @@ package com.electromagnetic.industry.software.data.manage.service.facade; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.category.model.Category; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataInfo; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataPage; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.EDDataService; +import com.electromagnetic.industry.software.data.manage.domain.boardservice.user.service.CategoryService; import com.electromagnetic.industry.software.data.manage.facade.EDDataFacade; import com.electromagnetic.industry.software.data.manage.request.indicator.EDDataRequest; import com.electromagnetic.industry.software.data.manage.response.indicator.EDDataPageResponse; @@ -29,6 +31,7 @@ public class EDDataFacadeImpl implements EDDataFacade { @Resource private EDDataService edDataService; + private CategoryService categoryService; /** * 创建文件夹 @@ -59,7 +62,7 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setNote(request.getNote()); edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); - edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); + edDataInfo.setDataNo(edDataInfo.getDataId()); edDataInfo.setDataType("folder"); edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); @@ -228,7 +231,8 @@ public class EDDataFacadeImpl implements EDDataFacade { // 文件保存目录路径 String fileSavePath = storageDirectory + "/" + parentFolderPath; String treeName = "目录树名称"; - String newFileName = treeName + "," + parentFolderName + "," + fileFullName; + //String newFileName = treeName + "," + parentFolderName + "," + fileFullName; + String newFileName = fileFullName; // 文件数据信息写到数据库 { @@ -253,7 +257,7 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setGmtBatchUpload(request.getGmtBatchUpload()); edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); - edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); + edDataInfo.setDataNo(edDataInfo.getDataId()); edDataInfo.setDataType("file"); edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); @@ -267,7 +271,7 @@ 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"); + File cacheDirectory = new File(userHome + "\\AppData\\Local\\Temp\\EDData\\Upload"); if (!cacheDirectory.exists()) { cacheDirectory.mkdirs(); } @@ -358,6 +362,70 @@ public class EDDataFacadeImpl implements EDDataFacade { //2、循环list将每个文件复制到新建目录并进行重命名,命名规则:目录树编码+,+文件夹编码(有则填写无则为空)+,+文件编码 //3、打包新建为zip,并根据生产下载地址(域名+文件路径+文件) //4、返回前端下载的地址 + + // **********在导出的过程中可能会出现有用户上传文件的情况 + + // 获取目录编码ID + String categoryId = request.getParentId(); + + // 获取缓存文件夹的绝对路径 + String userHome = System.getProperty("user.home"); + File cacheDirectory = new File(userHome + "\\AppData\\Local\\Temp\\EDData\\Export"); + if (!cacheDirectory.exists()) { + cacheDirectory.mkdirs(); + } + + String cacheFolder = cacheDirectory.getAbsolutePath(); // 缓存文件夹的绝对路径 + + + List categoryList = categoryService.selectAllCategories(); + + { + // 遍历客户端上传的 + EDDataParams folderParames = new EDDataParams(); + for (String dataId : request.getDataIdArr()) { + Category category = new Category(); + category.setCategoryId(dataId); + categoryService.selectCategories(category); + + //folderParames.setDataId(dataId); + //EDDataInfo edDataInfo = edDataService.getDataInfo(folderParames); + //if(edDataInfo != null) + //{ + // JSONObject implantJsonObject = JSON.parseObject(edDataInfo.getImplantJson()); + // String filePath = implantJsonObject.getString("folderPath"); + // filePath = storageDirectory + "/" + filePath + "/" + edDataInfo.getDataName(); + // dataPathArr.add(filePath); + //} + } + } + + + String parentFolderPath = ""; //上级文件夹路径 + String parentFolderIdPath = ""; //上级文件夹ID路径 + String parentFolderName = ""; //上级文件夹名称 + + // 获取上级文件夹路径 + { + EDDataParams folderParames = new EDDataParams(); + folderParames.setDataId(categoryId); + EDDataInfo edDataInfoParent = edDataService.getDataInfo(folderParames); + if(edDataInfoParent == null) { + ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上级文件夹为空!"); + } + JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson()); + parentFolderPath = implantJsonObject.getString("folderPath"); + parentFolderIdPath = implantJsonObject.getString("folderIdPath"); + if(!parentFolderPath.isEmpty()) + parentFolderPath += "/" ; + if(!parentFolderIdPath.isEmpty()) + parentFolderIdPath += "/" ; + parentFolderPath += edDataInfoParent.getDataName(); + parentFolderIdPath += edDataInfoParent.getDataId(); + parentFolderName = edDataInfoParent.getDataName(); + } + + return null; }