|
@@ -19,6 +19,8 @@ import com.spire.xls.collections.PicturesCollection;
|
|
|
import com.spire.xls.core.spreadsheet.HTMLOptions;
|
|
|
import io.swagger.annotations.*;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import lombok.Data;
|
|
|
+import lombok.NoArgsConstructor;
|
|
|
import lombok.SneakyThrows;
|
|
|
import org.apache.commons.codec.Charsets;
|
|
|
import org.apache.commons.io.IOUtils;
|
|
@@ -52,6 +54,7 @@ import org.springblade.core.tool.api.R;
|
|
|
import org.springblade.core.tool.constant.BladeConstant;
|
|
|
import org.springblade.core.tool.utils.*;
|
|
|
import org.springblade.manager.bean.TableInfo;
|
|
|
+import org.springblade.manager.dto.AddBussFileSortDTO;
|
|
|
import org.springblade.manager.entity.*;
|
|
|
import org.springblade.manager.enums.ExecuteType;
|
|
|
import org.springblade.manager.mapper.ExcelTabMapper;
|
|
@@ -1710,7 +1713,7 @@ public class ExcelTabController extends BladeController {
|
|
|
/**
|
|
|
* 上传文件
|
|
|
*
|
|
|
- * @param file 文件
|
|
|
+ * @param files 文件
|
|
|
* @return ObjectStat
|
|
|
*/
|
|
|
@SneakyThrows
|
|
@@ -1725,40 +1728,43 @@ public class ExcelTabController extends BladeController {
|
|
|
@ApiImplicitParam(name = "classify", value = "classify", required = true),
|
|
|
@ApiImplicitParam(name = "projectId", value = "projectId", required = true)
|
|
|
})
|
|
|
- public R addBussFile(@RequestParam("file") MultipartFile file, Long pkeyId, String nodeId, String contractId, String projectId, String classify) {
|
|
|
-
|
|
|
+ public R addBussFile(@RequestParam("file") MultipartFile[] file, Long pkeyId, String nodeId, String contractId, String projectId, String classify) {
|
|
|
+ List<TableFile>list=new ArrayList<>();
|
|
|
+ for (int i = 0; i < file.length; i++) {
|
|
|
+ R<BladeFile> bladeFile = iossClient.addFileInfo(file[i]);
|
|
|
+ BladeFile bladeFile1 = bladeFile.getData();
|
|
|
+ TableFile tableFile = new TableFile();
|
|
|
+ String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
|
|
|
+ tableFile.setTabId(pkeyId + "");
|
|
|
+ tableFile.setName(file[i].getOriginalFilename());
|
|
|
+ tableFile.setType(2);
|
|
|
+ tableFile.setDomainUrl(bladeFile1.getLink());
|
|
|
+ tableFile.setIsDeleted(0);
|
|
|
+ tableFile.setExtension(fileExtension);
|
|
|
+
|
|
|
+ NewBladeFile newBladeFile = new NewBladeFile();
|
|
|
+ if (fileExtension.contains("xlsx")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("xls")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("docx")) {
|
|
|
+ newBladeFile = this.commonFileClient.wordToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
|
|
|
+ fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
|
|
|
+ newBladeFile = this.commonFileClient.pngOrJpgToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("pdf")) {
|
|
|
+ tableFile.setDomainPdfUrl(bladeFile1.getLink());
|
|
|
+ }
|
|
|
|
|
|
- R<BladeFile> bladeFile = iossClient.addFileInfo(file);
|
|
|
- BladeFile bladeFile1 = bladeFile.getData();
|
|
|
- TableFile tableFile = new TableFile();
|
|
|
- String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
|
|
|
- tableFile.setTabId(pkeyId + "");
|
|
|
- tableFile.setName(file.getOriginalFilename());
|
|
|
- tableFile.setType(2);
|
|
|
- tableFile.setDomainUrl(bladeFile1.getLink());
|
|
|
- tableFile.setIsDeleted(0);
|
|
|
- tableFile.setExtension(fileExtension);
|
|
|
-
|
|
|
- NewBladeFile newBladeFile = new NewBladeFile();
|
|
|
- if (fileExtension.contains("xlsx")) {
|
|
|
- newBladeFile = this.commonFileClient.excelToPdf(file);
|
|
|
- tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
- } else if (fileExtension.contains("xls")) {
|
|
|
- newBladeFile = this.commonFileClient.excelToPdf(file);
|
|
|
- tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
- } else if (fileExtension.contains("docx")) {
|
|
|
- newBladeFile = this.commonFileClient.wordToPdf(file);
|
|
|
- tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
- } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
|
|
|
- fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
|
|
|
- newBladeFile = this.commonFileClient.pngOrJpgToPdf(file);
|
|
|
- tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
- } else if (fileExtension.contains("pdf")) {
|
|
|
- tableFile.setDomainPdfUrl(bladeFile1.getLink());
|
|
|
+ tableFile.setStatus("finished");
|
|
|
+ list.add(tableFile);
|
|
|
}
|
|
|
|
|
|
- tableFile.setStatus("finished");
|
|
|
- tableFileService.save(tableFile);
|
|
|
+ tableFileService.saveBatch(list);
|
|
|
|
|
|
// 生成单个pdf
|
|
|
excelTabService.getBussPdfInfo(pkeyId);
|
|
@@ -1789,7 +1795,7 @@ public class ExcelTabController extends BladeController {
|
|
|
informationQueryClient.saveInfo(query);
|
|
|
}
|
|
|
excelTabService.getBussPdfs(nodeId, classify, contractId, projectId);
|
|
|
- return R.data(tableFile.getId());
|
|
|
+ return R.status(true);
|
|
|
}
|
|
|
|
|
|
@GetMapping("/show-buss-tab")
|
|
@@ -1810,6 +1816,47 @@ public class ExcelTabController extends BladeController {
|
|
|
excelTabService.getBussPdfInfo(pkeyId);
|
|
|
//重新生成PDF修改queryInfo
|
|
|
excelTabService.getBussPdfs(nodeId, classify, wbsTreeContract.getContractId(), wbsTreeContract.getProjectId());
|
|
|
+
|
|
|
+ //如果操作的的是没填写日期的表单
|
|
|
+ if(wbsTreeContract.getDateIsComplete()!=null&&wbsTreeContract.getDateIsComplete()==2){
|
|
|
+ List<WbsTreeContract> wbsTreeContracts = wbsTreeContractService.getBaseMapper().selectList(new LambdaQueryWrapper<>(WbsTreeContract.class).eq(WbsTreeContract::getPId, wbsTreeContract.getPId()).ne(WbsTreeContract::getPKeyId,wbsTreeContract.getPKeyId()));
|
|
|
+ if(!wbsTreeContracts.isEmpty()){
|
|
|
+ List<WbsTreeContract> list = wbsTreeContracts.stream().filter(w -> Objects.equals(2, w.getDateIsComplete())).collect(Collectors.toList());
|
|
|
+ //除了操作的表单外 不存在没填的日期
|
|
|
+ if(list.isEmpty()){
|
|
|
+ //放开隐藏 设置祖级节点为2
|
|
|
+ if(status==1){
|
|
|
+ String ancestorsPId = wbsTreeContract.getAncestorsPId();
|
|
|
+ if (ancestorsPId.startsWith("0,")) {
|
|
|
+ ancestorsPId = ancestorsPId.substring(2);
|
|
|
+ }
|
|
|
+ ancestorsPId=ancestorsPId+","+wbsTreeContract.getPKeyId();
|
|
|
+ List<Long> longList = Arrays.stream(ancestorsPId.split(","))
|
|
|
+ .map(Long::valueOf)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ UpdateWrapper<WbsTreeContract> updateWrapper1 = new UpdateWrapper<>();
|
|
|
+ updateWrapper1.in("p_key_id", longList);
|
|
|
+ updateWrapper1.set("date_is_complete",2);
|
|
|
+ wbsTreeContractService.update(updateWrapper1);
|
|
|
+ //隐藏表单 设置祖级节点为1
|
|
|
+ }if(status==2){
|
|
|
+ String ancestorsPId = wbsTreeContract.getAncestorsPId();
|
|
|
+ if (ancestorsPId.startsWith("0,")) {
|
|
|
+ ancestorsPId = ancestorsPId.substring(2);
|
|
|
+ }
|
|
|
+ ancestorsPId=ancestorsPId+","+wbsTreeContract.getPKeyId();
|
|
|
+ List<Long> longList = Arrays.stream(ancestorsPId.split(","))
|
|
|
+ .map(Long::valueOf)
|
|
|
+ .collect(Collectors.toList());
|
|
|
+ UpdateWrapper<WbsTreeContract> updateWrapper1 = new UpdateWrapper<>();
|
|
|
+ updateWrapper1.in("p_key_id", longList);
|
|
|
+ updateWrapper1.set("date_is_complete",1);
|
|
|
+ wbsTreeContractService.update(updateWrapper1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ }
|
|
|
return R.data("成功");
|
|
|
}
|
|
|
|
|
@@ -4402,6 +4449,43 @@ public class ExcelTabController extends BladeController {
|
|
|
|
|
|
|
|
|
}
|
|
|
+ @Data
|
|
|
+ @AllArgsConstructor
|
|
|
+ @NoArgsConstructor
|
|
|
+ public static class BussfileDTO{
|
|
|
+ private String name;
|
|
|
+ private String url;
|
|
|
+ }
|
|
|
+ @PostMapping("/previewBussfile")
|
|
|
+ public R<List<BussfileDTO>> previewBussfile(@RequestPart("file")MultipartFile[] file){
|
|
|
+ List<BussfileDTO>list=new ArrayList<>();
|
|
|
+ for (int i = 0; i < file.length; i++){
|
|
|
+ BussfileDTO dto = new BussfileDTO();
|
|
|
+ R<BladeFile> bladeFile = iossClient.addFileInfo(file[i]);
|
|
|
+ BladeFile bladeFile1 = bladeFile.getData();
|
|
|
+ String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
|
|
|
+ NewBladeFile newBladeFile = new NewBladeFile();
|
|
|
+ if (fileExtension.contains("xlsx")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ dto.setUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("xls")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ dto.setUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("docx")) {
|
|
|
+ newBladeFile = this.commonFileClient.wordToPdf(file[i]);
|
|
|
+ dto.setUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
|
|
|
+ fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
|
|
|
+ newBladeFile = this.commonFileClient.pngOrJpgToPdf(file[i]);
|
|
|
+ dto.setUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("pdf")) {
|
|
|
+ dto.setUrl(bladeFile1.getLink());
|
|
|
+ }
|
|
|
+ dto.setName(file[i].getOriginalFilename());
|
|
|
+ list.add(dto);
|
|
|
+ }
|
|
|
+ return R.data(list);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* 质检附件追加
|
|
@@ -4417,11 +4501,12 @@ public class ExcelTabController extends BladeController {
|
|
|
@ApiImplicitParam(name = "nodeId", value = "nodeId", required = true),
|
|
|
|
|
|
})
|
|
|
- public R addBussFile(@RequestParam("file") MultipartFile[] file, String nodeId, Integer type, Long contractId, Integer classify, BladeUser b) {
|
|
|
+ public R addBussFile(Integer classify,Long contractId,@RequestParam("file") MultipartFile[] file, String nodeId, Integer type,BladeUser b) {
|
|
|
List<TableFile> fileList = new ArrayList<>();
|
|
|
if (file != null && file.length >= 1) {
|
|
|
- for (MultipartFile multipartFile : file) {
|
|
|
- R<BladeFile> bladeFile = iossClient.addFileInfo(multipartFile);
|
|
|
+ for (int i = 0; i < file.length; i++) {
|
|
|
+
|
|
|
+ R<BladeFile> bladeFile = iossClient.addFileInfo(file[i]);
|
|
|
BladeFile bladeFile1 = bladeFile.getData();
|
|
|
|
|
|
TableFile tableFile = new TableFile();
|
|
@@ -4429,7 +4514,7 @@ public class ExcelTabController extends BladeController {
|
|
|
String fileExtension = FileUtil.getFileExtension(bladeFile1.getName()).toLowerCase();
|
|
|
tableFile.setTabId(nodeId + "");
|
|
|
tableFile.setContractId(contractId);
|
|
|
- tableFile.setName(multipartFile.getOriginalFilename());
|
|
|
+ tableFile.setName(file[i].getOriginalFilename());
|
|
|
tableFile.setType(type); //10 代表附件
|
|
|
if (type == 10 || type == 11 || type == 12 || type == 20 || type == 21 || type == 22) {
|
|
|
tableFile.setDomainPdfUrl(bladeFile1.getLink());
|
|
@@ -4439,6 +4524,23 @@ public class ExcelTabController extends BladeController {
|
|
|
tableFile.setExtension(fileExtension);
|
|
|
tableFile.setClassify(classify);
|
|
|
fileList.add(tableFile);
|
|
|
+ NewBladeFile newBladeFile = new NewBladeFile();
|
|
|
+ if (fileExtension.contains("xlsx")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("xls")) {
|
|
|
+ newBladeFile = this.commonFileClient.excelToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("docx")) {
|
|
|
+ newBladeFile = this.commonFileClient.wordToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("png") || fileExtension.contains("jpg") || fileExtension.contains("webp") || fileExtension.contains("apng") ||
|
|
|
+ fileExtension.contains("bmp") || fileExtension.contains("jepg") || fileExtension.contains("tif") || fileExtension.contains("gif")) {
|
|
|
+ newBladeFile = this.commonFileClient.pngOrJpgToPdf(file[i]);
|
|
|
+ tableFile.setDomainPdfUrl(newBladeFile.getPdfUrl());
|
|
|
+ } else if (fileExtension.contains("pdf")) {
|
|
|
+ tableFile.setDomainPdfUrl(bladeFile1.getLink());
|
|
|
+ }
|
|
|
}
|
|
|
tableFileService.saveOrUpdateBatch(fileList);
|
|
|
String file_path = FileUtils.getSysLocalFileUrl();
|
|
@@ -4453,7 +4555,9 @@ public class ExcelTabController extends BladeController {
|
|
|
if (tabpdf2.exists()) {
|
|
|
tabpdf2.delete();
|
|
|
}
|
|
|
- FileUtils.mergePdfPublicMethods(datainfo, listPdf);
|
|
|
+ if(datainfo.size()>=2){
|
|
|
+ FileUtils.mergePdfPublicMethods(datainfo, listPdf);
|
|
|
+ }
|
|
|
String netUrl = "";
|
|
|
BladeFile bladeFile = this.newIOSSClient.uploadFile(nodeId + ".pdf", listPdf);
|
|
|
if (bladeFile != null && ObjectUtils.isNotEmpty(bladeFile.getLink())) {
|
|
@@ -4509,6 +4613,23 @@ public class ExcelTabController extends BladeController {
|
|
|
}
|
|
|
}
|
|
|
|
|
|
+ @PostMapping("/add-bussfile-node-sort")
|
|
|
+ public R addBussFileNodeSort(@RequestBody AddBussFileSortDTO dto){
|
|
|
+ List<TableFile> tableFileList = tableFileService.list(new LambdaQueryWrapper<>(TableFile.class).eq(TableFile::getClassify, dto.getClassify()).eq(TableFile::getContractId, dto.getContractId()).eq(TableFile::getTabId, dto.getId()).eq(TableFile::getType, dto.getType()));
|
|
|
+ if(dto.getList().length>0&&!tableFileList.isEmpty()){
|
|
|
+ for (TableFile file : tableFileList) {
|
|
|
+ for (int i = 0; i < dto.getList().length; i++) {
|
|
|
+ if(dto.getList()[i].equals(file.getName())){
|
|
|
+ file.setSort(i);
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.status(tableFileService.updateBatchById(tableFileList));
|
|
|
+ }
|
|
|
+ return R.status(true);
|
|
|
+ }
|
|
|
+
|
|
|
|
|
|
@PostMapping("/save_nodeId")
|
|
|
@ApiOperationSupport(order = 72)
|