Browse Source

后管-项目级WBS增加隐藏节点属性

qianxb 7 months ago
parent
commit
503bb05089

+ 2 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreePrivate.java

@@ -229,4 +229,6 @@ public class WbsTreePrivate extends BaseEntity {
     @ApiModelProperty(value = "监理委托单Id")
     private Long jlerTreeId;
 
+    @ApiModelProperty(value = "是否在客户端新增时隐藏,0否1是")
+    private Integer isAddConceal;
 }

+ 2 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.java

@@ -123,4 +123,6 @@ public interface WbsTreePrivateMapper extends EasyBaseMapper<WbsTreePrivate> {
     WbsTreePrivate getProjectOpinionNode(@Param("projectId") Long projectId,@Param("id") Long id);
 
     List<Long> linkNodeTreeBynodeId(@Param("pkeyid") String pkeyid);
+
+    void batchUpdateIsAddConceal(@Param("private") WbsTreePrivate wbsTreePrivate);
 }

+ 8 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreePrivateMapper.xml

@@ -201,7 +201,8 @@
             update_time        = #{wbsTP.updateTime},
             mix_ratio_test_ids = #{wbsTP.mixRatioTestIds},
             is_concrete        = #{wbsTP.isConcrete},
-            is_expernode        = #{wbsTP.isExpernode},
+            is_expernode       = #{wbsTP.isExpernode},
+            is_add_conceal     = #{wbsTP.isAddConceal},
             status             = 1,
             is_deleted         = 0
         where p_key_id = #{pKeyId}
@@ -885,6 +886,12 @@
             update m_wbs_tree_private set jler_tree_id = #{pkeyid} where p_key_id = #{item} and is_deleted=0 and `type` = 1
         </foreach>
     </update>
+    <update id="batchUpdateIsAddConceal">
+        update m_wbs_tree_private
+        set is_add_conceal = #{private.isAddConceal}
+        where project_id = #{private.projectId}
+            and FIND_IN_SET(#{private.id},ancestors) > 0
+    </update>
 
     <select id="linkNodeTreeBynodeId" resultType="java.lang.Long" >
         select p_key_id from m_wbs_tree_private where (yzer_tree_id = #{pkeyid} or jler_tree_id = #{pkeyid})  and `type` = 1 and is_deleted = 0

+ 12 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreePrivateServiceImpl.java

@@ -124,6 +124,18 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
             Long pKeyId = wbsTreePrivate.getPKeyId();
             wbsTreePrivate.setFullName(wbsTreePrivate.getNodeName());
             int row = baseMapper.updateByPKeyId(pKeyId, wbsTreePrivate);
+            /** 同步当前节点下所有节点的新增是否隐藏*/
+            //如果父节点为隐藏,则子节点不能修改为显示
+            if (wbsTreePrivate.getIsAddConceal() == 0){
+                WbsTreePrivate parent = this.getOne(new LambdaQueryWrapper<WbsTreePrivate>()
+                        .eq(WbsTreePrivate::getId, wbsTreePrivate.getParentId())
+                        .eq(WbsTreePrivate::getProjectId, wbsTreePrivate.getProjectId()));
+                if (parent.getIsAddConceal() == 1){
+                    throw new ServiceException("修改失败:父节点为新增隐藏,子节点不能改为显示");
+                }
+            }
+            //批量修改状态-因为结构问题,可能会有漏网之鱼
+            baseMapper.batchUpdateIsAddConceal(wbsTreePrivate);
 
             if (row > 0) {
                 WbsTreePrivate wbsTreePrivate1 = baseMapper.getByPKeyId(pKeyId);