diff --git a/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java b/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java index cab6c67..e7381de 100644 --- a/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java +++ b/bonus-admin/src/main/java/com/bonus/web/controller/archive/FileManagementController.java @@ -6,7 +6,12 @@ import com.bonus.common.core.controller.BaseController; import com.bonus.common.core.domain.R; import com.bonus.common.core.page.TableDataInfo; import com.bonus.common.enums.OperaType; +import com.bonus.common.utils.SecurityUtils; +import com.bonus.common.utils.bean.FileDto; +import com.bonus.common.utils.file.FileUploadUtils; +import com.bonus.common.utils.file.FileUtils; import com.bonus.web.domain.DaKyProFilesContentsDto; +import com.bonus.web.domain.FilesClassifyNameStandardDto; import com.bonus.web.domain.ProjectDto; import com.bonus.web.domain.vo.DaKyProFilesContentsVo; import com.bonus.web.mapper.FileManageMapper; @@ -17,10 +22,13 @@ import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; +import org.springframework.web.multipart.MultipartFile; import java.util.ArrayList; import java.util.List; +import static com.bonus.common.utils.SecurityUtils.getLoginUser; + /** * @Author:liang.chao * @Date:2025/9/11 - 13:29 @@ -107,7 +115,7 @@ public class FileManagementController extends BaseController { @PostMapping("addFileManageRight") @SysLog(title = "新增右侧档案树", module = "档案管理->档案目录管理", businessType = OperaType.INSERT, details = "新增右侧档案树", logType = 1) @RequiresPermissions("file:manage:add") - public R saveArchivalCatalogue(@ModelAttribute @Validated DaKyProFilesContentsVo dto) { + public R saveArchivalCatalogue(@ModelAttribute @Validated DaKyProFilesContentsVo dto, @RequestParam("file") MultipartFile file) { try { if (dto.getParentId() == null) { return R.fail("父级有误"); @@ -115,6 +123,35 @@ public class FileManagementController extends BaseController { if (dto.getLevel() == null) { return R.fail("级别有误"); } + // 查询档案名称是否重复 + Integer i = fileManageMapper.selectFileManage(dto); + if (i > 0) { + return R.fail("档案名称重复"); + } + if (file != null && !file.isEmpty()) { + // 判断是否包含文件命名规范 + List list = fileManageMapper.getFilesClassifyNameStandard(); + for (FilesClassifyNameStandardDto s : list) { + if (s.getStandardType().equals("1") && !file.getOriginalFilename().contains(s.getStandardName())) { + return R.fail("文件命名需包含" + s.getStandardName()); + } else if (s.getStandardType().equals("0") && file.getOriginalFilename().contains(s.getStandardName())) { + return R.fail("文件命名不能包含" + s.getStandardName()); + } + } + FileDto upload = FileUtils.upload(file); + dto.setFilePath(upload.getFilePath()); + dto.setFileSize(upload.getFileSize()); + dto.setFileName(upload.getFileName()); + dto.setFileType(upload.getFileType()); + dto.setSuffixName(upload.getSuffixName()); + dto.setUpdateUserId(getLoginUser().getUserId()); + dto.setUpdateUserName(getLoginUser().getUsername()); + dto.setCreateUserId(getLoginUser().getUserId()); + dto.setCreateUserName(getLoginUser().getUsername()); + fileManageMapper.saveFileSource(dto); + } else if (file == null || file.isEmpty()) { + return R.fail("请上传文件"); + } return fileManageService.saveFileManage(dto); } catch (Exception e) { log.error(e.toString(), e); @@ -152,8 +189,32 @@ public class FileManagementController extends BaseController { @PostMapping("updateFileManageRight") @SysLog(title = "修改档案", module = "档案管理->档案目录管理", businessType = OperaType.UPDATE, details = "修改档案", logType = 1) @RequiresPermissions("file:manage:update") - public R updateFileManage(@ModelAttribute @Validated DaKyProFilesContentsVo dto) { + public R updateFileManage(@ModelAttribute @Validated DaKyProFilesContentsVo dto, @RequestParam("file") MultipartFile file) { try { + dto.setUpdateUserId(getLoginUser().getUserId()); + dto.setUpdateUserName(getLoginUser().getUsername()); + Integer i = fileManageMapper.selectFileManage(dto); + if (i > 0) { + return R.fail("档案名称重复"); + } + if (file != null && !file.isEmpty()) { + // 判断是否包含文件命名规范 + List list = fileManageMapper.getFilesClassifyNameStandard(); + for (FilesClassifyNameStandardDto s : list) { + if (s.getStandardType().equals("1") && !file.getOriginalFilename().contains(s.getStandardName())) { + return R.fail("文件命名需包含" + s.getStandardName()); + } else if (s.getStandardType().equals("0") && file.getOriginalFilename().contains(s.getStandardName())) { + return R.fail("文件命名不能包含" + s.getStandardName()); + } + } + FileDto upload = FileUtils.upload(file); + dto.setFilePath(upload.getFilePath()); + dto.setFileSize(upload.getFileSize()); + dto.setFileName(upload.getFileName()); + dto.setFileType(upload.getFileType()); + dto.setSuffixName(upload.getSuffixName()); + fileManageMapper.updateFileSource(dto); + } return fileManageService.updateFileManage(dto); } catch (Exception e) { log.error(e.toString(), e); diff --git a/bonus-admin/src/main/java/com/bonus/web/domain/DaKyProFilesContentsDto.java b/bonus-admin/src/main/java/com/bonus/web/domain/DaKyProFilesContentsDto.java index 63472f7..42157c4 100644 --- a/bonus-admin/src/main/java/com/bonus/web/domain/DaKyProFilesContentsDto.java +++ b/bonus-admin/src/main/java/com/bonus/web/domain/DaKyProFilesContentsDto.java @@ -125,6 +125,10 @@ public class DaKyProFilesContentsDto { * 文件名称 */ private String fileName; + /** + * 文件大小 + */ + private String fileSize; /** * 文件类型 */ diff --git a/bonus-admin/src/main/java/com/bonus/web/domain/vo/DaKyProFilesContentsVo.java b/bonus-admin/src/main/java/com/bonus/web/domain/vo/DaKyProFilesContentsVo.java index 5669628..c6b39a5 100644 --- a/bonus-admin/src/main/java/com/bonus/web/domain/vo/DaKyProFilesContentsVo.java +++ b/bonus-admin/src/main/java/com/bonus/web/domain/vo/DaKyProFilesContentsVo.java @@ -127,6 +127,15 @@ public class DaKyProFilesContentsVo { * 文件类型 */ private String fileType; + /** + * 文件大小 + */ + private String fileSize; + + /** + * 文件后缀名 + */ + private String suffixName; /** * 资源类型 */ diff --git a/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java b/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java index ccb5e2d..5600c97 100644 --- a/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java +++ b/bonus-admin/src/main/java/com/bonus/web/mapper/FileManageMapper.java @@ -1,6 +1,7 @@ package com.bonus.web.mapper; import com.bonus.web.domain.DaKyProFilesContentsDto; +import com.bonus.web.domain.FilesClassifyNameStandardDto; import com.bonus.web.domain.vo.DaKyProFilesContentsVo; import org.apache.ibatis.annotations.Mapper; @@ -24,7 +25,6 @@ public interface FileManageMapper { Integer updateFileManage(DaKyProFilesContentsDto dto); Integer updateFileManage(DaKyProFilesContentsVo dto); - Integer updateFileSource(DaKyProFilesContentsDto dto); Integer updateFileSource(DaKyProFilesContentsVo dto); Integer delFileSource(DaKyProFilesContentsDto dto); @@ -34,7 +34,7 @@ public interface FileManageMapper { Integer selectFileManage(DaKyProFilesContentsDto dto); Integer selectFileManage(DaKyProFilesContentsVo dto); - List getFilesClassifyNameStandard(); + List getFilesClassifyNameStandard(); Integer updateIntegrityStatus(DaKyProFilesContentsDto dto); diff --git a/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java b/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java index df83745..f38341f 100644 --- a/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java +++ b/bonus-admin/src/main/java/com/bonus/web/service/impl/FileManageServiceImpl.java @@ -64,25 +64,6 @@ public class FileManageServiceImpl implements FileManageService { @Override public R saveFileManage(DaKyProFilesContentsVo dto) { - // 查询档案名称是否重复 - Integer i = fileManageMapper.selectFileManage(dto); - if (i > 0) { - return R.fail("档案名称重复"); - } - dto.setCreateUserId(getLoginUser().getUserId()); - dto.setCreateUserName(getLoginUser().getUsername()); - dto.setUpdateUserId(SecurityUtils.getLoginUser().getUserId()); - dto.setUpdateUserName(SecurityUtils.getLoginUser().getUsername()); - if (StringUtils.isNotBlank(dto.getFilePath())) { - // 判断是否包含文件命名规范 - List list = fileManageMapper.getFilesClassifyNameStandard(); - for (String s : list) { - if (!dto.getFilePath().contains(s)) { - return R.fail("文件命名不符合规范"); - } - } - fileManageMapper.saveFileSource(dto); - } String uuid32 = UUID.randomUUID().toString().replace("-", "").toLowerCase(); dto.setId(uuid32); return R.ok(fileManageMapper.saveFileManage(dto)); @@ -101,16 +82,6 @@ public class FileManageServiceImpl implements FileManageService { @Override public R updateFileManage(DaKyProFilesContentsVo dto) { - dto.setUpdateUserId(getLoginUser().getUserId()); - dto.setUpdateUserName(getLoginUser().getUsername()); - Integer i = fileManageMapper.selectFileManage(dto); - if (i > 0) { - return R.fail("档案名称重复"); - } - fileManageMapper.updateFileSource(dto); - if (StringUtils.isBlank(dto.getFilePath())) { - dto.setId(null); - } return R.ok(fileManageMapper.updateFileManage(dto)); } diff --git a/bonus-admin/src/main/resources/mapper/FileManageMapper.xml b/bonus-admin/src/main/resources/mapper/FileManageMapper.xml index 30b971e..a115f7c 100644 --- a/bonus-admin/src/main/resources/mapper/FileManageMapper.xml +++ b/bonus-admin/src/main/resources/mapper/FileManageMapper.xml @@ -99,6 +99,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" source_file_name = #{sourceFileName}, file_name = #{fileName}, file_type = #{fileType}, + file_size = #{fileSize}, source_type = #{sourceType}, update_user_id = #{updateUserId}, update_user_name = #{updateUserName}, @@ -177,14 +178,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and id != #{id} - + + diff --git a/bonus-admin/src/main/resources/mapper/FilesClassifyNameStandardMapper.xml b/bonus-admin/src/main/resources/mapper/FilesClassifyNameStandardMapper.xml index be0699e..35105ae 100644 --- a/bonus-admin/src/main/resources/mapper/FilesClassifyNameStandardMapper.xml +++ b/bonus-admin/src/main/resources/mapper/FilesClassifyNameStandardMapper.xml @@ -51,7 +51,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"