|
@@ -1,6 +1,7 @@
|
|
|
package org.springblade.business.service.impl;
|
|
|
|
|
|
import cn.hutool.core.util.ReflectUtil;
|
|
|
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
import org.springblade.business.entity.StandardFile;
|
|
@@ -200,53 +201,56 @@ public class PrivateStandardServiceImpl extends ServiceImpl<PrivateStandardMappe
|
|
|
//先删除文件
|
|
|
try {
|
|
|
List<StandardFile> standardFiles = standardFileService.listByIds(delFileIds);
|
|
|
- for (StandardFile standardFile : standardFiles) {
|
|
|
- this.deleteFile(standardFile.getId());
|
|
|
+ if(CollectionUtils.isNotEmpty(standardFiles)){
|
|
|
+ for (StandardFile standardFile : standardFiles) {
|
|
|
+ this.deleteFile(standardFile.getId());
|
|
|
+ }
|
|
|
}
|
|
|
//删除规范文件
|
|
|
- for (Long delId : delIds) {
|
|
|
- delete(delId);
|
|
|
+ if(CollectionUtils.isNotEmpty(delIds)){
|
|
|
+ for (Long delId : delIds) {
|
|
|
+ delete(delId);
|
|
|
+ }
|
|
|
}
|
|
|
} catch (Exception e) {
|
|
|
throw new ServiceException("Oss删除文件失败");
|
|
|
}
|
|
|
try {
|
|
|
+
|
|
|
// 文件索引计数器
|
|
|
int fileIndex = 0;
|
|
|
for (PrivateStandardDTO dto : data) {
|
|
|
// 获取当前对象需要的文件数量
|
|
|
int fileCount = dto.getFilesCount();
|
|
|
-
|
|
|
- // 为当前对象分配文件
|
|
|
- MultipartFile[] objectFiles = new MultipartFile[fileCount];
|
|
|
- for (int i = 0; i < fileCount; i++) {
|
|
|
- objectFiles[i] = allFiles[fileIndex++];
|
|
|
+ if(allFiles != null && allFiles.length > 0){
|
|
|
+ if(fileCount > 0 && fileIndex < allFiles.length){
|
|
|
+ dto.setFile(allFiles[fileIndex++]);
|
|
|
+ }
|
|
|
+ //先上传文件,上传成功在执行添加
|
|
|
+ if(dto.getFile() != null){
|
|
|
+ MultipartFile file = dto.getFile();
|
|
|
+ StandardFile standardFile = new StandardFile();
|
|
|
+ standardFile.setId(SnowFlakeUtil.getId());
|
|
|
+ standardFile.setStandardId(dto.getId());
|
|
|
+ standardFile.setCreateUser(user.getUserId());
|
|
|
+ String originalFilename = file.getOriginalFilename();
|
|
|
+ standardFile.setFileName(originalFilename);
|
|
|
+ originalFilename = "standard/" + dto.getId() + "|" + originalFilename;
|
|
|
+ MockMultipartFile multipartFile = new MockMultipartFile("file", originalFilename, "application/pdf", file.getInputStream());
|
|
|
+
|
|
|
+ //Oss上传 传特殊文件名 在oss中做特殊路径处理
|
|
|
+ BladeFile bladeFile = newIOSSClient.uploadFileByInputStream(multipartFile);
|
|
|
+ standardFile.setStandardFileUrl(bladeFile.getLink());
|
|
|
+
|
|
|
+ //添加新文件
|
|
|
+ standardFileService.save(standardFile);
|
|
|
+ }
|
|
|
}
|
|
|
- dto.setFiles(objectFiles);
|
|
|
|
|
|
- //先上传文件,上传成功在执行添加
|
|
|
- List<StandardFile> standardFiles = new ArrayList<>();
|
|
|
- for (MultipartFile file : dto.getFiles()) {
|
|
|
- StandardFile standardFile = new StandardFile();
|
|
|
- standardFile.setId(SnowFlakeUtil.getId());
|
|
|
- standardFile.setStandardId(dto.getId());
|
|
|
- standardFile.setCreateUser(user.getUserId());
|
|
|
- String originalFilename = file.getOriginalFilename();
|
|
|
- standardFile.setFileName(originalFilename);
|
|
|
- originalFilename = "standard/" + dto.getId() + "|" + originalFilename;
|
|
|
- MockMultipartFile multipartFile = new MockMultipartFile("file", originalFilename, "application/pdf", file.getInputStream());
|
|
|
- //Oss上传 传特殊文件名 在oss中做特殊路径处理
|
|
|
- BladeFile bladeFile = newIOSSClient.uploadFileByInputStream(multipartFile);
|
|
|
|
|
|
- standardFile.setStandardFileUrl(bladeFile.getLink());
|
|
|
- standardFiles.add(standardFile);
|
|
|
- }
|
|
|
|
|
|
//创建数据
|
|
|
PrivateStandard privateStandard = BeanUtil.copyProperties(dto, PrivateStandard.class);
|
|
|
-
|
|
|
- //添加新文件
|
|
|
- standardFileService.saveBatch(standardFiles);
|
|
|
//修改
|
|
|
baseMapper.updateById(privateStandard);
|
|
|
return true;
|