|
@@ -0,0 +1,110 @@
|
|
|
|
+package org.springblade.archive.controller;
|
|
|
|
+
|
|
|
|
+import io.swagger.annotations.Api;
|
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
|
+import lombok.AllArgsConstructor;
|
|
|
|
+import org.apache.commons.lang.StringUtils;
|
|
|
|
+import org.springblade.archive.service.IArchiveAutoPdfService;
|
|
|
|
+import org.springblade.business.entity.ArchiveFile;
|
|
|
|
+import org.springblade.business.feign.ArchiveFileClient;
|
|
|
|
+import org.springblade.common.utils.CommonUtil;
|
|
|
|
+import org.springblade.core.tool.api.ResultCode;
|
|
|
|
+import org.springblade.manager.entity.ArchiveTreeContract;
|
|
|
|
+import org.springblade.manager.feign.ArchiveTreeContractClient;
|
|
|
|
+import org.springblade.resource.feign.CommonFileClient;
|
|
|
|
+import org.springblade.resource.feign.IOSSClient;
|
|
|
|
+import org.springblade.resource.feign.NewIOSSClient;
|
|
|
|
+import org.springframework.http.HttpStatus;
|
|
|
|
+import org.springframework.web.bind.annotation.*;
|
|
|
|
+import org.springframework.web.multipart.MultipartFile;
|
|
|
|
+import org.springblade.core.tool.api.R;
|
|
|
|
+
|
|
|
|
+import java.io.IOException;
|
|
|
|
+import java.io.InputStream;
|
|
|
|
+import java.util.ArrayList;
|
|
|
|
+import java.util.List;
|
|
|
|
+
|
|
|
|
+@RestController
|
|
|
|
+@AllArgsConstructor
|
|
|
|
+@RequestMapping("/archiveMeasurement")
|
|
|
|
+@Api(value = "档案计量", tags = "档案计量")
|
|
|
|
+public class ArchiveMeasurementController {
|
|
|
|
+ private final NewIOSSClient iossClient;
|
|
|
|
+ private final ArchiveTreeContractClient archiveTreeContractClient;
|
|
|
|
+ private IArchiveAutoPdfService archiveAutoPdfService;
|
|
|
|
+ private ArchiveFileClient archiveFileClient;
|
|
|
|
+ private final CommonFileClient commonFileClient;
|
|
|
|
+
|
|
|
|
+ @PostMapping("/upFile")
|
|
|
|
+ @ApiOperation(value = "上传文件", notes = "上传文件")
|
|
|
|
+ public R upFile(@RequestParam String projectName,
|
|
|
|
+ @RequestParam String contractName,
|
|
|
|
+ @RequestParam String periodName,
|
|
|
|
+ @RequestParam String fileName,
|
|
|
|
+ @RequestParam String fileTime,
|
|
|
|
+ @RequestParam String dutyUser,
|
|
|
|
+ @RequestParam("fileData") MultipartFile fileData) {
|
|
|
|
+ // 处理文件上传逻辑
|
|
|
|
+ // 可根据需要对 contractId、periodName、fileName 和 fileData 进行相应的操作
|
|
|
|
+ ArchiveTreeContract periodNode = archiveTreeContractClient.getMeasurementPeriodNode(projectName,contractName,periodName);
|
|
|
|
+ if (periodNode == null) {
|
|
|
|
+ return R.fail("找不到匹配的项目以及合同段,请检查项目名和合同段名称 ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ if (fileData == null) {
|
|
|
|
+ return R.fail("没有上传文件 ");
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ String fileUrl = "";
|
|
|
|
+
|
|
|
|
+ try {
|
|
|
|
+ fileUrl = archiveAutoPdfService.upFile(fileData.getInputStream(),periodNode.getProjectId());
|
|
|
|
+ if (StringUtils.isNotEmpty(fileUrl)) {
|
|
|
|
+
|
|
|
|
+ String pdfPage = commonFileClient.getPdfNum(fileUrl);
|
|
|
|
+ Long pdfSize = CommonUtil.getResourceLength(fileUrl);
|
|
|
|
+ //新增或者更新
|
|
|
|
+ //根据nodeid和fileName查询,看是否有文件,没有新增,有则更新。
|
|
|
|
+ List<ArchiveFile> archiveFiles = archiveFileClient.getListByNodeIDName(periodNode.getId().toString(),fileName);
|
|
|
|
+ if (archiveFiles == null || archiveFiles.size() == 0) {
|
|
|
|
+ ArchiveFile archiveFile = new ArchiveFile();
|
|
|
|
+ archiveFile.setProjectId(periodNode.getProjectId().toString());
|
|
|
|
+ archiveFile.setContractId(periodNode.getContractId().toString());
|
|
|
|
+ archiveFile.setIsDeleted(0);
|
|
|
|
+ archiveFile.setIsArchive(0);
|
|
|
|
+ archiveFile.setNodeId(periodNode.getId().toString());
|
|
|
|
+ archiveFile.setPageNum(pdfPage);
|
|
|
|
+ archiveFile.setFileSize(pdfSize);
|
|
|
|
+ archiveFile.setSourceType(2);
|
|
|
|
+ archiveFile.setFileTime(fileTime);
|
|
|
|
+ archiveFile.setFileName(fileName);
|
|
|
|
+ archiveFile.setDutyUser(dutyUser);
|
|
|
|
+ if (periodNode.getStorageType() != null ) {
|
|
|
|
+ archiveFile.setFileType(periodNode.getStorageType().longValue());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ List<ArchiveFile> archiveFileList = new ArrayList<>();
|
|
|
|
+ archiveFileList.add(archiveFile);
|
|
|
|
+ archiveFileClient.addArchiveFile(archiveFileList);
|
|
|
|
+
|
|
|
|
+ }else {
|
|
|
|
+ ArchiveFile archiveFile = archiveFiles.get(0);
|
|
|
|
+
|
|
|
|
+ if (StringUtils.isNotEmpty(archiveFile.getPdfFileUrl())) {
|
|
|
|
+ iossClient.removeFile(archiveFile.getPdfFileUrl());
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ archiveFile.setPdfFileUrl(fileUrl);
|
|
|
|
+ archiveFile.setFilePage(Integer.valueOf(pdfPage));
|
|
|
|
+ archiveFile.setFileSize(pdfSize);
|
|
|
|
+ archiveFile.setFileTime(fileTime);
|
|
|
|
+ archiveFileClient.updateById2(archiveFile);
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+ }
|
|
|
|
+ } catch (IOException e) {
|
|
|
|
+ e.printStackTrace();
|
|
|
|
+ }
|
|
|
|
+ return R.success(ResultCode.SUCCESS);
|
|
|
|
+ }
|
|
|
|
+}
|