Browse Source

私有wbs同步基础信息 表名bug

liuyc 1 year ago
parent
commit
aee658bfda

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

@@ -593,26 +593,55 @@
         <foreach collection="listContract" item="item" index="index" separator=";">
             UPDATE m_wbs_tree_contract
             <set>
-                /*node_name = #{item.nodeName},*/
                 node_name =
                     CASE
                         WHEN node_name LIKE '%_PL_%' OR node_name LIKE '%__%'
-                            THEN CONCAT(#{item.nodeName}, SUBSTRING(node_name FROM INSTR(node_name, '__')))
-                        ELSE #{item.nodeName}
-                        END,
+                        THEN CONCAT(
+                            <if test="item.nodeName != null and item.nodeName != ''">
+                                #{item.nodeName}
+                            </if>,
+                            SUBSTRING(node_name FROM INSTR(node_name, '__'))
+                        )
+                    ELSE
+                        <if test="item.nodeName != null and item.nodeName != ''">
+                            #{item.nodeName}
+                        </if>
+                    END,
                 full_name =
                     CASE
                         WHEN full_name LIKE '%_PL_%' OR full_name LIKE '%__%'
-                            THEN CONCAT(#{item.nodeName}, SUBSTRING(full_name FROM INSTR(full_name, '__')))
-                        ELSE #{item.nodeName}
-                        END,
-                node_type = #{item.nodeType},
-                major_data_type = #{item.majorDataType},
-                table_type = #{item.tableType},
-                table_owner = #{item.tableOwner},
-                html_url = #{item.htmlUrl},
-                excel_id = #{item.excelId},
-                sort = #{item.sort}
+                        THEN CONCAT(
+                        <if test="item.nodeName != null">
+                            #{item.nodeName}
+                        </if>,
+                        SUBSTRING(full_name FROM INSTR(full_name, '__'))
+                        )
+                    ELSE
+                        <if test="item.nodeName != null">
+                            #{item.nodeName}
+                        </if>
+                    END,
+                <if test="item.nodeType != null and item.nodeType != ''">
+                    node_type = #{item.nodeType},
+                </if>
+                <if test="item.majorDataType != null and item.majorDataType != ''">
+                    major_data_type = #{item.majorDataType},
+                </if>
+                <if test="item.tableType != null and item.tableType != ''">
+                    table_type = #{item.tableType},
+                </if>
+                <if test="item.tableOwner != null and item.tableOwner != ''">
+                    table_owner = #{item.tableOwner},
+                </if>
+                <if test="item.htmlUrl != null and item.htmlUrl != ''">
+                    html_url = #{item.htmlUrl},
+                </if>
+                <if test="item.excelId != null and item.excelId != ''">
+                    excel_id = #{item.excelId},
+                </if>
+                <if test="item.sort != null and item.sort != ''">
+                    sort = #{item.sort}
+                </if>
             </set>
             WHERE id = #{item.id}
             AND project_id = #{item.projectId}

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

@@ -564,6 +564,7 @@ public class WbsTreePrivateServiceImpl extends BaseServiceImpl<WbsTreePrivateMap
                     WbsTreeContract obj2 = copyAddNodesNow.stream().filter(f -> f.getContractId().equals(obj1.getContractId()) && f.getProjectId().equals(obj1.getProjectId())).findAny().orElse(null);
                     if (obj2 != null) {
                         obj2.setNodeName(obj1.getNodeName());
+                        obj2.setFullName(obj1.getNodeName());
                         obj2.setNodeType(obj1.getNodeType());
                         obj2.setMajorDataType(obj1.getMajorDataType());
                         obj2.setTableType(obj1.getTableType());

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

@@ -591,7 +591,8 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
         List<Long> ids = list.stream().map(WbsTreePrivate::getId).collect(Collectors.toList());
         if (ids.size() > 0) {
             List<WbsTreePrivate> query = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery()
-                    .select(WbsTreePrivate::getWbsId, WbsTreePrivate::getPKeyId, WbsTreePrivate::getId, WbsTreePrivate::getType, WbsTreePrivate::getNodeName,
+                    .select(WbsTreePrivate::getWbsId, WbsTreePrivate::getPKeyId, WbsTreePrivate::getId, WbsTreePrivate::getType,
+                            WbsTreePrivate::getNodeName, WbsTreePrivate::getFullName,
                             WbsTreePrivate::getNodeType, WbsTreePrivate::getMajorDataType, WbsTreePrivate::getTableType, WbsTreePrivate::getTableOwner,
                             WbsTreePrivate::getImportMatchingInfo, WbsTreePrivate::getMixRatioTestIds, WbsTreePrivate::getInitTableId,
                             WbsTreePrivate::getInitTableName, WbsTreePrivate::getSort, WbsTreePrivate::getHtmlUrl, WbsTreePrivate::getExcelId)
@@ -953,7 +954,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                     List<WbsTreePrivate> insertData1 = new ArrayList<>();
                     List<WbsTreePrivate> insertData2 = new ArrayList<>();
                     //映射新老pKeyId,用于保存表单配置
-                    Map<Long,Long> map = new HashMap<>();
+                    Map<Long, Long> map = new HashMap<>();
                     //是否存在独立库表,true为不存在,不存在才同步
                     Boolean isExist = true;
 
@@ -990,7 +991,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                         //获取当前项目下的所有独立表
                         List<WbsTreePrivate> wbsTreePrivatesTableDL = wbsTreePrivateMapper.selectList(Wrappers.<WbsTreePrivate>lambdaQuery().select(WbsTreePrivate::getId).eq(WbsTreePrivate::getProjectId, pawDTO.getProjectId()).eq(WbsTreePrivate::getType, 10).eq(WbsTreePrivate::getParentId, -10).eq(WbsTreePrivate::getStatus, 1));
                         //存在数据则不再同步独立库表单配置
-                        if (wbsTreePrivatesTableDL != null && wbsTreePrivatesTableDL.size() > 0){
+                        if (wbsTreePrivatesTableDL != null && wbsTreePrivatesTableDL.size() > 0) {
                             isExist = false;
                         }
                         Set<Long> saveIdsSet = saveIds.stream().map(Long::parseLong).collect(Collectors.toSet());
@@ -1028,7 +1029,7 @@ public class WbsTreeServiceImpl extends BaseServiceImpl<WbsTreeMapper, WbsTree>
                                 if (tree.getType() == 10) {
                                     wbsTreePrivate.setWbsId(null);
                                     wbsTreePrivate.setWbsType(null);
-                                    map.put(tree.getPKeyId(),wbsTreePrivate.getPKeyId());
+                                    map.put(tree.getPKeyId(), wbsTreePrivate.getPKeyId());
                                 } else {
                                     wbsTreePrivate.setWbsId(pawDTO.getPrimaryKeyId());
                                     wbsTreePrivate.setWbsType(String.valueOf(pawDTO.getWbsType()));