|
@@ -11,6 +11,10 @@ import com.hssx.cloudmodel.mapper.*;
|
|
import com.hssx.cloudmodel.service.MouldFileService;
|
|
import com.hssx.cloudmodel.service.MouldFileService;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
import com.hssx.cloudmodel.util.*;
|
|
import com.hssx.cloudmodel.util.*;
|
|
|
|
+import lombok.extern.slf4j.Slf4j;
|
|
|
|
+import net.lingala.zip4j.core.ZipFile;
|
|
|
|
+import net.lingala.zip4j.model.ZipParameters;
|
|
|
|
+import net.lingala.zip4j.util.Zip4jConstants;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.stereotype.Service;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
@@ -41,6 +45,7 @@ import java.util.zip.ZipOutputStream;
|
|
* @since 2019-08-07
|
|
* @since 2019-08-07
|
|
*/
|
|
*/
|
|
@Service
|
|
@Service
|
|
|
|
+@Slf4j
|
|
public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile> implements MouldFileService {
|
|
public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile> implements MouldFileService {
|
|
|
|
|
|
|
|
|
|
@@ -538,10 +543,11 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
|
|
if (null != userVO.getIds()) {
|
|
if (null != userVO.getIds()) {
|
|
List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(userVO.getIds());
|
|
List<Integer> ids = ListUtil.convertIntegerIdsArrayToList(userVO.getIds());
|
|
List<MouldFile> mouldFiles = new ArrayList<>();
|
|
List<MouldFile> mouldFiles = new ArrayList<>();
|
|
|
|
+ List<String> newFolders = new ArrayList<>();
|
|
for (Integer id : ids) {
|
|
for (Integer id : ids) {
|
|
Mould mould = mouldMapper.selectById(id);
|
|
Mould mould = mouldMapper.selectById(id);
|
|
if (0 == userVO.getDwgType()) {
|
|
if (0 == userVO.getDwgType()) {
|
|
- mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3));
|
|
|
|
|
|
+ mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3).ne("blong_type", 4));
|
|
} else if (1 == userVO.getDwgType()) {
|
|
} else if (1 == userVO.getDwgType()) {
|
|
//模具2D
|
|
//模具2D
|
|
mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3).isNull("part_id").eq("dwg_type", 0).eq("blong_type", 0));
|
|
mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3).isNull("part_id").eq("dwg_type", 0).eq("blong_type", 0));
|
|
@@ -558,9 +564,59 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
|
|
mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3).eq("blong_type", 3));
|
|
mouldFiles = mouldFileMapper.selectList(new QueryWrapper<MouldFile>().eq("model_id", id).eq("state", 3).eq("blong_type", 3));
|
|
}
|
|
}
|
|
// feedBackDirectMultiDownload(request, response, downloadPath, mould, mouldFiles, path);
|
|
// feedBackDirectMultiDownload(request, response, downloadPath, mould, mouldFiles, path);
|
|
- String filePath = this.download(downloadPath, mould, mouldFiles, path, currentUser);
|
|
|
|
- msg.data = filePath;
|
|
|
|
|
|
+ String folderPath = path + mould.getModelNo() + mould.getModelName();
|
|
|
|
+ List<String> sourceFileUrls = new ArrayList<>();
|
|
|
|
+ for (MouldFile mouldFile : mouldFiles) {
|
|
|
|
+ sourceFileUrls.add(path.substring(0, path.length() - "/upload/".length()) + mouldFile.getFileUrl());
|
|
|
|
+ //添加下载动态
|
|
|
|
+ MouldOperationDynamics mod = new MouldOperationDynamics();
|
|
|
|
+ mod.setApplicantId(mouldFile.getUplodtorId());
|
|
|
|
+ mod.setApplicantName(mouldFile.getUploadtor());
|
|
|
|
+ mod.setFileName(mouldFile.getFileName());
|
|
|
|
+ mod.setOperatorId(currentUser.getId());
|
|
|
|
+ mod.setOperatorName(currentUser.getUsername());
|
|
|
|
+ mod.setContent(Constant.DOWNLOAD);
|
|
|
|
+ mod.setFileId(mouldFile.getId());
|
|
|
|
+ mod.setMouldId(mould.getId());
|
|
|
|
+ mod.setBelongType(mouldFile.getBlongType());
|
|
|
|
+ mouldOperationDynamicsMapper.insert(mod);
|
|
|
|
+ }
|
|
|
|
+ if (sourceFileUrls.size() > 0) {
|
|
|
|
+ String folder = FileCopyToFolderUtil.copy(sourceFileUrls, folderPath);
|
|
|
|
+ newFolders.add(folder);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ // 生成的压缩文件
|
|
|
|
+ ZipFile zipFile = null;
|
|
|
|
+ SimpleDateFormat dateSdf2 = new SimpleDateFormat("yyyy年MM月dd+HH时mm分ss秒");
|
|
|
|
+ String fileName = dateSdf2.format(new Date()) + ".zip";
|
|
|
|
+ try {
|
|
|
|
+ zipFile = new ZipFile(path + fileName);
|
|
|
|
+ ZipParameters parameters = new ZipParameters();
|
|
|
|
+ // 压缩方式
|
|
|
|
+ parameters.setCompressionMethod(Zip4jConstants.COMP_DEFLATE);
|
|
|
|
+ // 压缩级别
|
|
|
|
+ parameters.setCompressionLevel(Zip4jConstants.DEFLATE_LEVEL_NORMAL);
|
|
|
|
+ // 要打包的文件夹
|
|
|
|
+ if(newFolders.size()>0){
|
|
|
|
+ for (String newFolder : newFolders) {
|
|
|
|
+ zipFile.addFolder(newFolder, parameters);
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ msg.data = "/upload/"+fileName;
|
|
|
|
+// File[] fs = currentFile.listFiles();
|
|
|
|
+// // 遍历test文件夹下所有的文件、文件夹
|
|
|
|
+// for (File f : fs) {
|
|
|
|
+// if (f.isDirectory()) {
|
|
|
|
+// zipFile.addFolder(f.getPath(), parameters);
|
|
|
|
+// } else {
|
|
|
|
+// zipFile.addFile(f, parameters);
|
|
|
|
+// }
|
|
|
|
+// }
|
|
|
|
+ } catch (Exception e) {
|
|
|
|
+ e.printStackTrace();
|
|
}
|
|
}
|
|
|
|
+// String filePath = this.download(downloadPath, mould, mouldFiles, path, currentUser);
|
|
}
|
|
}
|
|
return msg;
|
|
return msg;
|
|
}
|
|
}
|
|
@@ -754,6 +810,7 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
|
|
//构造最终压缩包的输出流
|
|
//构造最终压缩包的输出流
|
|
zipStream = new ZipOutputStream(new FileOutputStream(zipFile));
|
|
zipStream = new ZipOutputStream(new FileOutputStream(zipFile));
|
|
if (mouldFiles.size() > 0) {
|
|
if (mouldFiles.size() > 0) {
|
|
|
|
+ log.info("mouldFiles------------->" + mouldFiles);
|
|
for (int i = 0; i < mouldFiles.size(); i++) {
|
|
for (int i = 0; i < mouldFiles.size(); i++) {
|
|
//添加下载动态
|
|
//添加下载动态
|
|
MouldOperationDynamics mod = new MouldOperationDynamics();
|
|
MouldOperationDynamics mod = new MouldOperationDynamics();
|
|
@@ -768,6 +825,7 @@ public class MouldFileServiceImpl extends ServiceImpl<MouldFileMapper, MouldFile
|
|
mod.setBelongType(mouldFiles.get(i).getBlongType());
|
|
mod.setBelongType(mouldFiles.get(i).getBlongType());
|
|
mouldOperationDynamicsMapper.insert(mod);
|
|
mouldOperationDynamicsMapper.insert(mod);
|
|
File file = new File(oldFilePath.substring(0, oldFilePath.length() - "/upload/".length()) + mouldFiles.get(i).getFileUrl());
|
|
File file = new File(oldFilePath.substring(0, oldFilePath.length() - "/upload/".length()) + mouldFiles.get(i).getFileUrl());
|
|
|
|
+ log.info("file=========>" + oldFilePath.substring(0, oldFilePath.length() - "/upload/".length()) + mouldFiles.get(i).getFileUrl());
|
|
//将需要压缩的文件格式化为输入流
|
|
//将需要压缩的文件格式化为输入流
|
|
zipSource = new FileInputStream(file);
|
|
zipSource = new FileInputStream(file);
|
|
//压缩条目不是具体独立的文件,而是压缩包文件列表中的列表项,称为条目,就像索引一样
|
|
//压缩条目不是具体独立的文件,而是压缩包文件列表中的列表项,称为条目,就像索引一样
|