Browse Source

Merge remote-tracking branch 'origin/master' into master

yangyj 2 năm trước cách đây
mục cha
commit
45a3a70380

+ 31 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/controller/ArchivesAutoController.java

@@ -22,6 +22,7 @@ import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
 import org.springblade.archive.service.IArchiveAutoPdfService;
+import org.springblade.common.utils.CommonUtil;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -208,5 +209,35 @@ public class ArchivesAutoController extends BladeController {
 		return R.data("");
 	}
 
+	/**
+	 * 锁定
+	 */
+	@PostMapping("/lock")
+	@ApiOperationSupport(order = 10)
+	@ApiOperation(value = "锁定", notes = "传入ids")
+	public R lock(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+
+		List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
+		for (ArchivesAuto ar  :archivesAutos) {
+			ar.setIsLock(1);
+		}
+
+		return R.status(archivesAutoService.updateBatchById(archivesAutos));
+	}
+
+	/**
+	 * 解锁
+	 */
+	@PostMapping("/unlock")
+	@ApiOperationSupport(order = 11)
+	@ApiOperation(value = "解锁", notes = "传入ids")
+	public R unlock(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
+		List<ArchivesAuto> archivesAutos = archivesAutoService.listByIds(Func.toLongList(ids));
+		for (ArchivesAuto ar  :archivesAutos) {
+			ar.setIsLock(0);
+		}
+		return R.status(archivesAutoService.updateBatchById(archivesAutos));
+	}
+
 	
 }

+ 24 - 2
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchiveAutoPdfServiceImpl.java

@@ -1,6 +1,7 @@
 package org.springblade.archive.service.impl;
 
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.fasterxml.jackson.databind.ObjectMapper;
 import com.itextpdf.text.Element;
 import com.itextpdf.text.pdf.*;
@@ -16,6 +17,7 @@ import org.springblade.archive.service.IArchiveProjectConfigService;
 import org.springblade.archive.utils.FileUtils;
 import org.springblade.archive.utils.FormulaUtil;
 import org.springblade.business.entity.ArchiveFile;
+import org.springblade.business.feign.ArchiveFileClient;
 import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.vo.DataVO;
@@ -47,6 +49,8 @@ public class ArchiveAutoPdfServiceImpl implements IArchiveAutoPdfService {
 
     private final IArchiveFormulaConfigService archiveFormulaConfigService;
 
+    private ArchiveFileClient archiveFileClient;
+
     public static final  String[] ARCHIVE_NUMBER = new String[]{"r_Archives_front","r_Archives_catalog","r_Archives_spare","r_Archives_back"};
 
     public static final Map<String, String> URL_MAP = new HashMap<>();
@@ -227,7 +231,7 @@ public class ArchiveAutoPdfServiceImpl implements IArchiveAutoPdfService {
         frontUrls.addAll(backUrls);
 
         //统计文件大小
-        flushFileSize(archivesAuto,archiveFileList,frontUrls);
+        RefreshFileSize(archivesAuto,archiveFileList,frontUrls);
 
         String joinedUrls = String.join(", ", frontUrls);
         archivesAuto.setOutUrl(joinedUrls);
@@ -672,7 +676,7 @@ public class ArchiveAutoPdfServiceImpl implements IArchiveAutoPdfService {
      * @param datas
      * @param frontUrls
      */
-    public void flushFileSize(ArchivesAuto archive,List<ArchiveFile> datas,List<String> frontUrls){
+    public void RefreshFileSize(ArchivesAuto archive,List<ArchiveFile> datas,List<String> frontUrls){
 
         List<String> fileUrls = new ArrayList<>();
         for (ArchiveFile file: datas) {
@@ -698,4 +702,22 @@ public class ArchiveAutoPdfServiceImpl implements IArchiveAutoPdfService {
         }
     }
 
+    /**
+     * 刷新档号
+     * @param archive
+     * @param fileNumber
+     */
+    public void RefreshFileNumber(ArchivesAuto archive,String fileNumber) {
+        Long projectId = archive.getProjectId();
+        archive.setFileNumber(fileNumber);
+
+        List<ArchiveFile> archiveFiles = archiveFileClient.listWrappers(Wrappers.<ArchiveFile>lambdaQuery()
+                .eq(ArchiveFile::getArchiveId, archive.getId())
+                .eq(ArchiveFile::getIsArchive, 0)
+                .eq(ArchiveFile::getIsDeleted,0)
+                .orderByAsc(ArchiveFile::getSort));
+
+        buildArchiveFrontPdfs(projectId,archive,archiveFiles);
+    }
+
 }

+ 66 - 0
blade-service/blade-archive/src/main/java/org/springblade/archive/utils/ArchiveTreeUtil.java

@@ -0,0 +1,66 @@
+package org.springblade.archive.utils;
+
+import com.spire.ms.System.Collections.ArrayList;
+import org.apache.commons.lang.StringUtils;
+import org.springblade.common.utils.ForestNodeMergerEx;
+import org.springblade.core.tool.node.ForestNodeMerger;
+import org.springblade.manager.entity.ArchiveTree;
+import org.springblade.manager.entity.ArchiveTreeContract;
+import org.springblade.manager.vo.ArchiveTreeContractVO2;
+import org.springblade.manager.vo.ArchiveTreeVO2;
+
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Map;
+
+public class ArchiveTreeUtil {
+
+    /**
+     * 得到分组,
+     * @param arList
+     * @param subTreeList 建设单位,施工单位各个合同段,监理单位各个合同段,电子档案的
+     * @param subGroupedList
+     */
+    public static void  getGroupedList(List<ArchiveTreeContract> arList,
+                                       List<ArchiveTreeContractVO2> subTreeList,List<List<ArchiveTreeContract>>  subGroupedList) {
+        List<ArchiveTreeContractVO2> voList = new ArrayList();
+        Map<Long,ArchiveTreeContract> map = new LinkedHashMap<>();
+
+
+        for (ArchiveTreeContract archiveTreeContract: arList) {
+            ArchiveTreeContractVO2 archiveTreeContractVO2 =new ArchiveTreeContractVO2(archiveTreeContract);
+            voList.add(archiveTreeContractVO2);
+            map.put(archiveTreeContract.getId(),archiveTreeContract);
+        }
+
+        List<ArchiveTreeContractVO2> trees = ForestNodeMergerEx.merge(voList);
+        if (trees == null ||  trees.size() == 0) {
+            return;
+        }
+        ArchiveTreeContractVO2 tree = trees.get(0);
+
+        for (ArchiveTreeContractVO2 subTree: tree.getChildren()) {
+            if (StringUtils.isEmpty(subTree.getTreeCode())) {
+                //同步
+                subTreeList.add(subTree);
+
+            }else {
+                for (ArchiveTreeContractVO2 contractNode : subTree.getChildren()){
+                    subTreeList.add(contractNode);
+                }
+            }
+        }
+
+        for (ArchiveTreeContractVO2 subTree:subTreeList) {
+            List<ArchiveTreeContractVO2> tmpList = new ArrayList();
+            List<ArchiveTreeContract> groupList = new ArrayList();
+            ForestNodeMergerEx.getTreeList(subTree,tmpList);
+            for (ArchiveTreeContractVO2 vo2 :tmpList) {
+                ArchiveTreeContract ar = map.get(vo2.getId());
+                groupList.add(ar);
+            }
+            subGroupedList.add(groupList);
+        }
+    }
+
+}