Преглед изворни кода

Merge branch 'master' of http://47.110.251.215:3000/java_org/bladex

huangtf пре 2 година
родитељ
комит
ea677ad5e5

+ 4 - 1
blade-service/blade-archive/src/main/java/org/springblade/archive/mapper/ArchivesAutoMapper.xml

@@ -86,13 +86,16 @@
     </select>
 
     <select id="selectArchivesAutoFilePage" resultMap="archivesAutoResultMap">
-        select * from u_archives_auto where is_deleted = 0  and is_archive = 1
+        select * from u_archives_auto where is_deleted = 0
         <if test="vo.projectId != null and vo.projectId != ''">
             and project_id = #{vo.projectId}
         </if>
         <if test="vo.contractId != null and vo.contractId != ''">
             and contract_id = #{vo.contractId}
         </if>
+        <if test="vo.isArchive != null and vo.isArchive != ''">
+            and is_archive = #{vo.isArchive}
+        </if>
         <if test="vo.isAutoFile != null and vo.isAutoFile != ''">
             and is_auto_file = #{vo.isAutoFile}
         </if>

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -2841,7 +2841,7 @@ public class InformationWriteQueryController extends BladeController {
             //List<WbsTreeContract> childS = this.wbsTreeContractClient.queryChildByParentId(parent, "", "");
 
             //只获取原始表,不获取复制的表(业务说是从项目wbs处取表,目前直接从当前合同段取原始表,也是一样的)
-            List<WbsTreeContract> childS = jdbcTemplate.query("select * from m_wbs_tree_contract where old_id is null and is_cope_tab is null and is_deleted = 0 and parent_id = " + parent.getId() + " and contract_id = " + parent.getContractId(), new BeanPropertyRowMapper<>(WbsTreeContract.class));
+            List<WbsTreeContract> childS = jdbcTemplate.query("select * from m_wbs_tree_contract where is_cope_tab is null and is_deleted = 0 and parent_id = " + parent.getId() + " and contract_id = " + parent.getContractId(), new BeanPropertyRowMapper<>(WbsTreeContract.class));
             if (childS.size() > 0) {
                 //添加入结果集
                 childList.addAll(childS);

+ 30 - 7
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ContractInfoServiceImpl.java

@@ -194,8 +194,16 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     public List<WbsTreeContractVO> addNodeTree(String pKeyId) {
         WbsTreeContract parentNodeRoot = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>lambdaQuery().eq(WbsTreeContract::getPKeyId, pKeyId).eq(WbsTreeContract::getStatus, 1));
         if (parentNodeRoot != null) {
+            //oldId不等于空,说明是复制节点,通过oldId,去获取原始树节点
+            if (parentNodeRoot.getOldId() != null) {
+                parentNodeRoot = this.recursionFindResourceRootNode(parentNodeRoot);
+            }
             List<WbsTreeContract> allNodes = this.getChildNodes(parentNodeRoot);
+            if (allNodes == null) {
+                allNodes = new ArrayList<>();
+            }
             allNodes.add(parentNodeRoot);
+
             List<WbsTreeContractVO> resultAllNodes = BeanUtil.copyProperties(allNodes, WbsTreeContractVO.class);
             return buildWbsTreeByStreamChildNodeTree(resultAllNodes, parentNodeRoot);
         }
@@ -221,17 +229,32 @@ public class ContractInfoServiceImpl extends BaseServiceImpl<ContractInfoMapper,
     }
 
     private List<WbsTreeContract> getChildNodes(WbsTreeContract obj) {
-        if (obj != null) {
-            List<WbsTreeContract> wbsTreeContracts = Collections.singletonList(obj);
-            List<WbsTreeContract> result = new ArrayList<>();
-            this.recursionGetChildNodes(wbsTreeContracts, result, obj.getContractId());
-            if (result.size() > 0) {
-                return result;
-            }
+        List<WbsTreeContract> wbsTreeContracts = Collections.singletonList(obj);
+        List<WbsTreeContract> result = new ArrayList<>();
+        this.recursionGetChildNodes(wbsTreeContracts, result, obj.getContractId());
+        if (result.size() > 0) {
+            return result;
         }
         return null;
     }
 
+    private WbsTreeContract recursionFindResourceRootNode(WbsTreeContract obj) {
+        if (obj.getOldId() != null) {
+            WbsTreeContract obj1 = wbsTreeContractMapper.selectOne(Wrappers.<WbsTreeContract>lambdaQuery()
+                    .eq(WbsTreeContract::getId, obj.getOldId())
+                    .eq(WbsTreeContract::getContractId, obj.getContractId()));
+            if (obj1 != null && obj1.getOldId() != null) {
+                obj1 = this.recursionFindResourceRootNode(obj1);
+            } else {
+                // 已经到达原始节点,返回当前节点的id
+                return obj1 != null ? obj1 : obj;
+            }
+            obj = obj1;
+        }
+        return obj;
+    }
+
+
     private void recursionGetChildNodes(List<WbsTreeContract> list, List<WbsTreeContract> result, String contractId) {
         List<Long> ids = list.stream().map(WbsTreeContract::getId).collect(Collectors.toList());
         if (ids.size() > 0) {