Forráskód Böngészése

修改组卷命名

luok 2 éve
szülő
commit
634c0753aa

+ 23 - 4
blade-service/blade-archive/src/main/java/org/springblade/archive/service/impl/ArchivesAutoServiceImpl.java

@@ -840,14 +840,24 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 				if(nodeContract==null){
 					nodeContract = contractClient.getContractById(nodeContractId);
 				}
-				storageTime = nodeContract.getStoragePeriod().toString();
+				Integer storagePeriod = nodeContract.getStoragePeriod();
+				if(storagePeriod==null){
+					storageTime="30";
+				}else{
+					storageTime = storagePeriod.toString();
+				}
 			}else{
 				if(contracts==null){
 					contracts = contractClient.getContractListByProjectId(archivesAuto.getProjectId());
 				}
 				for(ContractInfo c:contracts){
 					if(c.getContractType()==3){
-						storageTime = c.getStoragePeriod().toString();
+						Integer storagePeriod = c.getStoragePeriod();
+						if(storagePeriod==null){
+							storageTime="30";
+						}else{
+							storageTime = storagePeriod.toString();
+						}
 					}
 				}
 			}
@@ -987,10 +997,19 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 		Long projectId = node.getProjectId();
 		ProjectInfo projectInfo = projectClient.getById(String.valueOf(projectId));
 		String projectName = projectInfo.getProjectName();
+		String contractName="";
+		Long contractId = node.getContractId();
+		if(contractId!=null){
+			ContractInfo contract = contractClient.getContractById(contractId);
+			contractName=contract.getContractName();
+		}
 		//获取案卷题名
+		archiveName=projectName;
+		if(StringUtils.isNotEmpty(contractName)){
+			archiveName=archiveName+" "+contractName;
+		}
 		//--正常节点
 		if(isCrossNode){
-			archiveName=projectName;
 			//存在跨节点  项目名称+文件对应的所有节点名称
 			Set<String> nodeIdSet = new LinkedHashSet<>();
 			for(ArchiveFile file:waitArchiveFiles){
@@ -1004,7 +1023,7 @@ public class ArchivesAutoServiceImpl extends BaseServiceImpl<ArchivesAutoMapper,
 			}
 		}else{
 			//不存在跨节点  项目名称+节点名称
-			archiveName=projectName+" "+node.getNodeName();
+			archiveName=archiveName+" "+node.getNodeName();
 		}
 
 		//TODO wbs节点

+ 1 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveAutoRuleWbsMapper.java

@@ -49,4 +49,5 @@ public interface ArchiveAutoRuleWbsMapper extends BaseMapper<ArchiveAutoRuleWbs>
 
     List<ArchiveAutoRuleWbs> getArchiveAutoRuleWbs(@Param("wbsId") Long wbsId, @Param("projectId") Long projectId);
 
+    List<ArchiveAutoRuleWbs> getGroupList(@Param("archiveAutoGroupId")Long archiveAutoGroupId, @Param("projectId")Long projectId);
 }

+ 7 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/ArchiveAutoRuleWbsMapper.xml

@@ -49,4 +49,11 @@
         where is_deleted = 0 and wbs_id=#{wbsId} and project_id = #{projectId}
     </select>
 
+
+    <select id="getGroupList" resultMap="archiveAutoRuleWbsResultMap">
+        select *
+        from m_archive_auto_rule_wbs
+        where is_deleted = 0 and archive_auto_group_id = #{archiveAutoGroupId} and project_id = #{projectId}
+    </select>
+
 </mapper>

+ 35 - 15
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ArchiveTreeServiceImpl.java

@@ -822,14 +822,35 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
      */
     private Map<String, Object> getArchiveAutoRule_WbsTreeNode(Long id, Long projectId, Long wbsNode2ArchiveTreeNodeId, String wbsId) {
         Map<String, Object> map = new HashMap<>();
+        Map<Long, ArchiveTreeVO2> ArchiveTreeVO2Map = null;
         try {
             ArchiveTree archiveTree = baseMapper.selectById(wbsNode2ArchiveTreeNodeId);
 
             //步骤1:找出wbs的规则设置
             ArchiveAutoRuleWbs  autoRuleWbs=null;
+            List<ArchiveTreeVO2> archiveTreeVO2List = new ArrayList<>();
             List<ArchiveAutoRuleWbs> autoRuleWbsList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(id, projectId);
             if(autoRuleWbsList.size()==0){
-                //TODO 像上级找
+                //像上级找
+                //获取wbs关联树
+                ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
+                ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
+                ArchiveTreeVO2Map = new HashMap<>();
+                for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
+                    ArchiveTreeVO2Map.put(vo2.getId(), vo2);
+                }
+                ArchiveTreeVO2 nameVo2 = ArchiveTreeVO2Map.get(id);
+                while (nameVo2.getParentId() != 0L) {
+                    Long parentId = nameVo2.getParentId();
+                    nameVo2 = ArchiveTreeVO2Map.get(parentId);
+                    List<ArchiveAutoRuleWbs> ruleList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(nameVo2.getId(), projectId);
+                    if(ruleList.size()>0){
+                        autoRuleWbs=ruleList.get(0);
+                        break;
+                    }
+                }
+
+
             }else{
                 autoRuleWbs=autoRuleWbsList.get(0);
             }
@@ -851,12 +872,13 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
                     }
 
                     //获取wbs关联树
-                    ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
-                    List<ArchiveTreeVO2> archiveTreeVO2List = new ArrayList<>();
-                    ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
-                    Map<Long, ArchiveTreeVO2> ArchiveTreeVO2Map = new HashMap<>();
-                    for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
-                        ArchiveTreeVO2Map.put(vo2.getId(), vo2);
+                    if(ArchiveTreeVO2Map == null){
+                        ArchiveTreeVO2 archiveTreeVO2 = getWbsArchiveTree(AuthUtil.getTenantId(), projectId, wbsNode2ArchiveTreeNodeId, wbsId, "1", Long.parseLong(archiveTree.getDisplayHierarchy()));
+                        ForestNodeMerger.getTreeListEx(archiveTreeVO2, archiveTreeVO2List);
+                        ArchiveTreeVO2Map = new HashMap<>();
+                        for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
+                            ArchiveTreeVO2Map.put(vo2.getId(), vo2);
+                        }
                     }
 
                     if (archiveAutoType == 1) {
@@ -888,10 +910,11 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
                         //遍历wbs关联树 生成分类并将编辑树
                         for (ArchiveTreeVO2 vo2 : archiveTreeVO2List) {
                             //查询wbs节点是否有规则设置
-                            ArchiveAutoRuleWbs autoRuleWbs2 = archiveAutoRuleWbsMapper.selectOne(Wrappers.<ArchiveAutoRuleWbs>lambdaQuery()
-                                    .eq(ArchiveAutoRuleWbs::getWbsId, vo2.getId())
-                                    .eq(ArchiveAutoRuleWbs::getIsDeleted, 0)
-                                    .eq(ArchiveAutoRuleWbs::getProjectId, projectId));
+                            List<ArchiveAutoRuleWbs> ruleList = archiveAutoRuleWbsMapper.getArchiveAutoRuleWbs(vo2.getId(), projectId);
+                            ArchiveAutoRuleWbs autoRuleWbs2 =null;
+                            if(ruleList!=null && ruleList.size()>0){
+                                autoRuleWbs2=ruleList.get(0);
+                            }
                             if (autoRuleWbs2 != null) {
                                 //如有规则,需过滤单独规则节点,和不同组的分类规则节点
                                 if (autoRuleWbs2.getArchiveAutoType() != 3) {
@@ -930,10 +953,7 @@ public class ArchiveTreeServiceImpl extends BaseServiceImpl<ArchiveTreeMapper, A
 
                         List<ArchiveTreeAutoRuleVO> merge = ForestNodeMerger.merge(nodetree);
                         //获取与当前节点设置同一分类分组的节点
-                        List<ArchiveAutoRuleWbs> archiveAutoRuleWbs = archiveAutoRuleWbsMapper.selectList(Wrappers.<ArchiveAutoRuleWbs>lambdaQuery()
-                                .eq(ArchiveAutoRuleWbs::getArchiveAutoGroupId, archiveAutoGroupId)
-                                .eq(ArchiveAutoRuleWbs::getIsDeleted, 0)
-                                .eq(ArchiveAutoRuleWbs::getProjectId, projectId));
+                        List<ArchiveAutoRuleWbs> archiveAutoRuleWbs = archiveAutoRuleWbsMapper.getGroupList(archiveAutoGroupId, projectId);
                         StringBuffer nodeSelect = new StringBuffer();
 
                         for (ArchiveAutoRuleWbs node : archiveAutoRuleWbs) {