From a25b7718565dffe7e0aee8196f56995499da1f24 Mon Sep 17 00:00:00 2001 From: hhyykk Date: Tue, 9 Jul 2024 15:16:46 +0800 Subject: [PATCH] =?UTF-8?q?[feat]=20=E6=96=B0=E5=A2=9E=E6=96=87=E4=BB=B6?= =?UTF-8?q?=E8=BD=AC=E6=8D=A2?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../framework/common/util/file/FileUtils.java | 40 +++++++++++++++++++ .../common/util/object/BeanUtils.java | 3 +- .../admin/project/ProjectController.java | 8 +++- .../admin/project/vo/ProjectRespDetailVO.java | 1 - .../dataobject/project/ProjectDetailDO.java | 3 ++ .../service/project/ProjectServiceImpl.java | 11 ++++- 6 files changed, 62 insertions(+), 4 deletions(-) create mode 100644 yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/file/FileUtils.java diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/file/FileUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/file/FileUtils.java new file mode 100644 index 000000000..e220ec9e9 --- /dev/null +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/file/FileUtils.java @@ -0,0 +1,40 @@ +package cn.iocoder.yudao.framework.common.util.file; + +import cn.iocoder.yudao.framework.common.pojo.FileDTO; +import com.alibaba.fastjson.JSON; +import org.apache.commons.lang3.ObjectUtils; + +import java.util.List; + +/** + * @author hhyykk + * @description + * @date 2024/7/9 + */ +public class FileUtils { + + /** + * 文件数组转成JSON字符串 + * @param fileDTOList 文件 + * @return JSON字符串 + */ + public static String covertFileToJSONString(List fileDTOList) { + if (ObjectUtils.isNotEmpty(fileDTOList)) { + return JSON.toJSONString(fileDTOList); + } + return null; + } + + /** + * JSON字符串转成文件数组 + * @param fileJsonString JSON字符串 + * @return 文件数组 + */ + public static List covertJSONStringToFile(String fileJsonString) { + if (ObjectUtils.isNotEmpty(fileJsonString)) { + return JSON.parseArray(fileJsonString, FileDTO.class); + } + return null; + } + +} diff --git a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java index 720b56510..67d60dd83 100644 --- a/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java +++ b/yudao-framework/yudao-common/src/main/java/cn/iocoder/yudao/framework/common/util/object/BeanUtils.java @@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.common.util.object; import cn.hutool.core.bean.BeanUtil; import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; +import org.springframework.beans.BeanWrapper; +import org.springframework.beans.BeanWrapperImpl; import java.util.List; import java.util.function.Consumer; @@ -58,5 +60,4 @@ public class BeanUtils { } return new PageResult<>(list, source.getTotal()); } - } \ No newline at end of file diff --git a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/ProjectController.java b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/ProjectController.java index 37336aba7..4516fb40b 100644 --- a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/ProjectController.java +++ b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/ProjectController.java @@ -1,5 +1,7 @@ package cn.iocoder.yudao.module.pms.controller.admin.project; +import cn.iocoder.yudao.framework.common.pojo.FileDTO; +import cn.iocoder.yudao.framework.common.util.file.FileUtils; import cn.iocoder.yudao.module.pms.dal.dataobject.project.ProjectDetailDO; import org.springframework.web.bind.annotation.*; import jakarta.annotation.Resource; @@ -70,7 +72,11 @@ public class ProjectController { @PreAuthorize("@ss.hasPermission('pms:project:query')") public CommonResult getProject(@RequestParam("id") Long id) { ProjectDetailDO project = projectService.getProjectDetail(id); - return success(BeanUtils.toBean(project, ProjectRespDetailVO.class)); + ProjectRespDetailVO vo = new ProjectRespDetailVO(); + org.springframework.beans.BeanUtils.copyProperties(project, vo, "reviewFileUrl", "winFileUrl"); + vo.setReviewFileUrl(FileUtils.covertJSONStringToFile(project.getReviewFileUrl())); + vo.setWinFileUrl(FileUtils.covertJSONStringToFile(project.getWinFileUrl())); + return success(vo); } @GetMapping("/page") diff --git a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/vo/ProjectRespDetailVO.java b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/vo/ProjectRespDetailVO.java index 8c394bff9..e987684b6 100644 --- a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/vo/ProjectRespDetailVO.java +++ b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/controller/admin/project/vo/ProjectRespDetailVO.java @@ -22,7 +22,6 @@ import java.util.List; @ExcelIgnoreUnannotated public class ProjectRespDetailVO { @Schema(description = "id", example = "11213") -// @ExcelProperty("id") private Long id; @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") diff --git a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/project/ProjectDetailDO.java b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/project/ProjectDetailDO.java index b847a4a7b..9e32a72ae 100644 --- a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/project/ProjectDetailDO.java +++ b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/dal/dataobject/project/ProjectDetailDO.java @@ -1,7 +1,10 @@ package cn.iocoder.yudao.module.pms.dal.dataobject.project; +import cn.iocoder.yudao.framework.common.pojo.FileDTO; import lombok.Data; +import java.util.List; + /** * @author hhyykk * @description diff --git a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/project/ProjectServiceImpl.java b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/project/ProjectServiceImpl.java index dec5e5ff3..4f73341ea 100644 --- a/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/project/ProjectServiceImpl.java +++ b/yudao-module-pms/yudao-module-pms-biz/src/main/java/cn/iocoder/yudao/module/pms/service/project/ProjectServiceImpl.java @@ -1,7 +1,9 @@ package cn.iocoder.yudao.module.pms.service.project; import cn.iocoder.yudao.framework.common.enums.ProcessStatusEnum; +import cn.iocoder.yudao.framework.common.pojo.FileDTO; import cn.iocoder.yudao.framework.common.pojo.PageResult; +import cn.iocoder.yudao.framework.common.util.file.FileUtils; import cn.iocoder.yudao.framework.common.util.object.BeanUtils; import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; @@ -12,12 +14,15 @@ import cn.iocoder.yudao.module.pms.dal.dataobject.project.ProjectDO; import cn.iocoder.yudao.module.pms.dal.dataobject.project.ProjectDetailDO; import cn.iocoder.yudao.module.pms.dal.mysql.project.ProjectMapper; import cn.iocoder.yudao.module.pms.enums.ProjectTypeEnum; +import com.alibaba.fastjson.JSON; import jakarta.annotation.Resource; +import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import org.springframework.validation.annotation.Validated; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstants.PROJECT_NOT_EXISTS; @@ -45,6 +50,9 @@ public class ProjectServiceImpl implements ProjectService { public Long createProject(Long loginUserId, ProjectSaveReqVO createReqVO) { // 插入 ProjectDO project = BeanUtils.toBean(createReqVO, ProjectDO.class); + + project.setReviewFileUrl(FileUtils.covertFileToJSONString(createReqVO.getReviewFileUrl())); + project.setWinFileUrl(FileUtils.covertFileToJSONString(createReqVO.getWinFileUrl())); projectMapper.insert(project); // 启动流程 if (createReqVO.getId() == null) { @@ -70,6 +78,8 @@ public class ProjectServiceImpl implements ProjectService { } // 更新 ProjectDO updateObj = BeanUtils.toBean(updateReqVO, ProjectDO.class); + updateObj.setReviewFileUrl(FileUtils.covertFileToJSONString(updateReqVO.getReviewFileUrl())); + updateObj.setWinFileUrl(FileUtils.covertFileToJSONString(updateReqVO.getWinFileUrl())); projectMapper.updateById(updateObj); } @@ -147,5 +157,4 @@ public class ProjectServiceImpl implements ProjectService { return prefix + String.format("%04d", lastNumber); } } - } \ No newline at end of file