Browse Source

更新代码

liuyc 3 năm trước cách đây
mục cha
commit
56eb092996

+ 2 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.xml

@@ -47,13 +47,13 @@
         INSERT INTO m_wbs_tree_contract(
         id,wbs_id,project_id,contract_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
         table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
-        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name)
+        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
         VALUES(
         #{wbsTree.id},#{wbsTree.wbsId},#{wbsTree.projectId},#{contractId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
         #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
         #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
         #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
-        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName})
+        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName},#{wbsTree.isLinkTable})
     </insert>
 
     <update id="deleteByCondition">

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

@@ -21,6 +21,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.manager.entity.WbsFormElement;
 import org.springblade.manager.entity.WbsTree;
+import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.vo.WbsNodeTableVO;
 import org.springblade.manager.vo.WbsTreeVO;
 import org.springframework.web.bind.annotation.PostMapping;

+ 4 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeMapper.xml

@@ -74,25 +74,25 @@
         INSERT INTO m_wbs_tree_private(
         id,wbs_id,project_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
         table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
-        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name)
+        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
         VALUES(
         #{wbsTree.id},#{wbsTree.wbsId},#{projectId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
         #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
         #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
         #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
-        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName})
+        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName},#{wbsTree.isLinkTable})
     </insert>
     <insert id="insertWbsTreeContract">
         INSERT INTO m_wbs_tree_contract(
         id,wbs_id,project_id,contract_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
         table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
-        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name)
+        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
         VALUES(
         #{wbsTree.id},#{wbsTree.wbsId},#{projectId},#{contractId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
         #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
         #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
         #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
-        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName})
+        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName},#{wbsTree.isLinkTable})
     </insert>
 
 

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

@@ -2,6 +2,7 @@ package org.springblade.manager.mapper;
 
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.apache.ibatis.annotations.Param;
+import org.springblade.manager.entity.WbsTree;
 import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.vo.WbsTreePrivateVO;
 import org.springblade.manager.vo.WbsTreeVO;
@@ -28,5 +29,14 @@ public interface WbsTreePrivateMapper extends BaseMapper<WbsTreePrivate> {
     WbsTreePrivate selectByCondition(@Param("id") String id,
                                      @Param("projectId") String projectId);
 
-    void deleteByCondition(String id, String wbsId, String projectId);
+    Integer deleteByCondition(String id, String wbsId, String projectId);
+
+    WbsTreePrivate selectByCondition2(String id, String projectId, String wbsId);
+
+    void updateByCondition(String id, String projectId, String wbsId);
+
+    Integer insertCombination1(@Param("wbsTree") WbsTree wbsTree,
+                            @Param("projectId") String projectId);
+
+    Integer insertCombination2(@Param("wbsTree") WbsTreePrivate wbsTree);
 }

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

@@ -49,11 +49,44 @@
         <result column="has_children" property="hasChildren"/>
         <result column="type" property="type"/>
     </resultMap>
+    <insert id="insertCombination1">
+        INSERT INTO m_wbs_tree_private(
+        id,wbs_id,project_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
+        table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
+        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
+        VALUES(
+        #{wbsTree.id},#{wbsTree.wbsId},#{projectId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
+        #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
+        #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
+        #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
+        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName},#{wbsTree.isLinkTable})
+    </insert>
+    <insert id="insertCombination2">
+        INSERT INTO m_wbs_tree_private(
+        id,wbs_id,project_id,tenant_id,parent_id,ancestors,dept_category,dept_name,full_name,sort,remark,`type`,
+        table_type,create_time,create_user,create_dept,update_user,update_time,`STATUS`,is_deleted,
+        unique_code,partition_code,is_expernode,is_concrete,table_owner,major_data_type,init_table_name,is_link_table)
+        VALUES(
+        #{wbsTree.id},#{wbsTree.wbsId},#{wbsTree.projectId},#{wbsTree.tenantId},#{wbsTree.parentId},#{wbsTree.ancestors},
+        #{wbsTree.deptCategory},#{wbsTree.deptName},#{wbsTree.fullName},#{wbsTree.sort},#{wbsTree.remark},#{wbsTree.type},
+        #{wbsTree.tableType},#{wbsTree.createTime},#{wbsTree.createUser},#{wbsTree.createDept},#{wbsTree.updateUser},#{wbsTree.updateTime},
+        #{wbsTree.status},#{wbsTree.isDeleted},#{wbsTree.uniqueCode},#{wbsTree.partitionCode},#{wbsTree.isExpernode},#{wbsTree.isConcrete},
+        #{wbsTree.tableOwner},#{wbsTree.majorDataType},#{wbsTree.initTableName},#{wbsTree.isLinkTable})
+    </insert>
+
 
     <update id="deleteByCondition">
         UPDATE m_wbs_tree_private SET is_deleted = 1
         AND id = #{id}
-        AND id = #{}
+        AND wbs_id = #{wbsId}
+        AND project_id = #{projectId}
+    </update>
+    <update id="updateByCondition">
+        UPDATE m_wbs_tree_private
+        SET is_deleted = 0
+        WHERE id = #{id}
+        AND wbs_id = #{wbsId}
+        AND project_id = #{projectId}
     </update>
 
     <select id="selectAll" resultMap="resultMap2">
@@ -93,5 +126,17 @@
             AND STATUS = 1
             AND is_deleted = 0
     </select>
+    <select id="selectByCondition2" resultType="org.springblade.manager.entity.WbsTreePrivate">
+        SELECT
+            *
+        FROM
+            m_wbs_tree_private
+        WHERE
+            id = #{id}
+            AND project_id = #{projectId}
+            AND wbs_id = #{wbsId}
+            AND STATUS = 1
+            AND is_deleted = 1
+    </select>
 
 </mapper>

+ 36 - 44
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeServiceImpl.java

@@ -274,58 +274,50 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         if (diffrent.size() == 0) { //相同
             return false;
         } else { //不相同
-            if (idList1.size() > idList2.size()){//根据ids新增多余项目私有wbs树节点
-
-            }else {//根据id、wbsID、projectId逻辑删除当前多余的项目私有wbs树节点
+            if (idList1.size() > idList2.size()) {//根据ids新增多余项目私有wbs树节点
                 for (String id : diffrent) {
-                    wbsTreePrivateMapper.deleteByCondition(id,pawDTO.getWbsId(), pawDTO.getProjectId());
-                }
-            }
-        }
-
-
-
-
-
-
-        /*if (list != null) {
-            //新增节点
-            for (WbsTree wbsTree : list) {
-                //判重
-                Integer r = baseMapper.selectRepeatByProjectId(pawDTO.getProjectId());
-                if (r <= 0) {
-                    //初始化wbs私有树,每个项目只初始化一次
-                    Integer row = baseMapper.insertWbsTreePrivate(pawDTO.getProjectId(), wbsTree);
-                    if (row > 0) {
-                        logger.info(wbsTree.getId().toString(), "初始化项目私有wbs树成功");
-                    }
-                    //初始化创建合同段私有wbs树
-                    Boolean b1 = baseMapper.insertWbsTreeContract(pawDTO.getProjectId(), pawDTO.getContractId(), wbsTree);
-                    if (b1) {
-                        logger.info(wbsTree.getId().toString(), "初始化合同段wbs树成功");
+                    //项目私有wbs节点库存在该节点且为删除状态,那么修改is_deleted=0,否则新增
+                    WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition2(id, pawDTO.getProjectId(), pawDTO.getWbsId());
+                    if (wbsTreePrivate != null) {
+                        wbsTreePrivateMapper.updateByCondition(id, pawDTO.getProjectId(), pawDTO.getWbsId());
+                    } else {
+                        //新增
+                        //获取WbsTree对象(此处引用WBS公共库节点)
+                        WbsTree wbsTree = wbsTreeMapper.selectById(id);
+                        if (wbsTree != null) {
+                            Integer row = wbsTreePrivateMapper.insertCombination1(wbsTree, pawDTO.getProjectId());
+                            if (row > 0) {
+                                logger.info(wbsTree.getId().toString(), "项目wbs私有树操作成功");
+                            }
+                        }
+                        //获取WbsTreePrivate对象(此处引用其他项目WBS私有库节点)
+                        WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectById(id);
+                        if (wbsTreePrivate1 != null) {
+                            Integer row = wbsTreePrivateMapper.insertCombination2(wbsTreePrivate1);
+                            if (row > 0) {
+                                logger.info(wbsTreePrivate1.getId().toString(), "项目wbs私有树操作成功");
+                            }
+                        }
                     }
-                } else {
-                    return false;
                 }
-                //TODO 初始化元素表、公式
-            }
-        }
-        //通过wbs总树id获取当前树下的元素表信息
-        List<WbsTree> listTable = baseMapper.findAllNodeTableList(pawDTO.getWbsId());
-        if (listTable != null && listTable.size() > 0) {
-            for (WbsTree wbsTree : listTable) {
-                //判重
-                Integer r = baseMapper.selectRepeatByProjectId(pawDTO.getProjectId());
-                if (r <= 0) {
-                    //初始化wbs私有树元素表,每个项目只初始化一次
-                    Integer row = baseMapper.insertWbsTreePrivate(pawDTO.getProjectId(), wbsTree);
+            } else {//根据id、wbsID、projectId逻辑删除当前多余的项目私有wbs树节点
+                for (String id : diffrent) {
+                    Integer row = wbsTreePrivateMapper.deleteByCondition(id, pawDTO.getWbsId(), pawDTO.getProjectId());
                     if (row > 0) {
-                        logger.info(wbsTree.getId().toString(), "初始化项目私有wbs树元素表成功");
+                        logger.info(id, "项目wbs私有树操作成功");
                     }
                 }
             }
-        }*/
+        }
+        //新增WBS私有树节点下元素表信息
+        //获取当前项目下所有元素表信息
+        QueryWrapper<WbsTree> queryWrapper1 = new QueryWrapper<>();
+        wbsTreeMapper.selectList(queryWrapper1);
+
+
         return true;
+
+
     }
 
     public List<WbsTree> findAllNodeList(String wbsTreeIds) {