浏览代码

关联原生电子文件

huangtf 2 年之前
父节点
当前提交
977f675e0e

+ 1 - 0
blade-common/src/main/java/org/springblade/common/utils/CommonUtil.java

@@ -360,6 +360,7 @@ public class CommonUtil {
      * @throws IOException
      */
     public static long getResourceLength(String urlStr) throws IOException {
+        urlStr = replaceOssUrl(urlStr);
         URL url = new URL(urlStr);
         URLConnection urlConnection = url.openConnection();
         urlConnection.connect();

+ 3 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/ImageClassificationFileController.java

@@ -73,6 +73,8 @@ import java.util.*;
 import java.util.List;
 import java.util.stream.Collectors;
 
+import static org.springblade.common.utils.CommonUtil.replaceOssUrl;
+
 /**
  * 影音资料控制器(客户端)
  *
@@ -701,6 +703,7 @@ public class ImageClassificationFileController extends BladeController {
      * @throws IOException
      */
     public long getResourceLength(String urlStr) throws IOException {
+        urlStr = replaceOssUrl(urlStr);
         URL url = new URL(urlStr);
         URLConnection urlConnection = url.openConnection();
         urlConnection.connect();

+ 27 - 10
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -15,6 +15,7 @@ import org.springblade.business.entity.*;
 import org.springblade.business.mapper.TaskMapper;
 import org.springblade.business.service.*;
 import org.springblade.business.vo.*;
+import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -989,26 +990,42 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 .eq(ArchiveFile::getNodeExtId, keyId)
                 .eq(ArchiveFile::getIsDeleted, 0));
 
+        List<String> listFiles = new ArrayList<>();
+        listFiles.add(query.getEVisaPdfUrl());
+        Long fileSize = FileUtils.getOssFileSizeCount(listFiles);
+
         if (archiveFile != null) {
             archiveFile.setEVisaFile(query.getEVisaPdfUrl());
             archiveFile.setPdfFileUrl(query.getEVisaPdfUrl()); // 这里将pdfFileUrl也更新了,因为需求中没有限制只能更新eVisaFile属性
+            archiveFile.setFileSize(fileSize);
             this.archiveFileService.updateById(archiveFile);
 
         } else {
-            archiveFile = new ArchiveFile();
-            archiveFile.setNodeId(nodeId.toString());
-            archiveFile.setNodeExtId(keyId);
-            archiveFile.setContractId(contractId.toString());
-            archiveFile.setStatus(2); // 这里是新增归档文件,所以状态为1(已完成)
-            //TODO 文件题名规则,待补充
-            fillFileNameAndTime(archiveFile,query);
-            //
-            archiveFile.setEVisaFile(query.getEVisaPdfUrl());
-            archiveFile.setPdfFileUrl(query.getEVisaPdfUrl());
+            archiveFile = getArchiveFile(query,nodeId,keyId,fileSize);
             this.archiveFileService.save(archiveFile);
         }
     }
 
+    public ArchiveFile getArchiveFile(InformationQuery query,Long nodeId,Long keyId,Long fileSize) {
+        ArchiveFile archiveFile = new ArchiveFile();
+        archiveFile.setNodeId(nodeId.toString());
+        archiveFile.setNodeExtId(keyId);
+        archiveFile.setContractId(query.getContractId().toString());
+        archiveFile.setStatus(2); // 这里是新增归档文件,所以状态为1(已完成)
+        //TODO 文件题名规则,待补充
+        fillFileNameAndTime(archiveFile,query);
+        archiveFile.setFileSize(fileSize);
+        archiveFile.setSourceType(1);
+
+        //责任人怎么取
+
+        //
+        archiveFile.setEVisaFile(query.getEVisaPdfUrl());
+        archiveFile.setPdfFileUrl(query.getEVisaPdfUrl());
+        return archiveFile;
+    }
+
+
     public  void fillFileNameAndTime(ArchiveFile archiveFile,InformationQuery info) {
         archiveFile.setFileName(info.getName());
         archiveFile.setFileTime(info.getBusinessTime());

+ 53 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -1,6 +1,8 @@
 package org.springblade.manager.service.impl;
 
 import lombok.AllArgsConstructor;
+import org.springblade.business.entity.ArchiveFile;
+import org.springblade.business.entity.InformationQuery;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.manager.entity.ArchiveTreeContract;
 import org.springblade.manager.entity.ContractInfo;
@@ -211,4 +213,55 @@ public class ArchiveTreeContractSyncImpl {
 
         return saveList;
     }
+
+
+    public void  syncBusinessData(Long contractId) {
+        //获取某个合同段所有的电签完成的文件题名,取 id wbsid name,eVisaPdfUrl
+        List<InformationQuery> informationQueryList = getInformationQuerys(contractId);
+
+        List<ArchiveFile>  archiveFiles = getArchiveFiles(contractId);
+
+        Map<Long,ArchiveFile> archiveKeyIdMap = new HashMap<>();
+        for (ArchiveFile ar: archiveFiles)  {
+            if (ar.getNodeExtId()!= null) {
+                archiveKeyIdMap.put(ar.getNodeExtId(),ar);
+            }
+        }
+
+        List<InformationQuery> newInformationQueryList = new ArrayList<>();
+        List<InformationQuery> updateInformationQueryList = new ArrayList<>();
+        for (InformationQuery info: informationQueryList) {
+            if (info.getWbsId() != null) {
+
+                ArchiveFile archiveFile = archiveKeyIdMap.get(info.getWbsId());
+                if ( archiveFile == null) {
+                    newInformationQueryList.add(info);
+                }else if (!archiveFile.getPdfFileUrl().equals(info.getEVisaPdfUrl())) {
+                    updateInformationQueryList.add(info);
+                }
+            }
+        }
+
+        //对于newInformationQueryList。生成,需提供对应的nodeid
+
+        //对于updateInformationQueryList,需要找出更新文件和文件大小
+
+        //根据归档树,刷新排序
+    }
+
+    public List<InformationQuery>  getInformationQuerys(Long contractId) {
+        //获取某个合同段所有的电签完成的文件题名,取 id wbsid name,eVisaPdfUrl
+        List<InformationQuery> informationQueryList = new ArrayList<>();
+        return informationQueryList;
+
+        //互殴去
+    }
+
+    public List<ArchiveFile>  getArchiveFiles(Long contractId) {
+
+        List<ArchiveFile> archiveFiles = new ArrayList<>();
+        return archiveFiles;
+
+        //互殴去
+    }
 }