Bläddra i källkod

合同段wbs树区域初始化、合同段返回wbsType

liuyc 3 år sedan
förälder
incheckning
746f8abe2e

+ 7 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/WbsTreeContract.java

@@ -37,6 +37,12 @@ public class WbsTreeContract extends BaseEntity {
     @ApiModelProperty(name = "wbsId", value = "wbsId", required = true)
     private String wbsId;
 
+    /**
+     * wbsType
+     */
+    @ApiModelProperty(name = "wbsType", value = "wbsType", required = false)
+    private Integer wbsType;
+
     /**
      * 项目Id
      */
@@ -160,4 +166,5 @@ public class WbsTreeContract extends BaseEntity {
     private Integer isLinkTable;
 
 
+
 }

+ 10 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/TreeNodeVO.java

@@ -25,10 +25,19 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
 
     private String primaryKeyId;
 
+    private Integer wbsType;
 
     public TreeNodeVO() {
     }
 
+    public Integer getWbsType() {
+        return wbsType;
+    }
+
+    public void setWbsType(Integer wbsType) {
+        this.wbsType = wbsType;
+    }
+
     public String getPrimaryKeyId() {
         return primaryKeyId;
     }
@@ -70,7 +79,7 @@ public class TreeNodeVO extends BaseNode<TreeNode> {
     }
 
     public String toString() {
-        return "TreeNode(primaryKeyId=" + this.getPrimaryKeyId() + ", type=" + this.getType() + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
+        return "TreeNode(wbsType=" + this.getWbsType() + ", primaryKeyId=" + this.getPrimaryKeyId() + ", type=" + this.getType() + ", title=" + this.getTitle() + ", key=" + this.getKey() + ", value=" + this.getValue() + ")";
     }
 
     public boolean equals(final Object o) {

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

@@ -49,6 +49,7 @@
         <result column="has_children" property="hasChildren"/>
         <result column="type" property="type"/>
         <result column="primaryKeyId" property="primaryKeyId"/>
+        <result column="wbsType" property="wbsType"/>
     </resultMap>
 
 
@@ -142,6 +143,7 @@
     <select id="tree" resultMap="treeNodeResultMap">
         SELECT
         p_key_id AS primaryKeyId,
+        wbs_type AS wbsType,
         id,
         parent_id,
         dept_name AS title,

+ 1 - 3
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/WbsTreeContractMapper.java

@@ -15,12 +15,10 @@ public interface WbsTreeContractMapper extends BaseMapper<WbsTreeContract> {
     List<WbsTreeContractVO> selectAll();
 
     Integer insertWbsTreeContract1(@Param("snowId") Long snowId,
+                                   @Param("wbsType") Integer wbsType,
                                    @Param("contractId") String contractId,
                                    @Param("wbsTree") WbsTreePrivate wbsTree);
 
-    Integer insertWbsTreeContract2(@Param("wbsTree") WbsTree wbsTree,
-                                   @Param("projectId") String projectId,
-                                   @Param("contractId") String contractId);
 
     void deleteByCondition(@Param("id") String id,
                            @Param("wbsId") String wbsId,

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

@@ -5,7 +5,7 @@
     <!-- 通用查询映射结果 -->
     <resultMap id="ResultMap" type="org.springblade.manager.entity.WbsTreeContract">
         <result column="id" property="id"/>
-        <result column="private_node_id" property="privateNodeId"/>
+        <result column="p_key_id" property="pKeyId"/>
         <result column="wbs_id" property="wbsId"/>
         <result column="project_id" property="projectId"/>
         <result column="contract_id" property="contractId"/>
@@ -34,6 +34,7 @@
         <result column="major_data_type" property="majorDataType"/>
         <result column="init_table_name" property="initTableName"/>
         <result column="is_link_table" property="isLinkTable"/>
+        <result column="wbs_type" property="wbsType"/>
     </resultMap>
 
     <resultMap id="resultMap2" type="org.springblade.manager.vo.WbsTreeContractVO">
@@ -44,48 +45,35 @@
         <result column="contract_id" property="contractId"/>
     </resultMap>
 
-    <insert id="insertWbsTreeContract1" >
-        INSERT INTO m_wbs_tree_contract(
-        id,private_node_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,is_link_table)
-        VALUES(
-        #{snowId},#{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.isLinkTable})
-    </insert>
-
-    <insert id="insertWbsTreeContract2">
-        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,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.isLinkTable})
+    <insert id="insertWbsTreeContract1">
+            INSERT INTO m_wbs_tree_contract(
+            id,private_node_id,wbs_id,wbs_type,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,is_link_table)
+            VALUES(
+            #{snowId},#{wbsTree.id},#{wbsTree.wbsId},#{wbsType},#{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.isLinkTable})
     </insert>
 
     <update id="deleteByCondition">
-        UPDATE m_wbs_tree_contract
-        SET is_deleted = 1
-        WHERE  id = #{id}
-        AND wbs_id = #{wbsId}
-        AND project_id = #{projectId}
-        AND contract_id = #{contractId}
+            UPDATE m_wbs_tree_contract
+            SET is_deleted = 1
+            WHERE  id = #{id}
+            AND wbs_id = #{wbsId}
+            AND project_id = #{projectId}
+            AND contract_id = #{contractId}
     </update>
 
     <update id="updateByCondition">
-        UPDATE m_wbs_tree_contract
-        SET is_deleted = 0
-        WHERE private_node_id = #{id}
-        AND wbs_id = #{wbsId}
-        AND project_id =#{projectId}
-        AND contract_id = #{contractId}
+            UPDATE m_wbs_tree_contract
+            SET is_deleted = 0
+            WHERE private_node_id = #{id}
+            AND wbs_id = #{wbsId}
+            AND project_id =#{projectId}
+            AND contract_id = #{contractId}
     </update>
 
 

+ 14 - 9
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/WbsTreeContractServiceImpl.java

@@ -10,8 +10,10 @@ import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.core.log.logger.BladeLogger;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.manager.dto.WbsTreeContractDTO;
+import org.springblade.manager.entity.WbsInfo;
 import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.entity.WbsTreePrivate;
+import org.springblade.manager.mapper.WbsInfoMapper;
 import org.springblade.manager.mapper.WbsTreeContractMapper;
 import org.springblade.manager.mapper.WbsTreeMapper;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
@@ -31,6 +33,7 @@ public class WbsTreeContractServiceImpl
     private final WbsTreePrivateServiceImpl wbsTreePrivateService;
     private final ConstructionLedgerMapper constructionLedgerMapper;
     private final WbsTreePrivateMapper wbsTreePrivateMapper;
+    private final WbsInfoMapper wbsInfoMapper;
 
     @Override
     @Transactional(rollbackFor = Exception.class)
@@ -49,25 +52,28 @@ public class WbsTreeContractServiceImpl
         }
         //比较项目wbs私有树与合同段wbs树是否相同,相同则不修改,不同则修改
         List<String> diffrent = getDiffrent(idList1, idList2);
-//        diffrent.forEach(System.out::print);
-        if (diffrent.size() == 0) { //相同
+        //diffrent.forEach(System.out::print);
+        if (diffrent.size() == 0) {//相同
             return "2";
-        } else { //不相同
-            if (idList1.size() > idList2.size()) {  //根据ids新增多余合同段wbs树节点
+        } else {
+            if (idList1.size() > idList2.size()) {
+                WbsInfo wbsInfo = wbsInfoMapper.selectById(pawDTO.getWbsId());
                 for (String id : diffrent) {
                     //合同段wbs节点库存在该节点且为删除状态,那么修改is_deleted=0,否则新增
                     WbsTreeContract wbsTreeContract = baseMapper.selectByCondition2(id, pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
                     if (wbsTreeContract != null) {
                         baseMapper.updateByCondition(id, pawDTO.getProjectId(), pawDTO.getContractId(), pawDTO.getWbsId());
                     } else {
-                        //根据id、projectId获取WbsTreePrivate对象
+                        //获取WbsTreePrivate对象
                         WbsTreePrivate wbsTreePrivate = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getProjectId());
+
+                        Integer wbsType = wbsInfo.getWbsType();
                         Long snowId = SnowFlakeUtil.getId();
-                        Integer row = baseMapper.insertWbsTreeContract1(snowId, pawDTO.getContractId(), wbsTreePrivate);
+                        Integer row = baseMapper.insertWbsTreeContract1(snowId, wbsType, pawDTO.getContractId(), wbsTreePrivate);
                         if (row > 0) {
                             logger.info(wbsTreePrivate.getId().toString(), "初始化合同段wbs树成功");
                         }
-                        //初始化施工台账数据
+                        //初始化施工台账
                         if (wbsTreePrivate.getDeptCategory() == 6
                                 && wbsTreePrivate.getDeptCategory() != null
                                 && !("").equals(wbsTreePrivate.getDeptCategory())) {
@@ -82,7 +88,7 @@ public class WbsTreeContractServiceImpl
                         }
                     }
                 }
-            } else { //根据id、wbsID、projectId、contractId逻辑删除当前多余的合同段wbs树节点
+            } else { //逻辑删除当前多余的合同段树节点
                 for (String id : diffrent) {
                     baseMapper.deleteByCondition(id, pawDTO.getWbsId(), pawDTO.getProjectId(), pawDTO.getContractId());
                 }
@@ -91,7 +97,6 @@ public class WbsTreeContractServiceImpl
         return "3";
     }
 
-    //比较两个List不同值
     public static List<String> getDiffrent(List<String> list1, List<String> list2) {
         List<String> diff = new ArrayList<String>();
         List<String> maxList = list1;

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

@@ -303,14 +303,14 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                 return "2";
             } else {
                 if (tableId1.size() > tableId2.size()) {
-                    //新增同步元素表
+                    //同步元素表
                     for (String tableId : diffrent1) {
                         WbsTree wbsTree = wbsTreeMapper.selectById(tableId);
                         wbsTreePrivateMapper.insertCombination1(wbsTree, pawDTO.getProjectId());
                     }
                     return "3";
                 }
-                //暂未说明是否要同步删除私有库元素表
+                //TODO 暂未说明是否要同步删除
             }
         } else {
             if (idList1.size() > idList2.size()) {
@@ -323,11 +323,11 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         //修改该节点下元素表
                         wbsTreePrivateMapper.updateTableByCondition(id, pawDTO.getProjectId(), pawDTO.getWbsId());
                     } else {
-                        //此处引用WBS公共库节点
+                        //引用WBS公共库节点
                         WbsTree wbsTree = wbsTreeMapper.selectById(id);
                         if (wbsTree != null) {
-                            Integer row = wbsTreePrivateMapper.insertCombination1(wbsTree, pawDTO.getProjectId());
-                            //根据wbsTreeId就是子级的parentId判断该节点是否存在元素表type=2的节点,查询该节点下是否有元素表
+                            wbsTreePrivateMapper.insertCombination1(wbsTree, pawDTO.getProjectId());
+                            //查询该节点下是否有元素表
                             Long tableParentId = wbsTree.getId();
                             List<WbsTree> wbsTreeTableList = wbsTreeMapper.selectIsTable(tableParentId);
                             wbsTreeTableList.forEach(System.out::print);
@@ -341,11 +341,11 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                             projectInfoMapper.updateTemplateIdById(pawDTO.getProjectId(), pawDTO.getWbsId());
                             pawDTO.setTemplateProjectId(pawDTO.getWbsId());
                         }
-                        //引用其他项目WBS私有库节点
+                        //引用项目WBS私有库节点
                         WbsTreePrivate wbsTreePrivate1 = wbsTreePrivateMapper.selectByCondition(id, pawDTO.getTemplateProjectId());
                         if (wbsTreePrivate1 != null) {
-                            Integer row = wbsTreePrivateMapper.insertCombination2(wbsTreePrivate1, pawDTO.getProjectId());
-                            //根据wbsTreePrivate1Id就是子级的parentId判断该节点是否存在元素表type=2的节点,查询该节点下是否有元素表
+                            wbsTreePrivateMapper.insertCombination2(wbsTreePrivate1, pawDTO.getProjectId());
+                            //查询该节点下是否有元素表
                             Long tableParentId = wbsTreePrivate1.getId();
                             List<WbsTree> wbsTreeTableList = wbsTreePrivateMapper.selectIsTable(tableParentId);
                             if (wbsTreeTableList.size() > 0) {