From 13ec292878c0921659c1007c3f6089b5d637ad27 Mon Sep 17 00:00:00 2001 From: sxlong Date: Mon, 18 Nov 2024 11:15:54 +0800 Subject: [PATCH 1/7] =?UTF-8?q?1.=E4=BF=AE=E6=94=B9=E4=B8=80=E4=BA=9B?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E9=80=BB=E8=BE=91=EF=BC=9B2.=E5=A2=9E?= =?UTF-8?q?=E5=8A=A0=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E6=95=B0=E6=8D=AE?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/EDDataController.java | 10 +-- .../indicator/model/EDDataInfo.java | 8 +++ .../indicator/parames/EDDataParams.java | 31 ++++++--- .../repository/EDDataRepository.java | 4 +- .../indicator/service/EDDataService.java | 4 +- .../service/impl/EDDataServiceImpl.java | 6 +- facade/pom.xml | 4 ++ .../data/manage/facade/EDDataFacade.java | 4 +- .../request/indicator/EDDataRequest.java | 31 ++++++--- .../manage/repository/dao/EDDataMapper.java | 4 +- .../repository/impl/EDDataRepositoryImpl.java | 6 +- .../resources/sqlmapper/EdDataInfoMapper.xml | 26 +++++-- .../service/facade/EDDataFacadeImpl.java | 67 +++++++++++++++---- 13 files changed, 149 insertions(+), 56 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 a094597..82c82d1 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 @@ -33,15 +33,15 @@ public class EDDataController { } - @ApiOperation(value = "更新文件占用状态",notes = "") - @RequestMapping(value = "/updateFileStatus",method = RequestMethod.POST) - public ElectromagneticResult updateFileStatus(@RequestBody EDDataRequest request){ - return edDataFacade.updateFileStatus(request); + @ApiOperation(value = "更新文件信息",notes = "") + @RequestMapping(value = "/updateFileInfo",method = RequestMethod.POST) + public ElectromagneticResult updateFileInfo(@RequestBody EDDataRequest request){ + return edDataFacade.updateFileInfo(request); } @ApiOperation(value = "上传",notes = "") - @RequestMapping(value = "/upload",method = RequestMethod.POST) + @RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST) public ElectromagneticResult upload(@RequestBody EDDataRequest request){ 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 8586d69..a061a5c 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 @@ -53,6 +53,14 @@ public class EDDataInfo { * 状态:publish:发布,occupy:占用 */ private String dataStatus; + /** + * 备注 + */ + private String note; + /** + * 编辑人 + */ + private String editor; /** * 创建人 */ 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 beddb88..2ee6ff2 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 @@ -1,6 +1,7 @@ package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames; import lombok.Data; +import org.springframework.web.multipart.MultipartFile; import java.io.Serializable; @@ -18,21 +19,33 @@ public class EDDataParams implements Serializable { /** * 上级文件夹数据码,为空是顶级 */ - private Long parentId; - /** - * 文件夹名称 - */ - private String name; - /** - * 关键词 - */ - private String keyWord; + private String parentId; /** * 文件数据编码 */ private String dataId; + /** + * 文件夹名称 + */ + private String name; + /** + * 创建日期排序 + */ + private String gmtCreate; /** * 文件数据状态 */ private String dataStatus; + /** + * 备注 + */ + private String note; + /** + * 关键词 + */ + private String keyWord; + /** + * 文件数据 + */ + private MultipartFile fileData; } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java index 804a225..dba5234 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java @@ -28,11 +28,11 @@ public interface EDDataRepository { PageInfo getDataInfoList(EDDataParams parames); /** - * 更新文件占用状态 + * 更新文件信息 * @param parames * @return */ - Boolean updateFileStatus(EDDataParams parames); + Boolean updateFileInfo(EDDataParams parames); /** * 上传 diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java index e6971d7..367c254 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java @@ -21,11 +21,11 @@ public interface EDDataService { EDDataPage getDataInfoList(EDDataParams parames); /** - * 更新文件占用状态 + * 更新文件信息 * @param parames * @return */ - Boolean updateFileStatus(EDDataParams parames); + Boolean updateFileInfo(EDDataParams parames); /** * 上传 diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java index f35cceb..b1aad98 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java @@ -55,13 +55,13 @@ public class EDDataServiceImpl implements EDDataService { } /** - * 更新文件占用状态 + * 更新文件信息 * @param parames * @return */ - public Boolean updateFileStatus(EDDataParams parames) + public Boolean updateFileInfo(EDDataParams parames) { - edDataRepository.updateFileStatus(parames); + edDataRepository.updateFileInfo(parames); return Boolean.TRUE; } diff --git a/facade/pom.xml b/facade/pom.xml index 7bac92f..95bb373 100644 --- a/facade/pom.xml +++ b/facade/pom.xml @@ -18,6 +18,10 @@ com.electromagnetic.data electromagnetic-framework + + org.springframework + spring-web + diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java index 67480c6..384470d 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java @@ -22,11 +22,11 @@ public interface EDDataFacade { ElectromagneticResult getDataInfoList(EDDataRequest request); /** - * 更新文件占用状态 + * 更新文件信息 * @param request * @return */ - ElectromagneticResult updateFileStatus(EDDataRequest request); + ElectromagneticResult updateFileInfo(EDDataRequest request); /** * 上传 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 bdfac2d..74694e6 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 @@ -1,5 +1,6 @@ package com.electromagnetic.industry.software.data.manage.request.indicator; +import org.springframework.web.multipart.MultipartFile; import electromagnetic.data.framework.share.model.BaseRequest; import lombok.Data; @@ -17,21 +18,33 @@ public class EDDataRequest extends BaseRequest { /** * 上级文件夹数据码,为空是顶级 */ - private Long parentId; - /** - * 文件夹名称 - */ - private String name; - /** - * 关键词 - */ - private String keyWord; + private String parentId; /** * 文件数据编码 */ private String dataId; + /** + * 文件夹名称 + */ + private String name; + /** + * 创建日期排序 + */ + private String gmtCreate; /** * 文件数据状态 */ private String dataStatus; + /** + * 备注 + */ + private String note; + /** + * 关键词 + */ + private String keyWord; + /** + * 文件数据 + */ + private MultipartFile fileData; } 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 575e341..bfdce02 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 @@ -24,11 +24,11 @@ public interface EDDataMapper { List getDataInfoList(EDDataParams parames); /** - * 更新文件占用状态 + * 更新文件信息 * @param parames * @return */ - Boolean updateFileStatus(EDDataParams parames); + Boolean updateFileInfo(EDDataParams parames); } \ No newline at end of file diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java index c2c1118..30434a0 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java @@ -50,14 +50,14 @@ public class EDDataRepositoryImpl implements EDDataRepository { } /** - * 更新文件占用状态 + * 更新文件信息 * @param parames * @return */ @Override - public Boolean updateFileStatus(EDDataParams parames) + public Boolean updateFileInfo(EDDataParams parames) { - return edDataMapper.updateFileStatus(parames); + return edDataMapper.updateFileInfo(parames); } /** diff --git a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml index 740b2a9..306630b 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -14,6 +14,7 @@ + @@ -24,7 +25,7 @@ id,category_id,data_id,data_no,data_name,data_type,file_type,version,content, - implant_json,data_status,creator,creator_name,gmt_create,modifier,modifier_name, + implant_json,data_status,note,creator,creator_name,gmt_create,modifier,modifier_name, gmt_modified,effect_flag @@ -35,16 +36,16 @@ insert into ed_data_info (id, category_id, data_id, data_no, data_name, - data_type, file_type, - version,content, implant_json, data_status, + data_type, file_type,version, + content, implant_json, data_status,note, creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, effect_flag ) values (#{id,jdbcType=VARCHAR}, #{categoryId,jdbcType=VARCHAR}, #{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}, + #{dataType,jdbcType=VARCHAR}, #{fileType,jdbcType=VARCHAR},#{version,jdbcType=VARCHAR}, + #{content,jdbcType=VARCHAR}, #{implantJson,jdbcType=VARCHAR}, #{dataStatus,jdbcType=VARCHAR}, #{note,jdbcType=VARCHAR}, #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, #{modifierName,jdbcType=VARCHAR},now(),1 ) @@ -61,19 +62,30 @@ and category_id='${parentId}' + + and data_id='${dataId}' + and data_name LIKE '%${keyWord}%' GROUP BY id - order by gmt_modified asc + + order by gmt_create ${gmtCreate} + - + update ed_data_info + + data_name = #{name,jdbcType=VARCHAR}, + data_status = #{dataStatus,jdbcType=VARCHAR}, + + note = #{note,jdbcType=VARCHAR}, + gmt_modified = now() where data_id = #{dataId,jdbcType=VARCHAR} and effect_flag = 1 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 abb0fe7..293977f 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 @@ -11,9 +11,12 @@ import com.electromagnetic.industry.software.data.manage.service.mappers.EDDataM import electromagnetic.data.framework.share.id.IdWorker; import electromagnetic.data.framework.share.model.ElectromagneticResult; import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; +import org.springframework.http.HttpStatus; import org.springframework.stereotype.Service; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import java.io.File; @Service public class EDDataFacadeImpl implements EDDataFacade { @@ -32,17 +35,26 @@ public class EDDataFacadeImpl implements EDDataFacade { @Override public ElectromagneticResult createFolder(EDDataRequest request) { EDDataInfo edDataInfo = EDDataMappers.INSTANCE.getEDDataInfo(request); - edDataInfo.setCreator(request.getUserId()); - edDataInfo.setCreatorName(request.getPersonName()); - //edDataInfo.setModifier(request.getUserId()); - edDataInfo.setModifierName(request.getPersonName()); - edDataInfo.setModifier(IdWorker.getSnowFlakeIdString()); - edDataInfo.setCategoryId(IdWorker.getSnowFlakeIdString()); - edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); + // 临时数据设置 + if(Boolean.TRUE) { + if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString()); + if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user"); + if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder"); + if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString()); + } + + edDataInfo.setCreator(request.getUserId()); + edDataInfo.setCreatorName(request.getUserName()); + edDataInfo.setModifier(request.getUserId()); + edDataInfo.setModifierName(request.getUserName()); + edDataInfo.setCategoryId(request.getParentId()); + edDataInfo.setDataName(request.getName()); + edDataInfo.setNote(request.getNote()); + edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); + edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); edDataInfo.setDataType("folder"); - edDataInfo.setDataName("testFolder"); edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); @@ -70,16 +82,16 @@ public class EDDataFacadeImpl implements EDDataFacade { } /** - * 更新文件占用状态 + * 更新文件信息 * WISDOM_UPDATE_FILESTATUS * /data/ed/file/updateFileStatus * @param request * @return */ - public ElectromagneticResult updateFileStatus(EDDataRequest request) + public ElectromagneticResult updateFileInfo(EDDataRequest request) { EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); - edDataService.updateFileStatus(parames); + edDataService.updateFileInfo(parames); return ElectromagneticResultUtil.success(Boolean.TRUE); } @@ -94,7 +106,38 @@ public class EDDataFacadeImpl implements EDDataFacade { { EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); edDataService.upload(parames); - return ElectromagneticResultUtil.success(Boolean.TRUE); + + try { + // 获取目录编码ID + String categoryId = request.getParentId(); + + // 获取要上传的文件 + MultipartFile file = request.getFileData(); + + // 检查文件是否为空 + if (file == null || file.isEmpty()) { + return ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上传的文件为空"); + } + + // 获取文件名 + String fileName = file.getOriginalFilename(); + + // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 + // 例如,假设要保存到项目的 /uploads 目录下(需要确保该目录存在且可写) + file.transferTo(new File("fileData/" + fileName)); + + // 根据目录编码ID和文件名等信息可以进行进一步的处理,比如将文件保存到对应目录等 + // 这里只是示例,假设打印相关信息 + System.out.println("目录编码ID: " + categoryId); + System.out.println("文件名: " + fileName); + + // 如果文件上传成功,返回成功消息 + return ElectromagneticResultUtil.success(Boolean.TRUE); + } catch (Exception e) { + // 如果出现异常,返回异常消息 + return ElectromagneticResultUtil.fail(HttpStatus.INTERNAL_SERVER_ERROR.toString(),"文件上传失败" + e.getMessage()); + } + } /** From dae581a856804a545fe7e453e9d62f82c720e2b0 Mon Sep 17 00:00:00 2001 From: "578646533@qq.com" <123456qq> Date: Mon, 18 Nov 2024 11:22:48 +0800 Subject: [PATCH 2/7] =?UTF-8?q?bug=E5=A4=84=E7=90=86?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/manage/controller/EDDataController.java | 13 +++++++------ 1 file changed, 7 insertions(+), 6 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 82c82d1..9bd6750 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 @@ -5,10 +5,8 @@ import com.electromagnetic.industry.software.data.manage.request.indicator.EDDat import electromagnetic.data.framework.share.model.ElectromagneticResult; import electromagnetic.data.framework.share.model.ElectromagneticResultUtil; import io.swagger.annotations.ApiOperation; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RequestMethod; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; @@ -42,8 +40,11 @@ public class EDDataController { @ApiOperation(value = "上传",notes = "") @RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST) - public ElectromagneticResult upload(@RequestBody EDDataRequest request){ - return edDataFacade.upload(request); + public ElectromagneticResult upload(@RequestParam("file") MultipartFile file, + @RequestParam("parentId") String parentId){ + System.out.println(parentId); +// return edDataFacade.upload(request); + return null; } From ce18fd577efc00d78347cec6cd21b7d0b59018f9 Mon Sep 17 00:00:00 2001 From: sxlong Date: Mon, 18 Nov 2024 18:08:07 +0800 Subject: [PATCH 3/7] =?UTF-8?q?1.=E7=BC=96=E5=86=99=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3=EF=BC=9B2.=E4=BF=AE?= =?UTF-8?q?=E6=94=B9=E5=B9=B6=E6=B7=BB=E5=8A=A0=E7=9B=B8=E5=85=B3=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/EDDataController.java | 21 ++- .../src/main/resources/application.properties | 6 +- .../indicator/parames/EDDataParams.java | 4 + .../repository/EDDataRepository.java | 15 ++- .../indicator/service/EDDataService.java | 29 +++- .../service/impl/EDDataServiceImpl.java | 50 ++++++- .../data/manage/facade/EDDataFacade.java | 7 + .../request/indicator/EDDataRequest.java | 4 + .../manage/repository/dao/EDDataMapper.java | 16 +++ .../repository/impl/EDDataRepositoryImpl.java | 25 +++- .../resources/sqlmapper/EdDataInfoMapper.xml | 5 + .../service/facade/EDDataFacadeImpl.java | 126 ++++++++++++++++-- 12 files changed, 268 insertions(+), 40 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 9bd6750..85313cc 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 @@ -9,6 +9,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; @RequestMapping("/data/ed/file") @RestController @@ -38,13 +39,23 @@ public class EDDataController { } + @ApiOperation(value = "获取子文件数量",notes = "") + @RequestMapping(value = "/getChildFileCount",method = RequestMethod.POST) + public ElectromagneticResult getChildFileCount(@RequestBody EDDataRequest request){ + return edDataFacade.getChildFileCount(request); + } + + @ApiOperation(value = "上传",notes = "") @RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST) - public ElectromagneticResult upload(@RequestParam("file") MultipartFile file, - @RequestParam("parentId") String parentId){ - System.out.println(parentId); -// return edDataFacade.upload(request); - return null; + public ElectromagneticResult upload(@RequestParam("parentId") String parentId, + @RequestParam("file") MultipartFile file){ + + //System.out.println(parentId); + EDDataRequest request = new EDDataRequest(); + request.setParentId(parentId); + request.setFileData(file); + return edDataFacade.upload(request); } diff --git a/bootstrap/src/main/resources/application.properties b/bootstrap/src/main/resources/application.properties index 8546337..cfdc88c 100644 --- a/bootstrap/src/main/resources/application.properties +++ b/bootstrap/src/main/resources/application.properties @@ -15,9 +15,9 @@ spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource #spring.datasource.url=jdbc:mysql://${DATASOURCE_URL:obproxy-0c63.ops.cloud.cic.inter}:3306/${DATASOURCE_HOST:dataplatform_ptst}?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true #spring.datasource.username=${DATASOURCE_NAME:dataplatform@ProjectTest_tenant5#testdb} #spring.datasource.password=${DATASOURCE_PASSWORD:Y7G6v4_3ijn77K_Kbl_U85} -spring.datasource.url=jdbc:mysql://localhost:3306/mydatabase?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true -spring.datasource.username=root -spring.datasource.password=123456 +spring.datasource.url=jdbc:mysql://139.196.179.195:3306/em_data?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true +spring.datasource.username=comac +spring.datasource.password=2024*Comac spring.datasource.driver-class-name=com.mysql.jdbc.Driver 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 2ee6ff2..45137ca 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 @@ -40,6 +40,10 @@ public class EDDataParams implements Serializable { * 备注 */ private String note; + /** + * 是否有效 + */ + private String effectFlag; /** * 关键词 */ diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java index dba5234..179b3ee 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java @@ -14,11 +14,11 @@ import com.github.pagehelper.PageInfo; public interface EDDataRepository { /** - * 创建文件夹 + * 创建文件/文件夹数据信息 * @param edDataInfo * @return */ - Boolean createFolder(EDDataInfo edDataInfo); + Boolean createDataInfo(EDDataInfo edDataInfo); /** * 获取文件信息列表 @@ -27,6 +27,13 @@ public interface EDDataRepository { */ PageInfo getDataInfoList(EDDataParams parames); + /** + * 获取文件信息 + * @param parames + * @return + */ + EDDataInfo getDataInfo(EDDataParams parames); + /** * 更新文件信息 * @param parames @@ -35,11 +42,11 @@ public interface EDDataRepository { Boolean updateFileInfo(EDDataParams parames); /** - * 上传 + * 获取子文件数量 * @param parames * @return */ - Boolean upload(EDDataParams parames); + Integer getChildFileCount(EDDataParams parames); /** * 下载 diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java index 367c254..58ad441 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/EDDataService.java @@ -7,11 +7,11 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.ind public interface EDDataService { /** - * 创建文件夹 + * 创建文件/文件夹数据信息 * @param edDataInfo * @return */ - Boolean createFolder(EDDataInfo edDataInfo); + Boolean createDataInfo(EDDataInfo edDataInfo); /** * 获取文件信息列表 @@ -20,6 +20,13 @@ public interface EDDataService { */ EDDataPage getDataInfoList(EDDataParams parames); + /** + * 获取文件信息 + * @param parames + * @return + */ + EDDataInfo getDataInfo(EDDataParams parames); + /** * 更新文件信息 * @param parames @@ -28,11 +35,11 @@ public interface EDDataService { Boolean updateFileInfo(EDDataParams parames); /** - * 上传 + * 获取子文件数量 * @param parames * @return */ - Boolean upload(EDDataParams parames); + Integer getChildFileCount(EDDataParams parames); /** * 下载 @@ -41,4 +48,18 @@ public interface EDDataService { */ Boolean download(EDDataParams parames); + /** + * 检查文件夹是否存在 + * @param path + * @return + */ + Boolean checkFolderIsExist(String path); + + /** + * 创建多级目录 + * @param path + * @return + */ + Boolean createMultiLevelDirectory(String path); + } diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java index b1aad98..c9bdfc9 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java @@ -15,6 +15,9 @@ import org.slf4j.LoggerFactory; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.IOException; +import java.nio.file.Files; +import java.nio.file.Paths; /** * @author @@ -30,13 +33,13 @@ public class EDDataServiceImpl implements EDDataService { /** - * 创建文件夹 + * 创建文件/文件夹数据信息 * @param edDataInfo * @return */ - public Boolean createFolder(EDDataInfo edDataInfo) + public Boolean createDataInfo(EDDataInfo edDataInfo) { - edDataRepository.createFolder(edDataInfo); + edDataRepository.createDataInfo(edDataInfo); return Boolean.TRUE; } @@ -54,6 +57,16 @@ public class EDDataServiceImpl implements EDDataService { return edDataPage; } + /** + * 获取文件信息 + * @param parames + * @return + */ + public EDDataInfo getDataInfo(EDDataParams parames) + { + return edDataRepository.getDataInfo(parames); + } + /** * 更新文件信息 * @param parames @@ -66,14 +79,13 @@ public class EDDataServiceImpl implements EDDataService { } /** - * 上传 + * 获取子文件数量 * @param parames * @return */ - public Boolean upload(EDDataParams parames) + public Integer getChildFileCount(EDDataParams parames) { - edDataRepository.upload(parames); - return Boolean.TRUE; + return edDataRepository.getChildFileCount(parames); } /** @@ -87,6 +99,30 @@ public class EDDataServiceImpl implements EDDataService { return Boolean.TRUE; } + /** + * 检查文件夹是否存在 + * @param path + * @return + */ + public Boolean checkFolderIsExist(String path) + { + return Files.exists(Paths.get(path)); + } + + /** + * 创建多级目录 + * @param path + * @return + */ + public Boolean createMultiLevelDirectory(String path) + { + try { + Files.createDirectories(Paths.get(path)); + return Boolean.TRUE; + } catch (IOException e) { + return Boolean.FALSE; + } + } } \ No newline at end of file diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java index 384470d..788f215 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java @@ -28,6 +28,13 @@ public interface EDDataFacade { */ ElectromagneticResult updateFileInfo(EDDataRequest request); + /** + * 获取子文件数量 + * @param request + * @return + */ + ElectromagneticResult getChildFileCount(EDDataRequest request); + /** * 上传 * @param request 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 74694e6..21d4aee 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 @@ -39,6 +39,10 @@ public class EDDataRequest extends BaseRequest { * 备注 */ private String note; + /** + * 是否有效 + */ + private String effectFlag; /** * 关键词 */ 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 bfdce02..736e2ed 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 @@ -2,6 +2,8 @@ package com.electromagnetic.industry.software.data.manage.repository.dao; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.model.EDDataInfo; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams; +import com.electromagnetic.industry.software.data.manage.request.indicator.EDDataRequest; +import electromagnetic.data.framework.share.model.ElectromagneticResult; import org.apache.ibatis.annotations.Mapper; import java.util.List; @@ -30,5 +32,19 @@ 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/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java index 30434a0..bbc9cb8 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java @@ -25,13 +25,13 @@ public class EDDataRepositoryImpl implements EDDataRepository { private EDDataMapper edDataMapper; /** - * 创建文件夹 + * 创建文件/文件夹数据信息 * * @param edDataInfo * @return */ @Override - public Boolean createFolder(EDDataInfo edDataInfo) + public Boolean createDataInfo(EDDataInfo edDataInfo) { return edDataMapper.createDataInfo(edDataInfo); } @@ -49,6 +49,18 @@ public class EDDataRepositoryImpl implements EDDataRepository { return new PageInfo<>(edDataInfoList); } + /** + * 获取文件信息 + * @param parames + * @return + */ + @Override + public EDDataInfo getDataInfo(EDDataParams parames) + { + List edDataInfoList=edDataMapper.getDataInfoList(parames); + return edDataInfoList.get(0); + } + /** * 更新文件信息 * @param parames @@ -61,16 +73,14 @@ public class EDDataRepositoryImpl implements EDDataRepository { } /** - * 上传 + * 获取子文件数量 * @param parames * @return */ @Override - public Boolean upload(EDDataParams parames) + public Integer getChildFileCount(EDDataParams parames) { - //return edDataMapper.upload(parames); - //edDataMapper.createDataInfo(edDataInfo); - return Boolean.TRUE; + return edDataMapper.getChildFileCount(parames); } /** @@ -86,4 +96,5 @@ public class EDDataRepositoryImpl implements EDDataRepository { } + } \ 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 306630b..bfcc759 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -86,10 +86,15 @@ note = #{note,jdbcType=VARCHAR}, + + effect_flag = #{effectFlag,jdbcType=VARCHAR}, + gmt_modified = now() where data_id = #{dataId,jdbcType=VARCHAR} and effect_flag = 1 + + 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 293977f..1da03c5 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 @@ -1,5 +1,7 @@ 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.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; @@ -17,6 +19,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; +import java.nio.file.Path; @Service public class EDDataFacadeImpl implements EDDataFacade { @@ -58,7 +61,36 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); - edDataService.createFolder(edDataInfo); + String newFolderPath = ""; + // 获取上级目录的名称 + if(!request.getParentId().isEmpty()) { + EDDataParams parames = new EDDataParams(); + parames.setParentId(request.getParentId()); + EDDataInfo edDataInfoParent = edDataService.getDataInfo(parames); + String folderName = edDataInfoParent.getDataName(); + String folderId = edDataInfoParent.getDataId(); + + // 记录当前目录的文件夹路径和文件夹id路径 + JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson()); + String folderPath = implantJsonObject.getString("folderPath"); + String folderIdPath = implantJsonObject.getString("folderIdPath"); + newFolderPath = folderPath + folderName; + implantJsonObject.put("folderPath", newFolderPath); + implantJsonObject.put("folderIdPath", folderIdPath + folderId); + String newImplantJson = implantJsonObject.toJSONString(); + edDataInfo.setImplantJson(newImplantJson); + } + + boolean isSuccess = edDataService.createDataInfo(edDataInfo); + if(isSuccess) + { + // 获取文件存储的文件夹路径 + String storageDirectory = "D:/fileTemp/" + newFolderPath; + if(!edDataService.checkFolderIsExist(storageDirectory)) { + edDataService.createMultiLevelDirectory(storageDirectory); + } + } + return ElectromagneticResultUtil.success(Boolean.TRUE); } @@ -83,8 +115,8 @@ public class EDDataFacadeImpl implements EDDataFacade { /** * 更新文件信息 - * WISDOM_UPDATE_FILESTATUS - * /data/ed/file/updateFileStatus + * WISDOM_UPDATE_FILEINFO + * /data/ed/file/updateFileInfo * @param request * @return */ @@ -95,6 +127,20 @@ public class EDDataFacadeImpl implements EDDataFacade { return ElectromagneticResultUtil.success(Boolean.TRUE); } + /** + * 获取子文件数量 + * WISDOM_GET_CHILDFILECOUNT + * /data/ed/file/getChildFileCount + * @param request + * @return + */ + public ElectromagneticResult getChildFileCount(EDDataRequest request) + { + EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); + Integer fileCount = edDataService.getChildFileCount(parames); + return ElectromagneticResultUtil.success(Boolean.TRUE); + } + /** * 上传 * WISDOM_UPLOAD @@ -105,7 +151,6 @@ public class EDDataFacadeImpl implements EDDataFacade { public ElectromagneticResult upload(EDDataRequest request) { EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); - edDataService.upload(parames); try { // 获取目录编码ID @@ -121,15 +166,76 @@ public class EDDataFacadeImpl implements EDDataFacade { // 获取文件名 String fileName = file.getOriginalFilename(); + // 获取文件类型 + String fileType = ""; + if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) { + fileType = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); + } + + // 获取文件存储的文件夹路径 + String storageDirectory = "D:/fileTemp"; + if(!edDataService.checkFolderIsExist(storageDirectory)) { + edDataService.createMultiLevelDirectory(storageDirectory); + } + + String parentFolderPath = ""; + String parentFolderIdPath = ""; + + // 获取上级文件夹路径 + { + EDDataParams folderParames = new EDDataParams(); + folderParames.setParentId(categoryId); + EDDataInfo edDataInfoParent = edDataService.getDataInfo(folderParames); + JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson()); + parentFolderPath = implantJsonObject.getString("folderPath"); + parentFolderIdPath = implantJsonObject.getString("folderIdPath"); + if(!parentFolderPath.isEmpty()) + parentFolderPath += "/"; + } + + // 文件保存目录路径 + String fileSavePath = storageDirectory + "/" + parentFolderPath + fileName; // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 - // 例如,假设要保存到项目的 /uploads 目录下(需要确保该目录存在且可写) - file.transferTo(new File("fileData/" + fileName)); + File saveFile = new File(fileSavePath); - // 根据目录编码ID和文件名等信息可以进行进一步的处理,比如将文件保存到对应目录等 - // 这里只是示例,假设打印相关信息 - System.out.println("目录编码ID: " + categoryId); - System.out.println("文件名: " + fileName); + // 将文件保存到硬盘 + file.transferTo(saveFile); + + // 文件数据信息写到数据库 + { + // 临时数据设置 + if(Boolean.TRUE) { + if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString()); + if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user"); + if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder"); + if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString()); + } + + // 创建新文件数据 + EDDataInfo edDataInfo = new EDDataInfo(); + edDataInfo.setCreator(request.getUserId()); + edDataInfo.setCreatorName(request.getUserName()); + edDataInfo.setModifier(request.getUserId()); + edDataInfo.setModifierName(request.getUserName()); + edDataInfo.setCategoryId(request.getParentId()); + edDataInfo.setDataName(request.getName()); + edDataInfo.setNote(request.getNote()); + + edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); + edDataInfo.setDataNo(IdWorker.getSnowFlakeIdString()); + edDataInfo.setDataType("file"); + edDataInfo.setVersion("1.0.0"); + edDataInfo.setDataStatus("publish"); + + JSONObject newImplantJsonObject = new JSONObject(); + newImplantJsonObject.put("folderPath", parentFolderPath); + newImplantJsonObject.put("folderIdPath", parentFolderIdPath); + edDataInfo.setImplantJson(newImplantJsonObject.toJSONString()); + + boolean isSuccess = edDataService.createDataInfo(edDataInfo); + + } // 如果文件上传成功,返回成功消息 return ElectromagneticResultUtil.success(Boolean.TRUE); From 6fa792ae482a02e3f328c325b80dbd6b6e4ba55c Mon Sep 17 00:00:00 2001 From: sxlong Date: Tue, 19 Nov 2024 11:53:51 +0800 Subject: [PATCH 4/7] =?UTF-8?q?1.=E6=9B=B4=E6=96=B0=E5=88=9B=E5=BB=BA?= =?UTF-8?q?=E6=96=87=E4=BB=B6=E5=A4=B9=E5=92=8C=E4=B8=8A=E4=BC=A0=E6=96=87?= =?UTF-8?q?=E4=BB=B6=E6=8E=A5=E5=8F=A3(=E8=83=BD=E6=AD=A3=E5=B8=B8?= =?UTF-8?q?=E8=BF=90=E8=A1=8C)=E3=80=82?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/resources/application.properties | 2 +- .../repository/impl/EDDataRepositoryImpl.java | 5 +- .../resources/sqlmapper/EdDataInfoMapper.xml | 5 +- .../service/facade/EDDataFacadeImpl.java | 58 +++++++++++++------ 4 files changed, 47 insertions(+), 23 deletions(-) diff --git a/bootstrap/src/main/resources/application.properties b/bootstrap/src/main/resources/application.properties index cfdc88c..cc4dfa0 100644 --- a/bootstrap/src/main/resources/application.properties +++ b/bootstrap/src/main/resources/application.properties @@ -15,7 +15,7 @@ spring.datasource.typd=com.alibaba.druid.pool.DruidDataSource #spring.datasource.url=jdbc:mysql://${DATASOURCE_URL:obproxy-0c63.ops.cloud.cic.inter}:3306/${DATASOURCE_HOST:dataplatform_ptst}?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true #spring.datasource.username=${DATASOURCE_NAME:dataplatform@ProjectTest_tenant5#testdb} #spring.datasource.password=${DATASOURCE_PASSWORD:Y7G6v4_3ijn77K_Kbl_U85} -spring.datasource.url=jdbc:mysql://139.196.179.195:3306/em_data?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true +spring.datasource.url=jdbc:mysql://139.224.43.89:3306/em_data?serverTimezone=UTC&useUnicode=true&characterEncoding=utf-8&useSSL=true&serverTimezone=GMT%2B8&allowMultiQueries=true&rewriteBatchedStatements=true spring.datasource.username=comac spring.datasource.password=2024*Comac diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java index bbc9cb8..c7c03cd 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java @@ -58,7 +58,10 @@ public class EDDataRepositoryImpl implements EDDataRepository { public EDDataInfo getDataInfo(EDDataParams parames) { List edDataInfoList=edDataMapper.getDataInfoList(parames); - return edDataInfoList.get(0); + if(edDataInfoList.size()>0) + return edDataInfoList.get(0); + else + return null; } /** diff --git a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml index bfcc759..e95194b 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -15,6 +15,7 @@ + @@ -38,7 +39,7 @@ data_id, data_no, data_name, data_type, file_type,version, content, implant_json, data_status,note, - creator, creator_name, gmt_create, + editor, creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, effect_flag ) @@ -46,7 +47,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}, - #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, + #{editor,jdbcType=VARCHAR}, #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, #{modifierName,jdbcType=VARCHAR},now(),1 ) 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 1da03c5..4848fa6 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 @@ -44,7 +44,7 @@ public class EDDataFacadeImpl implements EDDataFacade { if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString()); if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user"); if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder"); - if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString()); + //if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString()); } edDataInfo.setCreator(request.getUserId()); @@ -61,22 +61,36 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setVersion("1.0.0"); edDataInfo.setDataStatus("publish"); - String newFolderPath = ""; + String parentFolderPath = ""; // 获取上级目录的名称 if(!request.getParentId().isEmpty()) { EDDataParams parames = new EDDataParams(); - parames.setParentId(request.getParentId()); + parames.setDataId(request.getParentId()); EDDataInfo edDataInfoParent = edDataService.getDataInfo(parames); - String folderName = edDataInfoParent.getDataName(); - String folderId = edDataInfoParent.getDataId(); + if(edDataInfoParent == null) { + ElectromagneticResultUtil.fail(HttpStatus.BAD_REQUEST.toString(),"上级文件夹为空!"); + } + + String folderNameParent = edDataInfoParent.getDataName(); + String folderIdParent = edDataInfoParent.getDataId(); // 记录当前目录的文件夹路径和文件夹id路径 JSONObject implantJsonObject = JSON.parseObject(edDataInfoParent.getImplantJson()); - String folderPath = implantJsonObject.getString("folderPath"); - String folderIdPath = implantJsonObject.getString("folderIdPath"); - newFolderPath = folderPath + folderName; - implantJsonObject.put("folderPath", newFolderPath); - implantJsonObject.put("folderIdPath", folderIdPath + folderId); + if(implantJsonObject == null) { + implantJsonObject = new JSONObject(); + parentFolderPath = folderNameParent; + implantJsonObject.put("folderPath", parentFolderPath); + implantJsonObject.put("folderIdPath", folderIdParent); + } + else + { + String folderPath = implantJsonObject.getString("folderPath"); + String folderIdPath = implantJsonObject.getString("folderIdPath"); + parentFolderPath = folderPath + "/" + folderNameParent; + implantJsonObject.put("folderPath", parentFolderPath); + implantJsonObject.put("folderIdPath", folderIdPath + "/" + folderIdParent); + } + String newImplantJson = implantJsonObject.toJSONString(); edDataInfo.setImplantJson(newImplantJson); } @@ -85,7 +99,7 @@ public class EDDataFacadeImpl implements EDDataFacade { if(isSuccess) { // 获取文件存储的文件夹路径 - String storageDirectory = "D:/fileTemp/" + newFolderPath; + String storageDirectory = "D:/fileTemp/" + parentFolderPath + "/" + edDataInfo.getDataName(); if(!edDataService.checkFolderIsExist(storageDirectory)) { edDataService.createMultiLevelDirectory(storageDirectory); } @@ -165,11 +179,14 @@ public class EDDataFacadeImpl implements EDDataFacade { } // 获取文件名 - String fileName = file.getOriginalFilename(); + String fileFullName = file.getOriginalFilename(); // 获取文件类型 String fileType = ""; - if (fileName.lastIndexOf(".") != -1 && fileName.lastIndexOf(".") != 0) { - fileType = fileName.substring(fileName.lastIndexOf(".") + 1).toLowerCase(); + // 获取文件名称 + String fileName = ""; + if (fileFullName.lastIndexOf(".") != -1 && fileFullName.lastIndexOf(".") != 0) { + fileType = fileFullName.substring(fileFullName.lastIndexOf(".") + 1); + fileName = fileFullName.substring(fileFullName.lastIndexOf(".")); } // 获取文件存储的文件夹路径 @@ -184,17 +201,20 @@ public class EDDataFacadeImpl implements EDDataFacade { // 获取上级文件夹路径 { EDDataParams folderParames = new EDDataParams(); - folderParames.setParentId(categoryId); + 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 += "/"; + parentFolderPath = parentFolderPath + "/" + edDataInfoParent.getDataName(); } // 文件保存目录路径 - String fileSavePath = storageDirectory + "/" + parentFolderPath + fileName; + String fileSavePath = storageDirectory + "/" + parentFolderPath + fileFullName; // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 File saveFile = new File(fileSavePath); @@ -208,7 +228,7 @@ public class EDDataFacadeImpl implements EDDataFacade { if(Boolean.TRUE) { if (request.getUserId() == null || request.getUserId().isEmpty()) request.setUserId(IdWorker.getSnowFlakeIdString()); if (request.getUserName() == null || request.getUserName().isEmpty()) request.setUserName("user"); - if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder"); + //if (request.getName() == null || request.getName().isEmpty()) request.setName("testFolder"); if (request.getParentId() == null || request.getParentId().isEmpty()) request.setParentId(IdWorker.getSnowFlakeIdString()); } @@ -219,7 +239,7 @@ public class EDDataFacadeImpl implements EDDataFacade { edDataInfo.setModifier(request.getUserId()); edDataInfo.setModifierName(request.getUserName()); edDataInfo.setCategoryId(request.getParentId()); - edDataInfo.setDataName(request.getName()); + edDataInfo.setDataName(fileFullName); edDataInfo.setNote(request.getNote()); edDataInfo.setDataId(IdWorker.getSnowFlakeIdString()); From 512f9724d8dd2f3b1759ef7bc1c08b4edd963a9b Mon Sep 17 00:00:00 2001 From: sxlong Date: Tue, 19 Nov 2024 16:50:07 +0800 Subject: [PATCH 5/7] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E8=8E=B7=E5=8F=96?= =?UTF-8?q?=E5=AD=90=E6=96=87=E4=BB=B6=E6=95=B0=E9=87=8F=E6=8E=A5=E5=8F=A3?= =?UTF-8?q?=EF=BC=9B2.=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6=E4=B8=8B?= =?UTF-8?q?=E8=BD=BD=E6=8E=A5=E5=8F=A3=EF=BC=9B3.=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=96=87=E4=BB=B6=E6=8E=A5=E5=8F=A3?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../manage/controller/EDDataController.java | 8 ---- .../indicator/model/EDDataInfo.java | 4 ++ .../indicator/parames/EDDataParams.java | 8 ++++ .../repository/EDDataRepository.java | 11 ++--- .../service/impl/EDDataServiceImpl.java | 26 +++++++++-- .../data/manage/facade/EDDataFacade.java | 7 ++- .../request/indicator/EDDataRequest.java | 4 ++ .../repository/impl/EDDataRepositoryImpl.java | 17 +------- .../resources/sqlmapper/EdDataInfoMapper.xml | 13 +++--- .../service/facade/EDDataFacadeImpl.java | 43 +++++++++++++++---- 10 files changed, 92 insertions(+), 49 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 85313cc..295e721 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 @@ -50,8 +50,6 @@ public class EDDataController { @RequestMapping(value = "/upload", consumes = "multipart/form-data",method = RequestMethod.POST) public ElectromagneticResult upload(@RequestParam("parentId") String parentId, @RequestParam("file") MultipartFile file){ - - //System.out.println(parentId); EDDataRequest request = new EDDataRequest(); request.setParentId(parentId); request.setFileData(file); @@ -73,10 +71,4 @@ public class EDDataController { } - @ApiOperation(value = "重命名",notes = "") - @RequestMapping(value = "/rename",method = RequestMethod.POST) - public ElectromagneticResult rename(@RequestBody EDDataRequest request){ - return ElectromagneticResultUtil.success("重命名"); - } - } 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 a061a5c..463774f 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 @@ -61,6 +61,10 @@ public class EDDataInfo { * 编辑人 */ private String editor; + /** + * 批量上传时间 + */ + private String gmtBatchUpload; /** * 创建人 */ 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 45137ca..076a3da 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 @@ -48,6 +48,14 @@ public class EDDataParams implements Serializable { * 关键词 */ private String keyWord; + /** + * 批量上传时间 + */ + private String gmtBatchUpload; + /** + * 文件数据编码数组 + */ + private String[] dataIdArr; /** * 文件数据 */ diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java index 179b3ee..0ea9c6d 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/repository/EDDataRepository.java @@ -7,6 +7,8 @@ import com.electromagnetic.industry.software.data.manage.domain.boardservice.ind import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.parames.EDDataParams; import com.github.pagehelper.PageInfo; +import java.util.List; + /** * @author * @version $Id: EDDataRepos.java, v 0.1 2024-07-29 19:02 @@ -25,7 +27,7 @@ public interface EDDataRepository { * @param parames * @return */ - PageInfo getDataInfoList(EDDataParams parames); + List getDataInfoList(EDDataParams parames); /** * 获取文件信息 @@ -41,13 +43,6 @@ public interface EDDataRepository { */ Boolean updateFileInfo(EDDataParams parames); - /** - * 获取子文件数量 - * @param parames - * @return - */ - Integer getChildFileCount(EDDataParams parames); - /** * 下载 * @param parames diff --git a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java index c9bdfc9..a692211 100644 --- a/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java +++ b/domain/src/main/java/com/electromagnetic/industry/software/data/manage/domain/boardservice/indicator/service/impl/EDDataServiceImpl.java @@ -3,11 +3,13 @@ */ package com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.impl; +import cn.hutool.poi.excel.cell.CellSetter; 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.repository.EDDataRepository; import com.electromagnetic.industry.software.data.manage.domain.boardservice.indicator.service.EDDataService; +import com.github.pagehelper.PageHelper; import com.github.pagehelper.PageInfo; import electromagnetic.data.framework.share.exception.LoggerConstant; import org.slf4j.Logger; @@ -18,6 +20,7 @@ import javax.annotation.Resource; import java.io.IOException; import java.nio.file.Files; import java.nio.file.Paths; +import java.util.List; /** * @author @@ -50,9 +53,11 @@ public class EDDataServiceImpl implements EDDataService { */ public EDDataPage getDataInfoList(EDDataParams parames) { + PageHelper.startPage(parames.getPageIndex(), parames.getPageSize()); + List edDataInfoList = edDataRepository.getDataInfoList(parames); + PageInfo pageInfo = new PageInfo<>(edDataInfoList); + EDDataPage edDataPage=new EDDataPage(); - //数据查询 - PageInfo pageInfo = edDataRepository.getDataInfoList(parames); edDataPage.setEdDataInfo(pageInfo); return edDataPage; } @@ -85,7 +90,22 @@ public class EDDataServiceImpl implements EDDataService { */ public Integer getChildFileCount(EDDataParams parames) { - return edDataRepository.getChildFileCount(parames); + Integer childFileCount = 0; + + List edDataInfoList = edDataRepository.getDataInfoList(parames); + for (EDDataInfo edDataInfo : edDataInfoList) { + if(edDataInfo.getDataType().equals("folder")) + { + parames.setParentId(edDataInfo.getDataId()); + childFileCount += getChildFileCount(parames); + } + else if(edDataInfo.getDataType().equals("file")) + { + ++childFileCount; + } + } + + return childFileCount; } /** diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java index 788f215..319e92a 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java @@ -4,6 +4,9 @@ import com.electromagnetic.industry.software.data.manage.request.indicator.EDDat import com.electromagnetic.industry.software.data.manage.response.indicator.EDDataPageResponse; import electromagnetic.data.framework.share.model.ElectromagneticResult; +import java.util.List; +import java.util.Map; + public interface EDDataFacade { /** @@ -33,7 +36,7 @@ public interface EDDataFacade { * @param request * @return */ - ElectromagneticResult getChildFileCount(EDDataRequest request); + ElectromagneticResult> getChildFileCount(EDDataRequest request); /** * 上传 @@ -47,6 +50,6 @@ public interface EDDataFacade { * @param request * @return */ - ElectromagneticResult download(EDDataRequest request); + ElectromagneticResult>> download(EDDataRequest request); } 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 21d4aee..5a6ef86 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 @@ -47,6 +47,10 @@ public class EDDataRequest extends BaseRequest { * 关键词 */ private String keyWord; + /** + * 文件数据编码数组 + */ + private String[] dataIdArr; /** * 文件数据 */ diff --git a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java index c7c03cd..20d17be 100644 --- a/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java +++ b/infrastructure/repository/src/main/java/com/electromagnetic/industry/software/data/manage/repository/impl/EDDataRepositoryImpl.java @@ -42,11 +42,9 @@ public class EDDataRepositoryImpl implements EDDataRepository { * @return */ @Override - public PageInfo getDataInfoList(EDDataParams parames) + public List getDataInfoList(EDDataParams parames) { - PageHelper.startPage(parames.getPageIndex(), parames.getPageSize()); - List edDataInfoList=edDataMapper.getDataInfoList(parames); - return new PageInfo<>(edDataInfoList); + return edDataMapper.getDataInfoList(parames); } /** @@ -75,17 +73,6 @@ public class EDDataRepositoryImpl implements EDDataRepository { return edDataMapper.updateFileInfo(parames); } - /** - * 获取子文件数量 - * @param parames - * @return - */ - @Override - public Integer getChildFileCount(EDDataParams parames) - { - return edDataMapper.getChildFileCount(parames); - } - /** * 下载 * @param parames diff --git a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml index e95194b..c91c18b 100644 --- a/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml +++ b/infrastructure/repository/src/main/resources/sqlmapper/EdDataInfoMapper.xml @@ -16,6 +16,7 @@ + @@ -37,17 +38,19 @@ insert into ed_data_info (id, category_id, data_id, data_no, data_name, - data_type, file_type,version, - content, implant_json, data_status,note, - editor, creator, creator_name, gmt_create, + data_type, file_type, version, + content, implant_json, data_status, + note, editor, gmt_batch_upload, + creator, creator_name, gmt_create, modifier, modifier_name, gmt_modified, effect_flag ) values (#{id,jdbcType=VARCHAR}, #{categoryId,jdbcType=VARCHAR}, #{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}, #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, + #{content,jdbcType=VARCHAR}, #{implantJson,jdbcType=VARCHAR}, #{dataStatus,jdbcType=VARCHAR}, + #{note,jdbcType=VARCHAR}, #{editor,jdbcType=VARCHAR}, #{gmtBatchUpload,jdbcType=TIMESTAMP}, + #{creator,jdbcType=VARCHAR}, #{creatorName,jdbcType=VARCHAR}, now(), #{modifier,jdbcType=VARCHAR}, #{modifierName,jdbcType=VARCHAR},now(),1 ) 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 4848fa6..6818106 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 @@ -20,6 +20,7 @@ import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; import java.io.File; import java.nio.file.Path; +import java.util.*; @Service public class EDDataFacadeImpl implements EDDataFacade { @@ -148,11 +149,13 @@ public class EDDataFacadeImpl implements EDDataFacade { * @param request * @return */ - public ElectromagneticResult getChildFileCount(EDDataRequest request) + public ElectromagneticResult> getChildFileCount(EDDataRequest request) { EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); Integer fileCount = edDataService.getChildFileCount(parames); - return ElectromagneticResultUtil.success(Boolean.TRUE); + Map result = new HashMap<>(); + result.put("fileCount", fileCount); + return ElectromagneticResultUtil.success(result); } /** @@ -210,11 +213,15 @@ public class EDDataFacadeImpl implements EDDataFacade { parentFolderPath = implantJsonObject.getString("folderPath"); parentFolderIdPath = implantJsonObject.getString("folderIdPath"); if(!parentFolderPath.isEmpty()) - parentFolderPath = parentFolderPath + "/" + edDataInfoParent.getDataName(); + parentFolderPath += "/" ; + if(!parentFolderIdPath.isEmpty()) + parentFolderIdPath += "/" ; + parentFolderPath += edDataInfoParent.getDataName(); + parentFolderIdPath += edDataInfoParent.getDataId(); } // 文件保存目录路径 - String fileSavePath = storageDirectory + "/" + parentFolderPath + fileFullName; + String fileSavePath = storageDirectory + "/" + parentFolderPath + "/" + fileFullName; // 这里可以添加将文件保存到本地磁盘或其他存储介质的逻辑 File saveFile = new File(fileSavePath); @@ -273,11 +280,31 @@ public class EDDataFacadeImpl implements EDDataFacade { * @param request * @return */ - public ElectromagneticResult download(EDDataRequest request) + public ElectromagneticResult>> download(EDDataRequest request) { - EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); - edDataService.download(parames); - return ElectromagneticResultUtil.success(Boolean.TRUE); + //EDDataParams parames= EDDataMappers.INSTANCE.getEDDataParames(request); + + // 获取文件存储的文件夹路径 + String storageDirectory = "D:/fileTemp"; + EDDataParams parames = new EDDataParams(); + List dataPathArr = new ArrayList(); + for(String dataId : request.getDataIdArr()) + { + parames.setDataId(dataId); + EDDataInfo edDataInfo = edDataService.getDataInfo(parames); + if(edDataInfo != null) + { + JSONObject implantJsonObject = JSON.parseObject(edDataInfo.getImplantJson()); + String filePath = implantJsonObject.getString("folderPath"); + filePath = storageDirectory + "/" + filePath + "/" + edDataInfo.getDataName(); + dataPathArr.add(filePath); + } + } + + Map> result = new HashMap<>(); + result.put("urlArr", dataPathArr); + + return ElectromagneticResultUtil.success(result); } From 55ad1665b90bc2d6ae01ab9ac0f60726a0066d41 Mon Sep 17 00:00:00 2001 From: sxlong Date: Wed, 20 Nov 2024 17:40:21 +0800 Subject: [PATCH 6/7] =?UTF-8?q?1.=E5=A2=9E=E5=8A=A0=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E4=B8=8A=E4=BC=A0=E6=97=B6=E5=B0=86=E6=96=87=E4=BB=B6=E9=87=8D?= =?UTF-8?q?=E5=91=BD=E5=90=8D=E5=B9=B6=E5=AD=98=E5=88=B0=E7=BC=93=E5=AD=98?= =?UTF-8?q?=E7=9B=AE=E5=BD=95=E5=86=8D=E7=A7=BB=E5=8A=A8=E7=9A=84=E9=80=BB?= =?UTF-8?q?=E8=BE=91=EF=BC=9B2.=E5=A2=9E=E5=8A=A0=E7=9B=B8=E5=85=B3?= =?UTF-8?q?=E6=8E=A5=E5=8F=A3=E4=B8=AD=E6=89=B9=E9=87=8F=E4=B8=8A=E4=BC=A0?= =?UTF-8?q?=E6=97=B6=E9=97=B4=E5=92=8C=E4=BF=9D=E5=AD=98=E7=8A=B6=E6=80=81?= =?UTF-8?q?=E5=AD=97=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); + } // 如果文件上传成功,返回成功消息 From 66acedc8b96ba2fb5ab923e5f71a1ef98a21beb6 Mon Sep 17 00:00:00 2001 From: "578646533@qq.com" <123456qq> Date: Thu, 21 Nov 2024 09:31:53 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=AF=BC=E5=85=A5?= =?UTF-8?q?=E5=92=8C=E5=AF=BC=E5=87=BA=E6=AD=A5=E9=AA=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/manage/facade/EDDataFacade.java | 14 +++++++++ .../service/facade/EDDataFacadeImpl.java | 30 +++++++++++++++++++ 2 files changed, 44 insertions(+) diff --git a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java index 319e92a..7f7f61a 100644 --- a/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java +++ b/facade/src/main/java/com/electromagnetic/industry/software/data/manage/facade/EDDataFacade.java @@ -52,4 +52,18 @@ public interface EDDataFacade { */ ElectromagneticResult>> download(EDDataRequest request); + /** + * 导出 + * @param request + * @return + */ + ElectromagneticResult batchExport(EDDataRequest request); + + /** + * 导入 + * @param request + * @return + */ + ElectromagneticResult batchImport(EDDataRequest request); + } 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 5aca09a..80e7a06 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 @@ -347,6 +347,36 @@ public class EDDataFacadeImpl implements EDDataFacade { return ElectromagneticResultUtil.success(result); } + /** + * 导出 + * @param request + * @return + */ + @Override + public ElectromagneticResult batchExport(EDDataRequest request) { + //1、根据用户选择层级树编码查出所有文件和文件夹list + //2、循环list将每个文件复制到新建目录并进行重命名,命名规则:目录树编码+,+文件夹编码(有则填写无则为空)+,+文件编码 + //3、打包新建为zip,并根据生产下载地址(域名+文件路径+文件) + //4、返回前端下载的地址 + return null; + } + + /** + * 导入 + * @param request + * @return + */ + @Override + public ElectromagneticResult batchImport(EDDataRequest request) { + //1、上传文件到指定目录,并重命名 + //2、接下压缩包 + //3、扫码解压文件夹的所有文件 + //4、循环处理文件:读取文件名称,根据名称规则,进行数据库查询,匹配层级树、文件夹和文件是否跳过 + //5、如果不存在则新建文件记录 + //6、并移动文件到上传目录 + //7、处理完成返回成功 + return null; + } }