[feat] 新增文件转换

This commit is contained in:
hhyykk 2024-07-09 15:16:46 +08:00
parent 73156a9cfa
commit a25b771856
6 changed files with 62 additions and 4 deletions

View File

@ -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<FileDTO> fileDTOList) {
if (ObjectUtils.isNotEmpty(fileDTOList)) {
return JSON.toJSONString(fileDTOList);
}
return null;
}
/**
* JSON字符串转成文件数组
* @param fileJsonString JSON字符串
* @return 文件数组
*/
public static List<FileDTO> covertJSONStringToFile(String fileJsonString) {
if (ObjectUtils.isNotEmpty(fileJsonString)) {
return JSON.parseArray(fileJsonString, FileDTO.class);
}
return null;
}
}

View File

@ -3,6 +3,8 @@ package cn.iocoder.yudao.framework.common.util.object;
import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.bean.BeanUtil;
import cn.iocoder.yudao.framework.common.pojo.PageResult; import cn.iocoder.yudao.framework.common.pojo.PageResult;
import cn.iocoder.yudao.framework.common.util.collection.CollectionUtils; 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.List;
import java.util.function.Consumer; import java.util.function.Consumer;
@ -58,5 +60,4 @@ public class BeanUtils {
} }
return new PageResult<>(list, source.getTotal()); return new PageResult<>(list, source.getTotal());
} }
} }

View File

@ -1,5 +1,7 @@
package cn.iocoder.yudao.module.pms.controller.admin.project; 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 cn.iocoder.yudao.module.pms.dal.dataobject.project.ProjectDetailDO;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
@ -70,7 +72,11 @@ public class ProjectController {
@PreAuthorize("@ss.hasPermission('pms:project:query')") @PreAuthorize("@ss.hasPermission('pms:project:query')")
public CommonResult<ProjectRespDetailVO> getProject(@RequestParam("id") Long id) { public CommonResult<ProjectRespDetailVO> getProject(@RequestParam("id") Long id) {
ProjectDetailDO project = projectService.getProjectDetail(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") @GetMapping("/page")

View File

@ -22,7 +22,6 @@ import java.util.List;
@ExcelIgnoreUnannotated @ExcelIgnoreUnannotated
public class ProjectRespDetailVO { public class ProjectRespDetailVO {
@Schema(description = "id", example = "11213") @Schema(description = "id", example = "11213")
// @ExcelProperty("id")
private Long id; private Long id;
@Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四") @Schema(description = "名称", requiredMode = Schema.RequiredMode.REQUIRED, example = "李四")

View File

@ -1,7 +1,10 @@
package cn.iocoder.yudao.module.pms.dal.dataobject.project; package cn.iocoder.yudao.module.pms.dal.dataobject.project;
import cn.iocoder.yudao.framework.common.pojo.FileDTO;
import lombok.Data; import lombok.Data;
import java.util.List;
/** /**
* @author hhyykk * @author hhyykk
* @description * @description

View File

@ -1,7 +1,9 @@
package cn.iocoder.yudao.module.pms.service.project; package cn.iocoder.yudao.module.pms.service.project;
import cn.iocoder.yudao.framework.common.enums.ProcessStatusEnum; 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.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.common.util.object.BeanUtils;
import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils; import cn.iocoder.yudao.framework.ip.core.utils.AreaUtils;
import cn.iocoder.yudao.module.bpm.api.task.BpmProcessInstanceApi; 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.dataobject.project.ProjectDetailDO;
import cn.iocoder.yudao.module.pms.dal.mysql.project.ProjectMapper; import cn.iocoder.yudao.module.pms.dal.mysql.project.ProjectMapper;
import cn.iocoder.yudao.module.pms.enums.ProjectTypeEnum; import cn.iocoder.yudao.module.pms.enums.ProjectTypeEnum;
import com.alibaba.fastjson.JSON;
import jakarta.annotation.Resource; import jakarta.annotation.Resource;
import org.apache.commons.lang3.ObjectUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter; 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.framework.common.exception.util.ServiceExceptionUtil.exception;
import static cn.iocoder.yudao.module.pms.enums.ErrorCodeConstants.PROJECT_NOT_EXISTS; 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) { public Long createProject(Long loginUserId, ProjectSaveReqVO createReqVO) {
// 插入 // 插入
ProjectDO project = BeanUtils.toBean(createReqVO, ProjectDO.class); ProjectDO project = BeanUtils.toBean(createReqVO, ProjectDO.class);
project.setReviewFileUrl(FileUtils.covertFileToJSONString(createReqVO.getReviewFileUrl()));
project.setWinFileUrl(FileUtils.covertFileToJSONString(createReqVO.getWinFileUrl()));
projectMapper.insert(project); projectMapper.insert(project);
// 启动流程 // 启动流程
if (createReqVO.getId() == null) { if (createReqVO.getId() == null) {
@ -70,6 +78,8 @@ public class ProjectServiceImpl implements ProjectService {
} }
// 更新 // 更新
ProjectDO updateObj = BeanUtils.toBean(updateReqVO, ProjectDO.class); ProjectDO updateObj = BeanUtils.toBean(updateReqVO, ProjectDO.class);
updateObj.setReviewFileUrl(FileUtils.covertFileToJSONString(updateReqVO.getReviewFileUrl()));
updateObj.setWinFileUrl(FileUtils.covertFileToJSONString(updateReqVO.getWinFileUrl()));
projectMapper.updateById(updateObj); projectMapper.updateById(updateObj);
} }
@ -147,5 +157,4 @@ public class ProjectServiceImpl implements ProjectService {
return prefix + String.format("%04d", lastNumber); return prefix + String.format("%04d", lastNumber);
} }
} }
} }