huangtf 2 жил өмнө
parent
commit
b01b84d19c

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/feign/ArchiveFileClient.java

@@ -125,4 +125,10 @@ public interface ArchiveFileClient {
 
     @PostMapping(API_PREFIX + "/addOrUpdateArchiveFileBusinessData")
     void addOrUpdateArchiveFileBusinessData(@RequestParam Long nodeId, @RequestParam Long keyId, @RequestParam Long contractId, @RequestParam String formDataId);
+
+    @PostMapping(API_PREFIX + "/addFiles")
+    void addArchiveFile(@RequestBody List<ArchiveFile> files);
+
+    @PostMapping(API_PREFIX + "/updateFiles")
+    void updateArchiveFile(@RequestBody List<ArchiveFile> files);
 }

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/feignClient/ArchiveFileClientImpl.java

@@ -265,4 +265,14 @@ public class ArchiveFileClientImpl implements ArchiveFileClient {
         iTaskService.addOrUpdateArchiveFileBusinessData(nodeId,keyId,contractId,formDataId);
     }
 
+    @Override
+    public void addArchiveFile(List<ArchiveFile> files) {
+        iArchiveFileService.saveBatch(files);
+    }
+
+    @Override
+    public void updateArchiveFile(List<ArchiveFile> files) {
+        iArchiveFileService.updateBatchById(files);
+    }
+
 }

+ 13 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -38,8 +38,10 @@ import org.springblade.flow.core.utils.TaskUtil;
 import org.springblade.flow.core.vo.FlowProcessVO;
 import org.springblade.manager.entity.ContractInfo;
 import org.springblade.manager.entity.ProjectInfo;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.ProjectClient;
+import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.system.user.cache.UserCache;
 import org.springblade.system.user.entity.User;
 import org.springframework.beans.BeanUtils;
@@ -103,6 +105,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
 
     private final JdbcTemplate jdbcTemplate;
 
+    private final WbsTreeContractClient wbsTreeContractClient;
+
     @Autowired
     StringRedisTemplate RedisTemplate;
 
@@ -1003,12 +1007,17 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
             this.archiveFileService.updateById(archiveFile);
 
         } else {
-            archiveFile = getArchiveFile(query,nodeId,keyId,fileSize,contractIndfo.archivesUnit());
+            Date createTime = null;
+            WbsTreeContract wbsTreeContract = wbsTreeContractClient.getContractNodeByPrimaryKeyId(keyId.toString());
+            if (wbsTreeContract!= null ) {
+                createTime = wbsTreeContract.getCreateTime();
+            }
+            archiveFile = getArchiveFile(query,nodeId,keyId,fileSize,contractIndfo.archivesUnit(),createTime);
             this.archiveFileService.save(archiveFile);
         }
     }
 
-    public ArchiveFile getArchiveFile(InformationQuery query,Long nodeId,Long keyId,Long fileSize,String unit) {
+    public ArchiveFile getArchiveFile(InformationQuery query,Long nodeId,Long keyId,Long fileSize,String unit,Date createTime) {
         ArchiveFile archiveFile = new ArchiveFile();
         archiveFile.setNodeId(nodeId.toString());
         archiveFile.setNodeExtId(keyId);
@@ -1027,6 +1036,8 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
         archiveFile.setFileSize(query.getEVisaPdfSize());
         archiveFile.setFilePage(query.getEVisaPdfPage());
         archiveFile.setFileSize(fileSize);
+        archiveFile.setCreateTime(createTime);
+
 
         //
         archiveFile.setEVisaFile(query.getEVisaPdfUrl());

+ 5 - 10
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractServiceImpl.java

@@ -29,20 +29,14 @@ import org.springblade.core.tool.constant.BladeConstant;
 import org.springblade.core.tool.node.ForestNodeMerger;
 import org.springblade.core.tool.utils.Func;
 import org.springblade.manager.dto.ArchiveTreeContractDTO;
-import org.springblade.manager.entity.ArchiveTree;
-import org.springblade.manager.entity.ArchiveTreeContract;
-import org.springblade.manager.entity.ContractInfo;
-import org.springblade.manager.entity.ProjectInfo;
+import org.springblade.manager.entity.*;
 import org.springblade.manager.feign.WbsTreeContractClient;
 import org.springblade.manager.mapper.ArchiveTreeMapper;
-import org.springblade.manager.service.IArchiveTreeService;
-import org.springblade.manager.service.IContractInfoService;
-import org.springblade.manager.service.IProjectInfoService;
+import org.springblade.manager.service.*;
 import org.springblade.manager.utils.DiffListUtil;
 import org.springblade.common.utils.ForestNodeMergerEx;
 import org.springblade.manager.vo.*;
 import org.springblade.manager.mapper.ArchiveTreeContractMapper;
-import org.springblade.manager.service.IArchiveTreeContractService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -77,6 +71,8 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 
 	private final ArchiveFileClient archiveFileClient;
 
+	private final IWbsTreeContractService wbsTreeContractService;
+
 
 
 
@@ -1051,8 +1047,7 @@ public class ArchiveTreeContractServiceImpl extends BaseServiceImpl<ArchiveTreeC
 	 */
 	public Integer writeBusinessData(Long keyId, Long contractId, String formDataId) {
 		// 这里省略了具体实现,可根据业务需求编写相应的逻辑
-
-		List<ArchiveTreeContract> associatedNodes = getWbsAssociatedNodes(contractId.toString());
+		List<ArchiveTreeContract> associatedNodes = archiveTreeContractSync.getWbsAssociatedNodes(contractId.toString());
 		if (associatedNodes == null || associatedNodes.size() == 0) {
 			return 1;
 		}

+ 23 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeContractSyncImpl.java

@@ -13,6 +13,7 @@ import org.springblade.manager.mapper.ArchiveTreeContractMapper;
 import org.springblade.manager.service.IContractInfoService;
 import org.springblade.manager.service.IProjectInfoService;
 import org.springblade.common.utils.ForestNodeMergerEx;
+import org.springblade.manager.service.IWbsTreeContractService;
 import org.springblade.manager.utils.ForestNodeMerger;
 import org.springblade.manager.vo.ArchiveTreeContractVO2;
 import org.springblade.manager.vo.ArchiveTreeVO2;
@@ -36,6 +37,8 @@ public class ArchiveTreeContractSyncImpl {
     private final IContractInfoService contractInfoService;
 
 
+
+
     /**
      * 普通同步
      *
@@ -225,6 +228,16 @@ public class ArchiveTreeContractSyncImpl {
 
 
     public void  syncBusinessData(Long projectId,Long contractId) {
+
+        //检查是否有配置关联质检的节点
+        Integer level = 5;
+        List<ArchiveTreeContract> associatedNodes = getWbsAssociatedNodes(contractId.toString());
+        if (associatedNodes == null || associatedNodes.size() == 0) {
+            return;
+        }
+        level = Integer.valueOf(associatedNodes.get(0).getDisplayHierarchy());
+
+
         //新增的文件题名
         List<InformationQuery> newInformationQueryList = new ArrayList<>();
         //新增的文件
@@ -307,9 +320,7 @@ public class ArchiveTreeContractSyncImpl {
             wbsTreeKeyToIdMap.put(wbsTreeContractVO6.getPKeyId(),wbsTreeContractVO6.getId());
         }
 
-        //遍历查找对应的nodeId
-        //List<ArchiveTreeContract> associatedNodes = getWbsAssociatedNodes(contractId.toString());
-        Long level = 1L;
+
         for (InformationQuery info: newInformationQueryList) {
 
             Long keyId = info.getWbsId();
@@ -361,7 +372,7 @@ public class ArchiveTreeContractSyncImpl {
         //互殴去
     }
 
-    public Long findPKeyIdByNodeType(Map<Long, WbsTreeContractVO6> wbsTreeContractVO6Map, Long id, Long nodeType) {
+    public Long findPKeyIdByNodeType(Map<Long, WbsTreeContractVO6> wbsTreeContractVO6Map, Long id, Integer nodeType) {
 
         while (true) {
             WbsTreeContractVO6 current = wbsTreeContractVO6Map.get(id);
@@ -399,4 +410,12 @@ public class ArchiveTreeContractSyncImpl {
         archiveFile.setPdfFileUrl(query.getEVisaPdfUrl());
         return archiveFile;
     }
+
+    public List<ArchiveTreeContract> getWbsAssociatedNodes(String contractId) {
+        return archiveTreeContractMapper.selectList(Wrappers.<ArchiveTreeContract>query().lambda().eq(ArchiveTreeContract::getAssociationType, 1)
+                .isNotNull(ArchiveTreeContract::getDisplayHierarchy)
+                .eq(ArchiveTreeContract::getIsDeleted, 0)
+                .eq(ArchiveTreeContract::getContractId, contractId)
+                .eq(ArchiveTreeContract::getStorageType, 4));
+    }
 }